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