ZOOM Task structure includes start and count for retrieval.
[yaz-moved-to-github.git] / zoom / zoom-p.h
index 1c9a1ff..b3125a0 100644 (file)
@@ -1,13 +1,15 @@
 /*
  * Private C header for ZOOM C.
- * $Id: zoom-p.h,v 1.3 2001-11-06 17:05:19 adam Exp $
+ * $Id: zoom-p.h,v 1.7 2001-11-28 23:00:19 adam Exp $
  */
 #include <yaz/proto.h>
 #include <yaz/comstack.h>
 #include <yaz/wrbuf.h>
 #include <yaz/zoom.h>
 
-struct Z3950_query_p {
+typedef struct ZOOM_Event_p *ZOOM_Event;
+
+struct ZOOM_query_p {
     Z_Query *query;
     Z_SortKeySpecList *sort_spec;
     int refcount;
@@ -18,11 +20,11 @@ struct Z3950_query_p {
 #define STATE_CONNECTING 1
 #define STATE_ESTABLISHED 2
 
-#define Z3950_SELECT_READ 1
-#define Z3950_SELECT_WRITE 2
-#define Z3950_SELECT_EXCEPT 4
+#define ZOOM_SELECT_READ 1
+#define ZOOM_SELECT_WRITE 2
+#define ZOOM_SELECT_EXCEPT 4
 
-struct Z3950_connection_p {
+struct ZOOM_connection_p {
     COMSTACK cs;
     char *host_port;
     int error;
@@ -39,71 +41,87 @@ struct Z3950_connection_p {
     char *cookie_out;
     char *cookie_in;
     int async;
-    int event_pending;
-    Z3950_task tasks;
-    Z3950_options options;
-    Z3950_resultset resultsets;
+    int support_named_resultsets;
+    ZOOM_task tasks;
+    ZOOM_options options;
+    ZOOM_resultset resultsets;
+    ZOOM_Event m_queue_front;
+    ZOOM_Event m_queue_back;
 };
 
 
-struct Z3950_options_entry {
+struct ZOOM_options_entry {
     char *name;
     char *value;
-    struct Z3950_options_entry *next;
+    struct ZOOM_options_entry *next;
 };
 
-struct Z3950_options_p {
+struct ZOOM_options_p {
     int refcount;
     void *callback_handle;
-    Z3950_options_callback callback_func;
-    struct Z3950_options_entry *entries;
-    Z3950_options parent;
+    ZOOM_options_callback callback_func;
+    struct ZOOM_options_entry *entries;
+    ZOOM_options parent;
 };
 
-typedef struct Z3950_record_cache_p *Z3950_record_cache;
+typedef struct ZOOM_record_cache_p *ZOOM_record_cache;
 
-struct Z3950_resultset_p {
+struct ZOOM_resultset_p {
     Z_Query *r_query;
     Z_SortKeySpecList *r_sort_spec;
-    Z3950_query search;
+    ZOOM_query search;
     int refcount;
     int size;
     int start;
     int count;
     int piggyback;
+    char *setname;
     ODR odr;
-    Z3950_record_cache record_cache;
-    Z3950_options options;
-    Z3950_connection connection;
-    Z3950_resultset next;
+    ZOOM_record_cache record_cache;
+    ZOOM_options options;
+    ZOOM_connection connection;
+    ZOOM_resultset next;
 };
 
-struct Z3950_record_p {
+struct ZOOM_record_p {
     ODR odr;
     WRBUF wrbuf_marc;
     Z_NamePlusRecord *npr;
 };
 
-struct Z3950_record_cache_p {
-    struct Z3950_record_p rec;
+struct ZOOM_record_cache_p {
+    struct ZOOM_record_p rec;
     char *elementSetName;
     int pos;
-    Z3950_record_cache next;
+    ZOOM_record_cache next;
 };
 
-struct Z3950_task_p {
+struct ZOOM_task_p {
     int running;
     int which;
     union {
-#define Z3950_TASK_SEARCH 1
-       Z3950_resultset resultset;
-#define Z3950_TASK_RETRIEVE 2
-       /** also resultset here */
-
+#define ZOOM_TASK_SEARCH 1
+        struct {
+            ZOOM_resultset resultset;
+        } search;
+#define ZOOM_TASK_RETRIEVE 2
+        struct {
+            int start;
+            ZOOM_resultset resultset;
+            int count;
+        } retrieve;
+#define ZOOM_TASK_CONNECT 3
     } u;
-    Z3950_task next;
+    ZOOM_task next;
 };
 
+struct ZOOM_Event_p {
+    int kind;
+    ZOOM_Event next;
+    ZOOM_Event prev;
+};
+
+
 #ifndef YAZ_DATE
 COMSTACK cs_create_host(const char *type_and_host, int blocking, void **vp);
 Odr_oid *yaz_str_to_z3950oid (ODR o, int oid_class, const char *str);