Modified function heads & prototypes.
[yaz-moved-to-github.git] / asn / zget.c
1 /*
2  * Copyright (c) 1995, Index Data.
3  * See the file LICENSE for details.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: zget.c,v $
7  * Revision 1.8  1995-09-27 15:02:43  quinn
8  * Modified function heads & prototypes.
9  *
10  * Revision 1.7  1995/06/15  07:44:52  quinn
11  * Moving to v3.
12  *
13  * Revision 1.6  1995/06/14  15:26:37  quinn
14  * *** empty log message ***
15  *
16  * Revision 1.5  1995/06/07  14:42:30  quinn
17  * Fixed CLOSE
18  *
19  * Revision 1.4  1995/06/07  14:36:25  quinn
20  * Added CLOSE
21  *
22  * Revision 1.3  1995/06/05  10:52:06  quinn
23  * Fixed some negligences.
24  *
25  * Revision 1.2  1995/05/30  10:15:49  quinn
26  * Added our implementor's ID
27  *
28  * Revision 1.1  1995/05/22  11:30:20  quinn
29  * Adding Z39.50-1992 stuff to proto.c. Adding zget.c
30  *
31  *
32  */
33
34 #include <proto.h>
35
36 Z_InitRequest MDF *zget_InitRequest(ODR o)
37 {
38     Z_InitRequest *r = odr_malloc(o, sizeof(*r));
39
40     r->referenceId = 0;
41     r->options = odr_malloc(o, sizeof(*r->options));
42     ODR_MASK_ZERO(r->options);
43     r->protocolVersion = odr_malloc(o, sizeof(*r->protocolVersion));
44     ODR_MASK_ZERO(r->protocolVersion);
45     r->preferredMessageSize = odr_malloc(o, sizeof(int));
46     *r->preferredMessageSize = 30*1024;
47     r->maximumRecordSize = odr_malloc(o, sizeof(int));
48     *r->maximumRecordSize = 30*1024;
49     r->idAuthentication = 0;
50     r->implementationId = "YAZ (id=81)";
51     r->implementationName = "Index Data/YAZ";
52     r->implementationVersion = YAZ_VERSION;
53     r->userInformationField = 0;
54 #ifdef Z_95
55     r->otherInfo = 0;
56 #endif
57     return r;
58 }
59
60 Z_InitResponse MDF *zget_InitResponse(ODR o)
61 {
62     Z_InitResponse *r = odr_malloc(o, sizeof(*r));
63
64     r->referenceId = 0;
65     r->options = odr_malloc(o, sizeof(*r->options));
66     ODR_MASK_ZERO(r->options);
67     r->protocolVersion = odr_malloc(o, sizeof(*r->protocolVersion));
68     ODR_MASK_ZERO(r->protocolVersion);
69     r->preferredMessageSize = odr_malloc(o, sizeof(int));
70     *r->preferredMessageSize = 30*1024;
71     r->maximumRecordSize = odr_malloc(o, sizeof(int));
72     *r->maximumRecordSize = 30*1024;
73     r->result = odr_malloc(o, sizeof(bool_t));
74     *r->result = 1;
75     r->implementationId = "YAZ (id=81)";
76     r->implementationName = "Index Data/YAZ";
77     r->implementationVersion = YAZ_VERSION;
78     r->userInformationField = 0;
79 #ifdef Z_95
80     r->otherInfo = 0;
81 #endif
82     return r;
83 }
84
85 Z_SearchRequest MDF *zget_SearchRequest(ODR o)
86 {
87     Z_SearchRequest *r = odr_malloc(o, sizeof(*r));
88
89     r->referenceId = 0;
90     r->smallSetUpperBound = odr_malloc(o, sizeof(int));
91     *r->smallSetUpperBound = 0;
92     r->largeSetLowerBound = odr_malloc(o, sizeof(int));
93     *r->largeSetLowerBound = 1;
94     r->mediumSetPresentNumber = odr_malloc(o, sizeof(int));
95     *r->mediumSetPresentNumber = 0;
96     r->replaceIndicator = odr_malloc(o, sizeof(bool_t));
97     *r->replaceIndicator = 1;
98     r->resultSetName = "Default";
99     r->num_databaseNames = 0;
100     r->databaseNames = 0;
101     r->smallSetElementSetNames = 0;
102     r->mediumSetElementSetNames = 0;
103     r->preferredRecordSyntax = 0;
104     r->query = 0;
105 #ifdef Z_95
106     r->additionalSearchInfo = 0;
107     r->otherInfo = 0;
108 #endif
109     return r;
110 }
111
112 Z_SearchResponse MDF *zget_SearchResponse(ODR o)
113 {
114     Z_SearchResponse *r = odr_malloc(o, sizeof(*r));
115
116     r->referenceId = 0;
117     r->resultCount = odr_malloc(o, sizeof(int));
118     *r->resultCount = 0;
119     r->numberOfRecordsReturned = odr_malloc(o, sizeof(int));
120     *r->numberOfRecordsReturned = 0;
121     r->nextResultSetPosition = odr_malloc(o, sizeof(int));
122     *r->nextResultSetPosition = 0;
123     r->searchStatus = odr_malloc(o, sizeof(bool_t));
124     *r->searchStatus = 1;
125     r->resultSetStatus = 0;
126     r->presentStatus = 0;
127     r->records = 0;
128 #ifdef Z_95
129     r->additionalSearchInfo = 0;
130     r->otherInfo = 0;
131 #endif
132     return r;
133 }
134
135 Z_PresentRequest MDF *zget_PresentRequest(ODR o)
136 {
137     Z_PresentRequest *r = odr_malloc(o, sizeof(*r));
138
139     r->referenceId = 0;
140     r->resultSetId = "Default";
141     r->resultSetStartPoint = odr_malloc(o, sizeof(int));
142     *r->resultSetStartPoint = 1;
143     r->numberOfRecordsRequested = odr_malloc(o, sizeof(int));
144     *r->numberOfRecordsRequested = 10;
145 #ifdef Z_95
146     r->num_ranges = 0;
147     r->additionalRanges = 0;
148     r->recordComposition = 0;
149 #else
150     r->elementSetNames = 0;
151 #endif
152     r->preferredRecordSyntax = 0;
153 #ifdef Z_95
154     r->maxSegmentCount = 0;
155     r->maxRecordSize = 0;
156     r->maxSegmentSize = 0;
157     r->otherInfo = 0;
158 #endif
159     return r;
160 }
161
162 Z_PresentResponse MDF *zget_PresentResponse(ODR o)
163 {
164     Z_PresentResponse *r = odr_malloc(o, sizeof(*r));
165
166     r->referenceId = 0;
167     r->numberOfRecordsReturned = odr_malloc(o, sizeof(int));
168     *r->numberOfRecordsReturned = 0;
169     r->nextResultSetPosition = odr_malloc(o, sizeof(int));
170     *r->nextResultSetPosition = 0;
171     r->presentStatus = odr_malloc(o, sizeof(int));
172     *r->presentStatus = Z_PRES_SUCCESS;
173     r->records = 0;
174 #ifdef Z_95
175     r->otherInfo = 0;
176 #endif
177     return r;
178 }
179
180 Z_DeleteResultSetRequest MDF *zget_DeleteResultSetRequest(ODR o)
181 {
182     Z_DeleteResultSetRequest *r = odr_malloc(o, sizeof(*r));
183
184     r->referenceId = 0;
185     r->deleteFunction = odr_malloc(o, sizeof(int));
186     *r->deleteFunction = Z_DeleteRequest_list;
187     r->num_ids = 0;
188     r->resultSetList = 0;
189 #ifdef Z_95
190     r->otherInfo = 0;
191 #endif
192     return r;
193 }
194
195 Z_DeleteResultSetResponse MDF *zget_DeleteResultSetResponse(ODR o)
196 {
197     Z_DeleteResultSetResponse *r = odr_malloc(o, sizeof(*r));
198
199     r->referenceId = 0;
200     r->deleteOperationStatus = odr_malloc(o, sizeof(int));
201     *r->deleteOperationStatus = Z_DeleteStatus_success;
202     r->num_statuses = 0;
203     r->deleteListStatuses = 0;
204     r->numberNotDeleted = 0;
205     r->num_bulkStatuses = 0;
206     r->bulkStatuses = 0;
207     r->deleteMessage = 0;
208 #ifdef Z_95
209     r->otherInfo = 0;
210 #endif
211     return r;
212 }
213
214 Z_ScanRequest MDF *zget_ScanRequest(ODR o)
215 {
216     Z_ScanRequest *r = odr_malloc(o, sizeof(*r));
217
218     r->referenceId = 0;
219     r->num_databaseNames = 0;
220     r->databaseNames = 0;
221     r->attributeSet = 0;
222     r->termListAndStartPoint = 0;
223     r->stepSize = 0;
224     r->numberOfTermsRequested = odr_malloc(o, sizeof(int));
225     *r->numberOfTermsRequested = 20;
226     r->preferredPositionInResponse = 0;
227 #ifdef Z_95
228     r->otherInfo = 0;
229 #endif
230     return r;
231 }
232
233 Z_ScanResponse MDF *zget_ScanResponse(ODR o)
234 {
235     Z_ScanResponse *r = odr_malloc(o, sizeof(*r));
236
237     r->referenceId = 0;
238     r->stepSize = 0;
239     r->scanStatus = odr_malloc(o, sizeof(int));
240     *r->scanStatus = Z_Scan_success;
241     r->numberOfEntriesReturned = odr_malloc(o, sizeof(int));
242     *r->numberOfEntriesReturned = 0;
243     r->positionOfTerm =0;
244     r->entries = 0;
245     r->attributeSet = 0;
246 #ifdef Z_95
247     r->otherInfo = 0;
248 #endif
249     return r;
250 }
251
252 Z_TriggerResourceControlRequest MDF *zget_TriggerResourceControlRequest(ODR o)
253 {
254     Z_TriggerResourceControlRequest *r = odr_malloc(o, sizeof(*r));
255
256     r->referenceId = 0;
257     r->requestedAction = odr_malloc(o, sizeof(int));
258     *r->requestedAction = Z_TriggerResourceCtrl_resourceReport;
259     r->prefResourceReportFormat = 0;
260     r->resultSetWanted = 0;
261 #ifdef Z_95
262     r->otherInfo = 0;
263 #endif
264     return r;
265 }
266
267 Z_ResourceControlRequest MDF *zget_ResourceControlRequest(ODR o)
268 {
269     Z_ResourceControlRequest *r = odr_malloc(o, sizeof(*r));
270
271     r->referenceId = 0;
272     r->suspendedFlag = 0;
273     r->resourceReport = 0;
274     r->partialResultsAvailable = 0;
275     r->responseRequired = odr_malloc(o, sizeof(bool_t));
276     *r->responseRequired = 0;
277     r->triggeredRequestFlag = 0;
278 #ifdef Z_95
279     r->otherInfo = 0;
280 #endif
281     return r;
282 }
283
284 Z_ResourceControlResponse MDF *zget_ResourceControlResponse(ODR o)
285 {
286     Z_ResourceControlResponse *r = odr_malloc(o, sizeof(*r));
287
288     r->referenceId = 0;
289     r->continueFlag = odr_malloc(o, sizeof(bool_t));
290     *r->continueFlag = 1;
291     r->resultSetWanted = 0;
292 #ifdef Z_95
293     r->otherInfo = 0;
294 #endif
295     return r;
296 }
297
298 Z_AccessControlRequest *zget_AccessControlRequest(ODR o)
299 {
300     Z_AccessControlRequest *r = odr_malloc(o, sizeof(*r));
301
302     r->referenceId = 0;
303     r->which = Z_AccessRequest_simpleForm;
304     r->u.simpleForm = 0;
305 #ifdef Z_95
306     r->otherInfo = 0;
307 #endif
308     return r;
309 }
310
311 Z_AccessControlResponse *zget_AccessControlResponse(ODR o)
312 {
313     Z_AccessControlResponse *r = odr_malloc(o, sizeof(*r));
314
315     r->referenceId = 0;
316     r->which = Z_AccessResponse_simpleForm;
317     r->u.simpleForm = 0;
318     r->diagnostic = 0;
319 #ifdef Z_95
320     r->otherInfo = 0;
321 #endif
322     return r;
323 }
324
325 Z_Segment *zget_Segment(ODR o)
326 {
327     Z_Segment *r = odr_malloc(o, sizeof(*r));
328
329     r->referenceId = 0;
330     r->numberOfRecordsReturned = odr_malloc(o, sizeof(int));
331     *r->numberOfRecordsReturned = 0;
332     r->num_segmentRecords = 0;
333     r->segmentRecords = 0;
334     r->otherInfo = 0;
335     return r;
336 }
337
338 Z_Close MDF *zget_Close(ODR o)
339 {
340     Z_Close *r = odr_malloc(o, sizeof(*r));
341
342     r->referenceId = 0;
343     r->closeReason = odr_malloc(o, sizeof(int));
344     *r->closeReason = Z_Close_finished;
345     r->diagnosticInformation = 0;
346     r->resourceReportFormat = 0;
347     r->resourceReport = 0;
348 #ifdef Z_95
349     r->otherInfo = 0;
350 #endif
351     return r;
352 }
353
354 Z_APDU MDF *zget_APDU(ODR o, enum Z_APDU_which which)
355 {
356     Z_APDU *r = odr_malloc(o, sizeof(*r));
357     
358     switch (r->which = which)
359     {
360         case Z_APDU_initRequest:
361             r->u.initRequest = zget_InitRequest(o); break;
362         case Z_APDU_initResponse:
363             r->u.initResponse = zget_InitResponse(o); break;
364         case Z_APDU_searchRequest:      
365             r->u.searchRequest = zget_SearchRequest(o); break;
366         case Z_APDU_searchResponse:
367             r->u.searchResponse = zget_SearchResponse(o); break;
368         case Z_APDU_presentRequest:
369             r->u.presentRequest = zget_PresentRequest(o); break;
370         case Z_APDU_presentResponse:
371             r->u.presentResponse = zget_PresentResponse(o); break;
372         case Z_APDU_deleteResultSetRequest:
373             r->u.deleteResultSetRequest = zget_DeleteResultSetRequest(o); break;
374         case Z_APDU_deleteResultSetResponse:
375             r->u.deleteResultSetResponse = zget_DeleteResultSetResponse(o);
376             break;
377         case Z_APDU_scanRequest:
378             r->u.scanRequest = zget_ScanRequest(o); break;
379         case Z_APDU_scanResponse:
380             r->u.scanResponse = zget_ScanResponse(o); break;
381         case Z_APDU_triggerResourceControlRequest:
382             r->u.triggerResourceControlRequest =
383                 zget_TriggerResourceControlRequest(o); break;
384         case Z_APDU_resourceControlRequest:
385             r->u.resourceControlRequest = zget_ResourceControlRequest(o);
386             break;
387         case Z_APDU_resourceControlResponse:
388             r->u.resourceControlResponse = zget_ResourceControlResponse(o);
389             break;
390         case Z_APDU_segmentRequest:
391             r->u.segmentRequest = zget_Segment(o);
392             break;
393         case Z_APDU_close:
394             r->u.close = zget_Close(o);
395             break;
396         default:
397             fprintf(stderr, "Bad APDU-type to zget_APDU");
398             exit(1);
399     }
400     return r;
401 }