Line data Source code
1 : #ifndef HEADER_fd_src_tango_webserver_fd_webserver_h 2 : #define HEADER_fd_src_tango_webserver_fd_webserver_h 3 : 4 : #include "fd_methods.h" 5 : #include "../../ballet/http/fd_http_server.h" 6 : 7 : // #define FD_RPC_VERBOSE 1 8 : 9 : struct fd_webserver { 10 : fd_http_server_t * server; 11 : void * cb_arg; 12 : unsigned int status_code; 13 : ulong prev_reply_len; 14 : ulong quick_size; 15 0 : #define FD_WEBSERVER_QUICK_MAX (1U<<14U) 16 : char quick_buf[FD_WEBSERVER_QUICK_MAX]; 17 : }; 18 : typedef struct fd_webserver fd_webserver_t; 19 : 20 : int fd_webserver_start(ushort portno, fd_http_server_params_t params, fd_valloc_t valloc, fd_webserver_t * ws, void * cb_arg); 21 : 22 : int fd_webserver_stop(fd_valloc_t valloc, fd_webserver_t * ws); 23 : 24 : int fd_webserver_poll(fd_webserver_t * ws); 25 : 26 : int fd_webserver_fd(fd_webserver_t * ws); 27 : 28 : #ifndef KEYW_UNKNOWN 29 0 : #define KEYW_UNKNOWN -1L 30 : #endif 31 : long fd_webserver_json_keyword(const char* keyw, size_t keyw_sz); 32 : const char* un_fd_webserver_json_keyword(long id); 33 : 34 : void fd_webserver_method_generic(struct json_values* values, void * cb_arg); 35 : 36 : int fd_webserver_ws_subscribe(struct json_values* values, ulong conn_id, void * cb_arg); 37 : 38 : void fd_webserver_ws_closed(ulong conn_id, void * cb_arg); 39 : 40 : void fd_web_ws_send( fd_webserver_t * ws, ulong conn_id ); 41 : 42 : void fd_web_reply_new( fd_webserver_t * ws ); 43 : 44 : void fd_web_reply_error( fd_webserver_t * ws, int errcode, const char * text, const char * call_id ); 45 : 46 : int fd_web_reply_append( fd_webserver_t * ws, 47 : const char * text, 48 : ulong text_sz ); 49 : 50 : int fd_web_reply_encode_base58( fd_webserver_t * ws, 51 : const void * data, 52 : ulong data_sz ); 53 : 54 : int fd_web_reply_encode_base64( fd_webserver_t * ws, 55 : const void * data, 56 : ulong data_sz ); 57 : 58 : int fd_web_reply_encode_hex( fd_webserver_t * ws, 59 : const void * data, 60 : ulong data_sz ); 61 : 62 : int fd_web_reply_sprintf( fd_webserver_t * ws, const char* format, ... ) 63 : __attribute__ ((format (printf, 2, 3))); 64 : 65 : int fd_web_reply_encode_json_string( fd_webserver_t * ws, const char* str ); 66 : 67 : #endif /* HEADER_fd_src_tango_webserver_fd_webserver_h */