]> git.meshlink.io Git - catta/blobdiff - psched.h
* add todo list
[catta] / psched.h
index 90b67dba001cbbac3521bb1a320c028a06367b70..c312ce8b85ab1d1c64e3e8ca8fc0b2ff14e4ab73 100644 (file)
--- a/psched.h
+++ b/psched.h
@@ -15,6 +15,7 @@ struct _flxQueryJob {
     flxTimeEvent *time_event;
     flxKey *key;
     gboolean done;
+    GTimeVal delivery;
     FLX_LLIST_FIELDS(flxQueryJob, jobs);
 };
 
@@ -23,6 +24,7 @@ struct _flxResponseJob {
     flxTimeEvent *time_event;
     flxRecord *record;
     gboolean done;
+    GTimeVal delivery;
     FLX_LLIST_FIELDS(flxResponseJob, jobs);
 };
 
@@ -30,19 +32,20 @@ struct _flxPacketScheduler {
     flxServer *server;
     
     flxInterface *interface;
-    guchar protocol;
 
     FLX_LLIST_HEAD(flxQueryJob, query_jobs);
     FLX_LLIST_HEAD(flxResponseJob, response_jobs);
 };
 
-flxPacketScheduler *flx_packet_scheduler_new(flxServer *server, flxInterface *i, guchar protocol);
+flxPacketScheduler *flx_packet_scheduler_new(flxServer *server, flxInterface *i);
 void flx_packet_scheduler_free(flxPacketScheduler *s);
 
-void flx_packet_scheduler_post_query(flxPacketScheduler *s, flxKey *key);
-void flx_packet_scheduler_post_response(flxPacketScheduler *s, flxRecord *record);
+void flx_packet_scheduler_post_query(flxPacketScheduler *s, flxKey *key, gboolean immediately);
+void flx_packet_scheduler_post_response(flxPacketScheduler *s, flxRecord *record, gboolean immediately);
 
-void flx_packet_scheduler_drop_query(flxPacketScheduler *s, flxKey *key);
-void flx_packet_scheduler_drop_response(flxPacketScheduler *s, flxRecord *record);
+void flx_packet_scheduler_incoming_query(flxPacketScheduler *s, flxKey *key);
+void flx_packet_scheduler_incoming_response(flxPacketScheduler *s, flxRecord *record);
+
+void flx_packet_scheduler_flush_responses(flxPacketScheduler *s);
 
 #endif