summaryrefslogtreecommitdiffstats
path: root/server.h
diff options
context:
space:
mode:
Diffstat (limited to 'server.h')
-rw-r--r--server.h26
1 files changed, 12 insertions, 14 deletions
diff --git a/server.h b/server.h
index f1a15fc..4134638 100644
--- a/server.h
+++ b/server.h
@@ -3,6 +3,7 @@
#include "flx.h"
#include "iface.h"
+#include "prioq.h"
struct _flxEntry;
typedef struct _flxEntry flxEntry;
@@ -21,31 +22,29 @@ struct _flxEntry {
typedef struct _flxQueryJob {
gint ref;
+ GTimeVal time;
flxQuery query;
} flxQueryJob;
-struct _flxQueryJobInstance;
-typedef struct _flxQueryJobInstance flxQueryJobInstance;
-struct _flxQueryJobInstance {
+typedef struct _flxQueryJobInstance {
+ flxPrioQueueNode *node;
flxQueryJob *job;
gint interface;
guchar protocol;
- flxQueryJobInstance *next, *prev;
-};
+} flxQueryJobInstance;
typedef struct _flxResponseJob {
gint ref;
+ GTimeVal time;
flxRecord response;
} flxResponseJob;
-struct _flxResponseJobInstance;
-typedef struct _flxResponseJobInstance flxResponseJobInstance;
-struct _flxResponseJobInstance {
+typedef struct _flxResponseJobInstance {
+ flxPrioQueueNode *node;
flxResponseJob *job;
gint interface;
guchar protocol;
- flxResponseJob *next, *prev;
-};
+} flxResponseJobInstance;
struct _flxServer {
GMainContext *context;
@@ -58,20 +57,19 @@ struct _flxServer {
flxEntry *entries;
- flxResponseJobInstance *first_response_job, *last_response_job;
- flxQueryJobInstance *first_query_job, *last_query_job;
+ flxPrioQueue *query_job_queue;
+ flxPrioQueue *response_job_queue;
};
flxQueryJob* flx_query_job_new(void);
flxQueryJob* flx_query_job_ref(flxQueryJob *job);
void flx_query_job_unref(flxQueryJob *job);
-void flx_server_post_query_job(flxServer *s, gint interface, guchar protocol, const flxQuery *q);
+void flx_server_post_query_job(flxServer *s, gint interface, guchar protocol, const GTimeVal *tv, const flxQuery *q);
void flx_server_drop_query_job(flxServer *s, gint interface, guchar protocol, const flxQuery *q);
void flx_server_remove_query_job_instance(flxServer *s, flxQueryJobInstance *i);
gboolean flx_query_equal(const flxQuery *a, const flxQuery *b);
-
#endif