]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blob - mt_server.h
doc, cleaning, no per session data
[coffee/mt-apps.git] / mt_server.h
1 #ifndef MT_SERVER_H
2 #define MT_SERVER_H
3
4 #include <ev.h>
5 #include <libwebsockets.h>
6
7 // set these two according to your data
8 // rx buf size must be >= permessage-deflate rx size
9 #define MT_PROTOCOL_RX_BUFFER_SIZE 128
10 #define INPUT_LINE_LENGTH          512
11
12 #define HTTP_PORT 80                       // listen here
13 #define HTTP_MOUNTPOINT "/"                // mountpoint URL
14 #define HTTP_ORIGIN "/usr/share/mt-server" // where the html files are
15 #define HTTP_DEFAULT "index.html"          // default filename
16
17 #define JSON_EMPTY "{\"type\":\"empty\"}"  // default message
18
19 typedef struct ev_io_ws {
20     ev_io w;                     // input watcher
21     struct lws_context *context;
22     char *text;                  // input buffer pointer
23     char *pos;                   // input buffer current position pointer
24 } ev_io_ws;
25
26 typedef struct mt_server_t {
27     struct lws_context *context;
28     ev_io_ws fd_watcher;         // input watcher
29 } mt_server_t;
30
31 // init self, add it to loop and make it read data from fd
32 int mt_server_init(mt_server_t *self, struct ev_loop *loop, int fd);
33
34 // gett drunc an kil sellf
35 void mt_server_deinit(mt_server_t *self);
36
37 #endif