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