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