src/server/daemon/sessionhandler.h

changeset 78
3578977d29a3
parent 47
ce9790523346
child 106
b122f34ddc80
--- a/src/server/daemon/sessionhandler.h	Tue Jun 25 15:45:13 2013 +0200
+++ b/src/server/daemon/sessionhandler.h	Tue Jun 25 22:18:59 2013 +0200
@@ -48,8 +48,21 @@
 };
 
 typedef void(*enqueue_connection_f)(SessionHandler*, Connection*);
+typedef void(*keep_alive_f)(SessionHandler*, Connection*);
 struct _session_handler {
-    enqueue_connection_f enqueue_connection;
+    /*
+     * Adds a connection. The session handler starts reading and parsing the
+     * http request. After that its pass the request to the request handler
+     * (handle_request).
+     */
+    void(*enqueue_connection)(SessionHandler *sh, Connection *conn);
+    
+    /*
+     * Adds a connection to the keep-alive handler. The session handler
+     * waits for new data and re-enqueues the connection, if new data is
+     * available
+     */
+    void(*keep_alive)(SessionHandler*, Connection *conn);
 };
 
 /*
@@ -87,6 +100,8 @@
 
 void* basic_run_session(void *data);
 
+void basic_keep_alive(SessionHandler *handler, Connection *conn);
+
 
 SessionHandler* create_event_session_handler();
 
@@ -96,6 +111,8 @@
 int evt_request_finish(event_handler_t *h, event_t *event);
 int evt_request_error(event_handler_t *h, event_t *event);
 
+void evt_keep_alive(SessionHandler *handler, Connection *conn);
+
 
 #ifdef	__cplusplus
 }

mercurial