71477d0e6a2cbc81e0eea8eb837416abf69972e1
[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.1  1995-05-22 11:30:20  quinn
8  * Adding Z39.50-1992 stuff to proto.c. Adding zget.c
9  *
10  *
11  */
12
13 #include <proto.h>
14 #include "../version.h"
15
16 Z_InitRequest *zget_InitRequest(ODR o)
17 {
18     Z_InitRequest *r = odr_malloc(o, sizeof(*r));
19
20     r->referenceId = 0;
21     r->options = odr_malloc(o, sizeof(*r->options));
22     ODR_MASK_ZERO(r->options);
23     r->protocolVersion = odr_malloc(o, sizeof(*r->protocolVersion));
24     ODR_MASK_ZERO(r->protocolVersion);
25     r->preferredMessageSize = odr_malloc(o, sizeof(int));
26     *r->preferredMessageSize = 30*1024;
27     r->maximumRecordSize = odr_malloc(o, sizeof(int));
28     *r->maximumRecordSize = 30*1024;
29     r->idAuthentication = 0;
30     r->implementationId = "YAZ";
31     r->implementationName = "Index Data/YAZ";
32     r->implementationVersion = YAZ_VERSION;
33     r->userInformationField = 0;
34     return r;
35 }
36
37 Z_InitResponse *zget_InitResponse(ODR o)
38 {
39     Z_InitResponse *r = odr_malloc(o, sizeof(*r));
40
41     r->referenceId = 0;
42     r->options = odr_malloc(o, sizeof(*r->options));
43     ODR_MASK_ZERO(r->options);
44     r->protocolVersion = odr_malloc(o, sizeof(*r->protocolVersion));
45     ODR_MASK_ZERO(r->protocolVersion);
46     r->preferredMessageSize = odr_malloc(o, sizeof(int));
47     *r->preferredMessageSize = 30*1024;
48     r->maximumRecordSize = odr_malloc(o, sizeof(int));
49     *r->maximumRecordSize = 30*1024;
50     r->implementationId = "YAZ";
51     r->implementationName = "Index Data YAZ Z39.50/SR implementation";
52     r->implementationVersion = YAZ_VERSION;
53     r->userInformationField = 0;
54     return r;
55 }
56
57 Z_SearchRequest *zget_SearchRequest(ODR o)
58 {
59     Z_SearchRequest *r = odr_malloc(o, sizeof(*r));
60
61     r->referenceId = 0;
62     r->smallSetUpperBound = odr_malloc(o, sizeof(int));
63     *r->smallSetUpperBound = 0;
64     r->largeSetLowerBound = odr_malloc(o, sizeof(int));
65     *r->largeSetLowerBound = 1;
66     r->mediumSetPresentNumber = odr_malloc(o, sizeof(int));
67     *r->mediumSetPresentNumber = 0;
68     r->replaceIndicator = odr_malloc(o, sizeof(bool_t));
69     *r->replaceIndicator = 1;
70     r->resultSetName = "Default";
71     r->num_databaseNames = 0;
72     r->databaseNames = 0;
73     r->smallSetElementSetNames = 0;
74     r->mediumSetElementSetNames = 0;
75     r->preferredRecordSyntax = 0;
76     r->query = 0;
77     return r;
78 }
79
80 Z_SearchResponse *zget_SearchResponse(ODR o)
81 {
82     Z_SearchResponse *r = odr_malloc(o, sizeof(*r));
83
84     r->referenceId = 0;
85     r->resultCount = odr_malloc(o, sizeof(int));
86     *r->resultCount = 0;
87     r->numberOfRecordsReturned = odr_malloc(o, sizeof(int));
88     *r->numberOfRecordsReturned = 0;
89     r->nextResultSetPosition = odr_malloc(o, sizeof(int));
90     *r->nextResultSetPosition = 0;
91     r->searchStatus = odr_malloc(o, sizeof(bool_t));
92     *r->searchStatus = 1;
93     r->resultSetStatus = 0;
94     r->presentStatus = 0;
95     r->records = 0;
96     return r;
97 }
98
99 Z_PresentRequest *zget_PresentRequest(ODR o)
100 {
101     Z_PresentRequest *r = odr_malloc(o, sizeof(*r));
102
103     r->referenceId = 0;
104     r->resultSetId = "Default";
105     r->resultSetStartPoint = odr_malloc(o, sizeof(int));
106     *r->resultSetStartPoint = 1;
107     r->numberOfRecordsRequested = odr_malloc(o, sizeof(int));
108     *r->numberOfRecordsRequested = 10;
109     r->elementSetNames = 0;
110     r->preferredRecordSyntax = 0;
111     return r;
112 }
113
114 Z_PresentResponse *zget_PresentResponse(ODR o)
115 {
116     Z_PresentResponse *r = odr_malloc(o, sizeof(*r));
117
118     r->referenceId = 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->presentStatus = odr_malloc(o, sizeof(int));
124     *r->presentStatus = Z_PRES_SUCCESS;
125     r->records = 0;
126     return r;
127 }
128
129 Z_DeleteResultSetRequest *zget_DeleteResultSetRequest(ODR o)
130 {
131     Z_DeleteResultSetRequest *r = odr_malloc(o, sizeof(*r));
132
133     r->referenceId = 0;
134     r->deleteFunction = odr_malloc(o, sizeof(int));
135     *r->deleteFunction = Z_DeleteRequest_list;
136     r->num_ids = 0;
137     r->resultSetList = 0;
138     return r;
139 }
140
141 Z_DeleteResultSetResponse *zget_DeleteResultSetResponse(ODR o)
142 {
143     Z_DeleteResultSetResponse *r = odr_malloc(o, sizeof(*r));
144
145     r->referenceId = 0;
146     r->deleteOperationStatus = odr_malloc(o, sizeof(int));
147     *r->deleteOperationStatus = Z_DeleteStatus_success;
148     r->num_statuses = 0;
149     r->deleteListStatuses = 0;
150     r->numberNotDeleted = 0;
151     r->num_bulkStatuses = 0;
152     r->bulkStatuses = 0;
153     r->deleteMessage = 0;
154     return r;
155 }
156
157 Z_ScanRequest *zget_ScanRequest(ODR o)
158 {
159     Z_ScanRequest *r = odr_malloc(o, sizeof(*r));
160
161     r->referenceId = 0;
162     r->num_databaseNames = 0;
163     r->databaseNames = 0;
164     r->attributeSet = 0;
165     r->termListAndStartPoint = 0;
166     r->stepSize = 0;
167     r->numberOfTermsRequested = odr_malloc(o, sizeof(int));
168     *r->numberOfTermsRequested = 20;
169     r->preferredPositionInResponse = 0;
170     return r;
171 }
172
173 Z_ScanResponse *zget_ScanResponse(ODR o)
174 {
175     Z_ScanResponse *r = odr_malloc(o, sizeof(*r));
176
177     r->referenceId = 0;
178     r->stepSize = 0;
179     r->scanStatus = odr_malloc(o, sizeof(int));
180     *r->scanStatus = Z_Scan_success;
181     r->numberOfEntriesReturned = odr_malloc(o, sizeof(int));
182     *r->numberOfEntriesReturned = 0;
183     r->positionOfTerm =0;
184     r->entries = 0;
185     r->attributeSet = 0;
186     return r;
187 }
188
189 Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o)
190 {
191     Z_TriggerResourceControlRequest *r = odr_malloc(o, sizeof(*r));
192
193     r->referenceId = 0;
194     r->requestedAction = odr_malloc(o, sizeof(int));
195     *r->requestedAction = Z_TriggerResourceCtrl_resourceReport;
196     r->prefResourceReportFormat = 0;
197     r->resultSetWanted = 0;
198     return r;
199 }
200
201 Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o)
202 {
203     Z_ResourceControlRequest *r = odr_malloc(o, sizeof(*r));
204
205     r->referenceId = 0;
206     r->suspendedFlag = 0;
207     r->resourceReport = 0;
208     r->partialResultsAvailable = 0;
209     r->responseRequired = odr_malloc(o, sizeof(bool_t));
210     *r->responseRequired = 0;
211     r->triggeredRequestFlag = 0;
212     return r;
213 }
214
215 Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o)
216 {
217     Z_ResourceControlResponse *r = odr_malloc(o, sizeof(*r));
218
219     r->referenceId = 0;
220     r->continueFlag = odr_malloc(o, sizeof(bool_t));
221     *r->continueFlag = 1;
222     r->resultSetWanted = 0;
223     return r;
224 }
225
226 Z_AccessControlRequest *zget_AccessControlRequest(ODR o)
227 {
228     Z_AccessControlRequest *r = odr_malloc(o, sizeof(*r));
229
230     r->referenceId = 0;
231     r->which = Z_AccessRequest_simpleForm;
232     r->u.simpleForm = 0;
233     return r;
234 }
235
236 Z_AccessControlResponse *zget_AccessControlResponse(ODR o)
237 {
238     Z_AccessControlResponse *r = odr_malloc(o, sizeof(*r));
239
240     r->referenceId = 0;
241     r->which = Z_AccessResponse_simpleForm;
242     r->u.simpleForm = 0;
243     r->diagnostic = 0;
244     return r;
245 }
246
247 Z_APDU *zget_APDU(ODR o, enum Z_APDU_which which)
248 {
249     Z_APDU *r = odr_malloc(o, sizeof(*r));
250     
251     switch (r->which = which)
252     {
253         case Z_APDU_initRequest:
254             r->u.initRequest = zget_InitRequest(o); break;
255         case Z_APDU_initResponse:
256             r->u.initResponse = zget_InitResponse(o); break;
257         case Z_APDU_searchRequest:      
258             r->u.searchRequest = zget_SearchRequest(o); break;
259         case Z_APDU_searchResponse:
260             r->u.searchResponse = zget_SearchResponse(o); break;
261         case Z_APDU_presentRequest:
262             r->u.presentRequest = zget_PresentRequest(o); break;
263         case Z_APDU_presentResponse:
264             r->u.presentResponse = zget_PresentResponse(o); break;
265         case Z_APDU_deleteResultSetRequest:
266             r->u.deleteResultSetRequest = zget_DeleteResultSetRequest(o); break;
267         case Z_APDU_deleteResultSetResponse:
268             r->u.deleteResultSetResponse = zget_DeleteResultSetResponse(o);
269             break;
270         case Z_APDU_scanRequest:
271             r->u.scanRequest = zget_ScanRequest(o); break;
272         case Z_APDU_scanResponse:
273             r->u.scanResponse = zget_ScanResponse(o); break;
274         case Z_APDU_triggerResourceControlRequest:
275             r->u.triggerResourceControlRequest =
276                 zget_TriggerResourceControlRequest(o); break;
277         case Z_APDU_resourceControlRequest:
278             r->u.resourceControlRequest = zget_ResourceControlRequest(o);
279             break;
280         case Z_APDU_resourceControlResponse:
281             r->u.resourceControlResponse = zget_ResourceControlResponse(o);
282             break;
283         default:
284             fprintf(stderr, "Bad APDU-type to zget_APDU");
285             exit(1);
286     }
287     return r;
288 }