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