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