Development towards compiled ASN.1.
[yaz-moved-to-github.git] / asn / zget.c
1 /*
2  * Copyright (c) 1995-1998, Index Data.
3  * See the file LICENSE for details.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: zget.c,v $
7  * Revision 1.15  1998-03-31 15:13:19  adam
8  * Development towards compiled ASN.1.
9  *
10  * Revision 1.14  1998/02/11 11:53:32  adam
11  * Changed code so that it compiles as C++.
12  *
13  * Revision 1.13  1998/01/29 13:13:39  adam
14  * Function zget_presentRequest fills resultSetId with "default" instead
15  * of "Default".
16  *
17  * Revision 1.12  1997/10/29 12:00:37  adam
18  * Routine zget_SearchRequest fills resultSetName member with "default"
19  * instead of "Default".
20  *
21  * Revision 1.11  1997/05/02 08:39:10  quinn
22  * New PDUs added, thanks to Ronald van der Meer
23  *
24  * Revision 1.10  1996/01/02 08:57:23  quinn
25  * Changed enums in the ASN.1 .h files to #defines. Changed oident.class to oclass
26  *
27  * Revision 1.9  1995/09/29  17:11:55  quinn
28  * Smallish
29  *
30  * Revision 1.8  1995/09/27  15:02:43  quinn
31  * Modified function heads & prototypes.
32  *
33  * Revision 1.7  1995/06/15  07:44:52  quinn
34  * Moving to v3.
35  *
36  * Revision 1.6  1995/06/14  15:26:37  quinn
37  * *** empty log message ***
38  *
39  * Revision 1.5  1995/06/07  14:42:30  quinn
40  * Fixed CLOSE
41  *
42  * Revision 1.4  1995/06/07  14:36:25  quinn
43  * Added CLOSE
44  *
45  * Revision 1.3  1995/06/05  10:52:06  quinn
46  * Fixed some negligences.
47  *
48  * Revision 1.2  1995/05/30  10:15:49  quinn
49  * Added our implementor's ID
50  *
51  * Revision 1.1  1995/05/22  11:30:20  quinn
52  * Adding Z39.50-1992 stuff to proto.c. Adding zget.c
53  *
54  *
55  */
56
57 #include <proto.h>
58
59 Z_InitRequest *zget_InitRequest(ODR o)
60 {
61     Z_InitRequest *r = (Z_InitRequest *)odr_malloc(o, sizeof(*r));
62
63     r->referenceId = 0;
64     r->options = (Odr_bitmask *)odr_malloc(o, sizeof(*r->options));
65     ODR_MASK_ZERO(r->options);
66     r->protocolVersion = (Odr_bitmask *)odr_malloc(o, sizeof(*r->protocolVersion));
67     ODR_MASK_ZERO(r->protocolVersion);
68     r->preferredMessageSize = (int *)odr_malloc(o, sizeof(int));
69     *r->preferredMessageSize = 30*1024;
70     r->maximumRecordSize = (int *)odr_malloc(o, sizeof(int));
71     *r->maximumRecordSize = 30*1024;
72     r->idAuthentication = 0;
73     r->implementationId = "YAZ (id=81)";
74     r->implementationName = "Index Data/YAZ";
75     r->implementationVersion = YAZ_VERSION;
76     r->userInformationField = 0;
77 #ifdef Z_95
78     r->otherInfo = 0;
79 #endif
80     return r;
81 }
82
83 Z_InitResponse *zget_InitResponse(ODR o)
84 {
85     Z_InitResponse *r = (Z_InitResponse *)odr_malloc(o, sizeof(*r));
86
87     r->referenceId = 0;
88     r->options = (Odr_bitmask *)odr_malloc(o, sizeof(*r->options));
89     ODR_MASK_ZERO(r->options);
90     r->protocolVersion = (Odr_bitmask *)odr_malloc(o, sizeof(*r->protocolVersion));
91     ODR_MASK_ZERO(r->protocolVersion);
92     r->preferredMessageSize = (int *)odr_malloc(o, sizeof(int));
93     *r->preferredMessageSize = 30*1024;
94     r->maximumRecordSize = (int *)odr_malloc(o, sizeof(int));
95     *r->maximumRecordSize = 30*1024;
96     r->result = (int *)odr_malloc(o, sizeof(bool_t));
97     *r->result = 1;
98     r->implementationId = "YAZ (id=81)";
99     r->implementationName = "Index Data/YAZ";
100     r->implementationVersion = YAZ_VERSION;
101     r->userInformationField = 0;
102 #ifdef Z_95
103     r->otherInfo = 0;
104 #endif
105     return r;
106 }
107
108 Z_SearchRequest *zget_SearchRequest(ODR o)
109 {
110     Z_SearchRequest *r = (Z_SearchRequest *)odr_malloc(o, sizeof(*r));
111
112     r->referenceId = 0;
113     r->smallSetUpperBound = (int *)odr_malloc(o, sizeof(int));
114     *r->smallSetUpperBound = 0;
115     r->largeSetLowerBound = (int *)odr_malloc(o, sizeof(int));
116     *r->largeSetLowerBound = 1;
117     r->mediumSetPresentNumber = (int *)odr_malloc(o, sizeof(int));
118     *r->mediumSetPresentNumber = 0;
119     r->replaceIndicator = (int *)odr_malloc(o, sizeof(bool_t));
120     *r->replaceIndicator = 1;
121     r->resultSetName = "default";
122     r->num_databaseNames = 0;
123     r->databaseNames = 0;
124     r->smallSetElementSetNames = 0;
125     r->mediumSetElementSetNames = 0;
126     r->preferredRecordSyntax = 0;
127     r->query = 0;
128 #ifdef Z_95
129     r->additionalSearchInfo = 0;
130     r->otherInfo = 0;
131 #endif
132     return r;
133 }
134
135 Z_SearchResponse *zget_SearchResponse(ODR o)
136 {
137     Z_SearchResponse *r = (Z_SearchResponse *)odr_malloc(o, sizeof(*r));
138
139     r->referenceId = 0;
140     r->resultCount = (int *)odr_malloc(o, sizeof(int));
141     *r->resultCount = 0;
142     r->numberOfRecordsReturned = (int *)odr_malloc(o, sizeof(int));
143     *r->numberOfRecordsReturned = 0;
144     r->nextResultSetPosition = (int *)odr_malloc(o, sizeof(int));
145     *r->nextResultSetPosition = 0;
146     r->searchStatus = (int *)odr_malloc(o, sizeof(bool_t));
147     *r->searchStatus = 1;
148     r->resultSetStatus = 0;
149     r->presentStatus = 0;
150     r->records = 0;
151 #ifdef Z_95
152     r->additionalSearchInfo = 0;
153     r->otherInfo = 0;
154 #endif
155     return r;
156 }
157
158 Z_PresentRequest *zget_PresentRequest(ODR o)
159 {
160     Z_PresentRequest *r = (Z_PresentRequest *)odr_malloc(o, sizeof(*r));
161
162     r->referenceId = 0;
163     r->resultSetId = "default";
164     r->resultSetStartPoint = (int *)odr_malloc(o, sizeof(int));
165     *r->resultSetStartPoint = 1;
166     r->numberOfRecordsRequested = (int *)odr_malloc(o, sizeof(int));
167     *r->numberOfRecordsRequested = 10;
168 #ifdef Z_95
169     r->num_ranges = 0;
170     r->additionalRanges = 0;
171     r->recordComposition = 0;
172 #else
173     r->elementSetNames = 0;
174 #endif
175     r->preferredRecordSyntax = 0;
176 #ifdef Z_95
177     r->maxSegmentCount = 0;
178     r->maxRecordSize = 0;
179     r->maxSegmentSize = 0;
180     r->otherInfo = 0;
181 #endif
182     return r;
183 }
184
185 Z_PresentResponse *zget_PresentResponse(ODR o)
186 {
187     Z_PresentResponse *r = (Z_PresentResponse *)odr_malloc(o, sizeof(*r));
188
189     r->referenceId = 0;
190     r->numberOfRecordsReturned = (int *)odr_malloc(o, sizeof(int));
191     *r->numberOfRecordsReturned = 0;
192     r->nextResultSetPosition = (int *)odr_malloc(o, sizeof(int));
193     *r->nextResultSetPosition = 0;
194     r->presentStatus = (int *)odr_malloc(o, sizeof(int));
195     *r->presentStatus = Z_PRES_SUCCESS;
196     r->records = 0;
197 #ifdef Z_95
198     r->otherInfo = 0;
199 #endif
200     return r;
201 }
202
203 Z_DeleteResultSetRequest *zget_DeleteResultSetRequest(ODR o)
204 {
205     Z_DeleteResultSetRequest *r = (Z_DeleteResultSetRequest *)odr_malloc(o, sizeof(*r));
206
207     r->referenceId = 0;
208     r->deleteFunction = (int *)odr_malloc(o, sizeof(int));
209     *r->deleteFunction = Z_DeleteRequest_list;
210 #ifdef ASN_COMPILED
211     r->num_resultSetList = 0;
212 #else
213     r->num_ids = 0;
214 #endif
215     r->resultSetList = 0;
216 #ifdef Z_95
217     r->otherInfo = 0;
218 #endif
219     return r;
220 }
221
222 Z_DeleteResultSetResponse *zget_DeleteResultSetResponse(ODR o)
223 {
224     Z_DeleteResultSetResponse *r = (Z_DeleteResultSetResponse *)odr_malloc(o, sizeof(*r));
225
226     r->referenceId = 0;
227     r->deleteOperationStatus = (int *)odr_malloc(o, sizeof(int));
228     *r->deleteOperationStatus = Z_DeleteStatus_success;
229 #ifdef ASN_COMPILED
230     r->deleteListStatuses = 0;
231 #else
232     r->num_statuses = 0;
233     r->deleteListStatuses = 0;
234 #endif
235     r->numberNotDeleted = 0;
236 #ifdef ASN_COMPILED
237     r->bulkStatuses = 0;
238 #else
239     r->num_bulkStatuses = 0;
240     r->bulkStatuses = 0;
241 #endif
242     r->deleteMessage = 0;
243 #ifdef Z_95
244     r->otherInfo = 0;
245 #endif
246     return r;
247 }
248
249 Z_ScanRequest *zget_ScanRequest(ODR o)
250 {
251     Z_ScanRequest *r = (Z_ScanRequest *)odr_malloc(o, sizeof(*r));
252
253     r->referenceId = 0;
254     r->num_databaseNames = 0;
255     r->databaseNames = 0;
256     r->attributeSet = 0;
257     r->termListAndStartPoint = 0;
258     r->stepSize = 0;
259     r->numberOfTermsRequested = (int *)odr_malloc(o, sizeof(int));
260     *r->numberOfTermsRequested = 20;
261     r->preferredPositionInResponse = 0;
262 #ifdef Z_95
263     r->otherInfo = 0;
264 #endif
265     return r;
266 }
267
268 Z_ScanResponse *zget_ScanResponse(ODR o)
269 {
270     Z_ScanResponse *r = (Z_ScanResponse *)odr_malloc(o, sizeof(*r));
271
272     r->referenceId = 0;
273     r->stepSize = 0;
274     r->scanStatus = (int *)odr_malloc(o, sizeof(int));
275     *r->scanStatus = Z_Scan_success;
276     r->numberOfEntriesReturned = (int *)odr_malloc(o, sizeof(int));
277     *r->numberOfEntriesReturned = 0;
278     r->positionOfTerm =0;
279     r->entries = 0;
280     r->attributeSet = 0;
281 #ifdef Z_95
282     r->otherInfo = 0;
283 #endif
284     return r;
285 }
286
287 Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o)
288 {
289     Z_TriggerResourceControlRequest *r = (Z_TriggerResourceControlRequest *)odr_malloc(o, sizeof(*r));
290
291     r->referenceId = 0;
292     r->requestedAction = (int *)odr_malloc(o, sizeof(int));
293     *r->requestedAction = Z_TriggerResourceCtrl_resourceReport;
294     r->prefResourceReportFormat = 0;
295     r->resultSetWanted = 0;
296 #ifdef Z_95
297     r->otherInfo = 0;
298 #endif
299     return r;
300 }
301
302 Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o)
303 {
304     Z_ResourceControlRequest *r = (Z_ResourceControlRequest *)odr_malloc(o, sizeof(*r));
305
306     r->referenceId = 0;
307     r->suspendedFlag = 0;
308     r->resourceReport = 0;
309     r->partialResultsAvailable = 0;
310     r->responseRequired = (int *)odr_malloc(o, sizeof(bool_t));
311     *r->responseRequired = 0;
312     r->triggeredRequestFlag = 0;
313 #ifdef Z_95
314     r->otherInfo = 0;
315 #endif
316     return r;
317 }
318
319 Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o)
320 {
321     Z_ResourceControlResponse *r = (Z_ResourceControlResponse *)odr_malloc(o, sizeof(*r));
322
323     r->referenceId = 0;
324     r->continueFlag = (int *)odr_malloc(o, sizeof(bool_t));
325     *r->continueFlag = 1;
326     r->resultSetWanted = 0;
327 #ifdef Z_95
328     r->otherInfo = 0;
329 #endif
330     return r;
331 }
332
333 Z_AccessControlRequest *zget_AccessControlRequest(ODR o)
334 {
335     Z_AccessControlRequest *r = (Z_AccessControlRequest *)odr_malloc(o, sizeof(*r));
336
337     r->referenceId = 0;
338     r->which = Z_AccessRequest_simpleForm;
339     r->u.simpleForm = 0;
340 #ifdef Z_95
341     r->otherInfo = 0;
342 #endif
343     return r;
344 }
345
346 Z_AccessControlResponse *zget_AccessControlResponse(ODR o)
347 {
348     Z_AccessControlResponse *r = (Z_AccessControlResponse *)odr_malloc(o, sizeof(*r));
349
350     r->referenceId = 0;
351     r->which = Z_AccessResponse_simpleForm;
352     r->u.simpleForm = 0;
353     r->diagnostic = 0;
354 #ifdef Z_95
355     r->otherInfo = 0;
356 #endif
357     return r;
358 }
359
360 Z_Segment *zget_Segment(ODR o)
361 {
362     Z_Segment *r = (Z_Segment *)odr_malloc(o, sizeof(*r));
363
364     r->referenceId = 0;
365     r->numberOfRecordsReturned = (int *)odr_malloc(o, sizeof(int));
366     *r->numberOfRecordsReturned = 0;
367     r->num_segmentRecords = 0;
368     r->segmentRecords = 0;
369     r->otherInfo = 0;
370     return r;
371 }
372
373 Z_Close *zget_Close(ODR o)
374 {
375     Z_Close *r = (Z_Close *)odr_malloc(o, sizeof(*r));
376
377     r->referenceId = 0;
378     r->closeReason = (int *)odr_malloc(o, sizeof(int));
379     *r->closeReason = Z_Close_finished;
380     r->diagnosticInformation = 0;
381     r->resourceReportFormat = 0;
382     r->resourceReport = 0;
383 #ifdef Z_95
384     r->otherInfo = 0;
385 #endif
386     return r;
387 }
388
389 Z_ResourceReportRequest *zget_ResourceReportRequest(ODR o)
390 {
391     Z_ResourceReportRequest *r = (Z_ResourceReportRequest *)odr_malloc(o, sizeof(*r));
392
393     r->referenceId = 0;
394     r->opId = 0;
395     r->prefResourceReportFormat = 0;
396     r->otherInfo = 0;
397     return r;
398 }
399
400 Z_ResourceReportResponse *zget_ResourceReportResponse(ODR o)
401 {
402     Z_ResourceReportResponse *r = (Z_ResourceReportResponse *)odr_malloc(o, sizeof(*r));
403
404     r->referenceId = 0;
405     r->resourceReportStatus = (int *)odr_malloc(o, sizeof(int));
406     *r->resourceReportStatus = Z_ResourceReportStatus_success;
407     r->resourceReport = 0;
408     r->otherInfo = 0;
409     return r;
410 }
411
412 Z_SortRequest *zget_SortRequest(ODR o)
413 {
414     Z_SortRequest *r = (Z_SortRequest *)odr_malloc(o, sizeof(*r));
415
416     r->referenceId = 0;
417     r->inputResultSetNames = 0;
418     r->sortedResultSetName = 0;
419     r->sortSequence = 0;
420     r->otherInfo = 0;
421     return r;
422 }
423
424 Z_SortResponse *zget_SortResponse(ODR o)
425 {
426     Z_SortResponse *r = (Z_SortResponse *)odr_malloc(o, sizeof(*r));
427
428     r->referenceId = 0;
429     r->sortStatus = (int *)odr_malloc(o, sizeof(int));
430     *r->sortStatus = Z_SortStatus_success;
431     r->resultSetStatus = (int *)odr_malloc(o, sizeof(int));
432     *r->resultSetStatus = Z_SortResultSetStatus_empty;
433     r->diagnostics = 0;
434     r->otherInfo = 0;
435     return r;
436 }
437
438 Z_ExtendedServicesRequest *zget_ExtendedServicesRequest(ODR o)
439 {
440     Z_ExtendedServicesRequest *r = (Z_ExtendedServicesRequest *)odr_malloc(o, sizeof(*r));
441
442     r->referenceId = 0;
443     r->function = (int *)odr_malloc(o, sizeof(int));
444     *r->function = Z_ExtendedServicesRequest_create;
445     r->packageType = 0;
446     r->packageName = 0;
447     r->userId = 0;
448     r->retentionTime = 0;
449     r->permissions = 0;
450     r->description = 0;
451     r->taskSpecificParameters = 0;
452     r->waitAction = (int *)odr_malloc(o, sizeof(int));
453     *r->waitAction = Z_ExtendedServicesRequest_wait;
454     r->elements = 0;
455     r->otherInfo = 0;
456     return r;
457 }
458
459 Z_ExtendedServicesResponse *zget_ExtendedServicesResponse(ODR o)
460 {
461     Z_ExtendedServicesResponse *r = (Z_ExtendedServicesResponse *)odr_malloc(o, sizeof(*r));
462
463     r->referenceId = 0;
464     r->operationStatus = (int *)odr_malloc(o, sizeof(int));
465     *r->operationStatus = Z_ExtendedServicesResponse_done;
466     r->num_diagnostics = 0;
467     r->diagnostics = 0;
468     r->taskPackage = 0;
469     r->otherInfo = 0;
470     return r;
471 }
472
473 Z_APDU *zget_APDU(ODR o, int which)
474 {
475     Z_APDU *r = (Z_APDU *)odr_malloc(o, sizeof(*r));
476
477     switch (r->which = which)
478     {
479         case Z_APDU_initRequest:
480             r->u.initRequest = zget_InitRequest(o);
481             break;
482         case Z_APDU_initResponse:
483             r->u.initResponse = zget_InitResponse(o);
484             break;
485         case Z_APDU_searchRequest:
486             r->u.searchRequest = zget_SearchRequest(o);
487             break;
488         case Z_APDU_searchResponse:
489             r->u.searchResponse = zget_SearchResponse(o);
490             break;
491         case Z_APDU_presentRequest:
492             r->u.presentRequest = zget_PresentRequest(o);
493             break;
494         case Z_APDU_presentResponse:
495             r->u.presentResponse = zget_PresentResponse(o);
496             break;
497         case Z_APDU_deleteResultSetRequest:
498             r->u.deleteResultSetRequest = zget_DeleteResultSetRequest(o);
499             break;
500         case Z_APDU_deleteResultSetResponse:
501             r->u.deleteResultSetResponse = zget_DeleteResultSetResponse(o);
502             break;
503         case Z_APDU_scanRequest:
504             r->u.scanRequest = zget_ScanRequest(o);
505             break;
506         case Z_APDU_scanResponse:
507             r->u.scanResponse = zget_ScanResponse(o);
508             break;
509         case Z_APDU_triggerResourceControlRequest:
510             r->u.triggerResourceControlRequest =
511                 zget_TriggerResourceControlRequest(o);
512             break;
513         case Z_APDU_resourceControlRequest:
514             r->u.resourceControlRequest = zget_ResourceControlRequest(o);
515             break;
516         case Z_APDU_resourceControlResponse:
517             r->u.resourceControlResponse = zget_ResourceControlResponse(o);
518             break;
519         case Z_APDU_segmentRequest:
520             r->u.segmentRequest = zget_Segment(o);
521             break;
522         case Z_APDU_close:
523             r->u.close = zget_Close(o);
524             break;
525         case Z_APDU_accessControlRequest:
526             r->u.accessControlRequest = zget_AccessControlRequest(o);
527             break;
528         case Z_APDU_accessControlResponse:
529             r->u.accessControlResponse = zget_AccessControlResponse(o);
530             break;
531         case Z_APDU_resourceReportRequest:
532             r->u.resourceReportRequest = zget_ResourceReportRequest(o);
533             break;
534         case Z_APDU_resourceReportResponse:
535             r->u.resourceReportResponse = zget_ResourceReportResponse(o);
536             break;
537         case Z_APDU_sortRequest:
538             r->u.sortRequest = zget_SortRequest(o);
539             break;
540         case Z_APDU_sortResponse:
541             r->u.sortResponse = zget_SortResponse(o);
542             break;
543         case Z_APDU_extendedServicesRequest:
544             r->u.extendedServicesRequest = zget_ExtendedServicesRequest(o);
545             break;
546         case Z_APDU_extendedServicesResponse:
547             r->u.extendedServicesResponse = zget_ExtendedServicesResponse(o);
548             break;
549         default:
550             fprintf(stderr, "Bad APDU-type to zget_APDU");
551             exit(1);
552     }
553     return r;
554 }