2 * Copyright (C) 1995-2005, Index Data ApS
3 * See the file LICENSE for details.
5 * $Id: zoom-p.h,v 1.9 2005-10-17 12:25:39 mike Exp $
9 * \brief Internal header for ZOOM implementation
12 #include <yaz/proto.h>
13 #include <yaz/comstack.h>
14 #include <yaz/wrbuf.h>
16 #include <yaz/sortspec.h>
17 typedef struct ZOOM_Event_p *ZOOM_Event;
21 Z_SortKeySpecList *sort_spec;
27 typedef struct ZOOM_task_p *ZOOM_task;
30 #define STATE_CONNECTING 1
31 #define STATE_ESTABLISHED 2
33 #define ZOOM_SELECT_READ 1
34 #define ZOOM_SELECT_WRITE 2
35 #define ZOOM_SELECT_EXCEPT 4
37 struct ZOOM_connection_p {
61 int support_named_resultsets;
65 ZOOM_resultset resultsets;
66 ZOOM_Event m_queue_front;
67 ZOOM_Event m_queue_back;
70 struct ZOOM_options_entry {
73 int len; /* of `value', which may contain NULs */
74 struct ZOOM_options_entry *next;
77 struct ZOOM_options_p {
79 void *callback_handle;
80 ZOOM_options_callback callback_func;
81 struct ZOOM_options_entry *entries;
86 typedef struct ZOOM_record_cache_p *ZOOM_record_cache;
88 struct ZOOM_resultset_p {
89 Z_SortKeySpecList *r_sort_spec;
100 ZOOM_record_cache record_cache;
101 ZOOM_options options;
102 ZOOM_connection connection;
106 struct ZOOM_record_p {
111 Z_NamePlusRecord *npr;
114 struct ZOOM_record_cache_p {
115 struct ZOOM_record_p rec;
116 char *elementSetName;
120 ZOOM_record_cache next;
123 struct ZOOM_scanset_p {
126 ZOOM_options options;
127 ZOOM_connection connection;
128 Z_AttributesPlusTerm *termListAndStartPoint;
129 Z_AttributeSetId *attributeSet;
130 Z_ScanResponse *scan_response;
133 struct ZOOM_package_p {
136 ZOOM_options options;
137 ZOOM_connection connection;
146 #define ZOOM_TASK_SEARCH 1
148 ZOOM_resultset resultset;
150 #define ZOOM_TASK_RETRIEVE 2
153 ZOOM_resultset resultset;
156 #define ZOOM_TASK_CONNECT 3
157 #define ZOOM_TASK_SCAN 4
161 #define ZOOM_TASK_PACKAGE 5
162 ZOOM_package package;
163 #define ZOOM_TASK_SORT 6
165 ZOOM_resultset resultset;
172 struct ZOOM_Event_p {
178 void ZOOM_options_addref (ZOOM_options opt);
182 * indent-tabs-mode: nil
184 * vim: shiftwidth=4 tabstop=8 expandtab