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