| 670:73987de73246 | 671:879005903b2b |
|---|---|
| 37 #include <cx/mempool.h> | 37 #include <cx/mempool.h> |
| 38 | 38 |
| 39 #ifdef __cplusplus | 39 #ifdef __cplusplus |
| 40 extern "C" { | 40 extern "C" { |
| 41 #endif | 41 #endif |
| 42 | |
| 43 #define HTTP_CLIENT_BUFFER_SIZE 4096 | |
| 44 | |
| 45 #define HTTP_CLIENT_CALLBACK_WOULD_BLOCK -1 | |
| 46 #define HTTP_CLIENT_CALLBACK_ERROR -2 | |
| 42 | 47 |
| 43 typedef struct HttpClient HttpClient; | 48 typedef struct HttpClient HttpClient; |
| 44 struct HttpClient { | 49 struct HttpClient { |
| 45 EventHandler *ev; | 50 EventHandler *ev; |
| 46 CxMempool *mp; | 51 CxMempool *mp; |
| 74 | 79 |
| 75 /* | 80 /* |
| 76 * Response body write function | 81 * Response body write function |
| 77 * | 82 * |
| 78 * int response_body_write(HttpClient *client, void *buf, size_t size, void *userdata) | 83 * int response_body_write(HttpClient *client, void *buf, size_t size, void *userdata) |
| 84 * | |
| 85 * Return: number of processed bytes, | |
| 86 * HTTP_CLIENT_CALLBACK_WOULD_BLOCK or HTTP_CLIENT_CALLBACK_ERROR. | |
| 79 */ | 87 */ |
| 80 int (*response_body_write)(HttpClient *, void *, size_t, void *); | 88 ssize_t (*response_body_write)(HttpClient *, void *, size_t, void *); |
| 81 void *response_body_write_userdata; | 89 void *response_body_write_userdata; |
| 82 | 90 |
| 83 /* | 91 /* |
| 84 * Response finished callback | 92 * Response finished callback |
| 85 * | 93 * |
| 88 void (*response_finished)(HttpClient *, int, void *); | 96 void (*response_finished)(HttpClient *, int, void *); |
| 89 void *response_finished_userdata; | 97 void *response_finished_userdata; |
| 90 | 98 |
| 91 | 99 |
| 92 // internals | 100 // internals |
| 101 HttpParser *parser; | |
| 102 netbuf buffer; | |
| 93 | 103 |
| 94 char *req_buffer; | 104 char *req_buffer; |
| 95 size_t req_buffer_len; | 105 size_t req_buffer_len; |
| 106 size_t req_buffer_pos; | |
| 107 | |
| 108 int error; | |
| 109 int header_complete; | |
| 96 | 110 |
| 97 Event readev; | 111 Event readev; |
| 98 Event writeev; | 112 Event writeev; |
| 99 }; | 113 }; |
| 100 | 114 |