append given basedir argument with '/' if not given
[rxpd] / src / rxpd.h
index 774aa27..b8885df 100644 (file)
@@ -70,6 +70,13 @@ enum rxpd_cmd_e {RXPD_COMMANDS};
  */
 #define RXPD_FILE_ILG_CHARS "@&?<>|/: \t\n\r*?\\"
 
+/*
+ * Call a cooperative pth_yield every this much expensive interations
+ * not implemented yet
+ * A higher number favors throughput, lower number improves latency
+ */
+#define RXPD_YIELD_EVERY 500
+
 struct rxpd_base;
 struct rxpd_file;
 struct rxpd_rule;
@@ -103,6 +110,9 @@ rxpd_destroy (void);
 void
 rxpd_log (struct rxpd_base*, int level, const char* fmt, ...);
 
+void
+rxpd_fail (struct rxpd_base*, const char* fmt, ...);
+
 void
 rxpd_die (const char* fmt, ...);
 
@@ -112,6 +122,8 @@ rxpd_malloc (size_t size);
 char*
 rxpd_strdup (const char* str);
 
+struct rxpd_base*
+rxpd_set_basedir (struct rxpd_base*, const char* basedir);
 
 //
 struct rxpd_rule
@@ -194,6 +206,9 @@ rxpd_socket_spawn (struct rxpd_socket* self);
 struct rxpd_socket*
 rxpd_socket_join (struct rxpd_socket* self);
 
+struct rxpd_socket*
+rxpd_socket_cancel (struct rxpd_socket* self);
+
 //
 
 enum rxpd_buffer_state_e
@@ -216,7 +231,7 @@ struct rxpd_buffer*
 rxpd_buffer_init (struct rxpd_buffer* self, struct rxpd_connection* conn);
 
 char*
-rxpd_buffer_readline (struct rxpd_buffer* self, int again);
+rxpd_buffer_readline (struct rxpd_buffer* self);
 
 int
 rxpd_buffer_printf (struct rxpd_buffer* self, const char* fmt, ...);
@@ -244,7 +259,7 @@ struct rxpd_connection
 
 
 struct rxpd_connection*
-rxpd_connection_new (struct rxpd_socket* socket);
+rxpd_connection_new (struct rxpd_socket* socket, int fd);
 
 void
 rxpd_connection_delete (struct rxpd_connection* self);
@@ -262,7 +277,7 @@ void*
 rxpd_connection_parse_cmd (void* ptr);
 
 /* generate prototypes for each defined command */
-#define RXPD_CMD(cmd, _) void rxpd_connection_cmd_##cmd (int fd, short event, void* ptr);
+#define RXPD_CMD(cmd, _) void rxpd_connection_cmd_##cmd (struct rxpd_connection* self);
 RXPD_COMMANDS
 #undef RXPD_CMD