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