Tilde Friends
http.h
1#pragma once
2
14#include <stdbool.h>
15#include <stddef.h>
16
18typedef struct _tf_http_connection_t tf_http_connection_t;
19
22
24typedef struct _tf_http_t tf_http_t;
25
27typedef struct _tf_tls_context_t tf_tls_context_t;
28
30typedef struct _tf_trace_t tf_trace_t;
31
33typedef struct uv_loop_s uv_loop_t;
34
42typedef void(tf_http_message_callback)(tf_http_request_t* request, int op_code, const void* data, size_t size);
43
49
54typedef void(tf_http_callback_t)(tf_http_request_t* request);
55
60typedef void(tf_http_cleanup_t)(void* user_data);
61
65typedef struct _tf_http_request_t
66{
72 bool is_tls;
74 const char* method;
76 const char* path;
78 const char* query;
80 void* body;
84 struct phr_header* headers;
92 void* context;
94 void* user_data;
98
105
113
125int tf_http_listen(tf_http_t* http, int port, bool local_only, tf_tls_context_t* tls, tf_http_cleanup_t* cleanup, void* user_data);
126
135void tf_http_add_handler(tf_http_t* http, const char* pattern, tf_http_callback_t* callback, tf_http_cleanup_t* cleanup, void* user_data);
136
147void tf_http_respond(tf_http_request_t* request, int status, const char** headers, int headers_count, const void* body, size_t content_length);
148
155size_t tf_http_get_body(const tf_http_request_t* request, const void** out_data);
156
162
169void tf_http_set_user_data(tf_http_t* http, void* user_data, tf_http_cleanup_t* cleanup);
170
177
185
191
198const char* tf_http_request_get_header(tf_http_request_t* request, const char* name);
199
207const char* tf_http_get_cookie(const char* cookie_header, const char* name);
208
217void tf_http_request_websocket_send(tf_http_request_t* request, int op_code, const void* data, size_t size);
218
224
231const char* tf_http_status_text(int status);
232
239bool tf_http_pattern_matches(const char* pattern, const char* path);
240
void tf_http_request_websocket_upgrade(tf_http_request_t *request)
void tf_http_respond(tf_http_request_t *request, int status, const char **headers, int headers_count, const void *body, size_t content_length)
const char * tf_http_status_text(int status)
void() tf_http_message_callback(tf_http_request_t *request, int op_code, const void *data, size_t size)
Definition: http.h:42
bool tf_http_pattern_matches(const char *pattern, const char *path)
void * tf_http_get_user_data(tf_http_t *http)
const char * tf_http_request_get_header(tf_http_request_t *request, const char *name)
struct _tf_http_connection_t tf_http_connection_t
Definition: http.h:18
void tf_http_set_user_data(tf_http_t *http, void *user_data, tf_http_cleanup_t *cleanup)
const char * tf_http_get_cookie(const char *cookie_header, const char *name)
tf_http_t * tf_http_create(uv_loop_t *loop)
void tf_http_add_handler(tf_http_t *http, const char *pattern, tf_http_callback_t *callback, tf_http_cleanup_t *cleanup, void *user_data)
struct _tf_trace_t tf_trace_t
Definition: http.h:30
void tf_http_request_ref(tf_http_request_t *request)
void tf_http_request_unref(tf_http_request_t *request)
void() tf_http_close_callback(tf_http_request_t *request)
Definition: http.h:48
struct _tf_http_request_t tf_http_request_t
Definition: http.h:21
struct _tf_tls_context_t tf_tls_context_t
Definition: http.h:27
void tf_http_set_trace(tf_http_t *http, tf_trace_t *trace)
int tf_http_listen(tf_http_t *http, int port, bool local_only, tf_tls_context_t *tls, tf_http_cleanup_t *cleanup, void *user_data)
void tf_http_destroy(tf_http_t *http)
size_t tf_http_get_body(const tf_http_request_t *request, const void **out_data)
void tf_http_request_websocket_send(tf_http_request_t *request, int op_code, const void *data, size_t size)
void() tf_http_callback_t(tf_http_request_t *request)
Definition: http.h:54
void() tf_http_cleanup_t(void *user_data)
Definition: http.h:60
struct _tf_http_t tf_http_t
Definition: http.h:24
struct uv_loop_s uv_loop_t
Definition: http.h:33
function trace()
Definition: client.js:910
Definition: http.h:66
void * body
Definition: http.h:80
tf_http_message_callback * on_message
Definition: http.h:88
struct phr_header * headers
Definition: http.h:84
int headers_count
Definition: http.h:86
const char * query
Definition: http.h:78
void * context
Definition: http.h:92
const char * path
Definition: http.h:76
tf_http_t * http
Definition: http.h:68
tf_http_connection_t * connection
Definition: http.h:70
bool is_tls
Definition: http.h:72
int ref_count
Definition: http.h:96
void * user_data
Definition: http.h:94
const char * method
Definition: http.h:74
tf_http_close_callback * on_close
Definition: http.h:90
size_t content_length
Definition: http.h:82