YAZ
4.2.57
Main Page
Data Structures
Files
File List
Globals
src
zget.c
Go to the documentation of this file.
1
/* This file is part of the YAZ toolkit.
2
* Copyright (C) 1995-2013 Index Data
3
* See the file LICENSE for details.
4
*/
9
#if HAVE_CONFIG_H
10
#include <
config.h
>
11
#endif
12
13
#include <
yaz/proto.h
>
14
#include <
yaz/oid_db.h
>
15
16
static
Z_InitRequest
*
zget_InitRequest
(
ODR
o)
17
{
18
Z_InitRequest
*r = (
Z_InitRequest
*)
odr_malloc
(o,
sizeof
(*r));
19
20
r->
referenceId
= 0;
21
r->
options
= (
Odr_bitmask
*)
odr_malloc
(o,
sizeof
(*r->
options
));
22
ODR_MASK_ZERO
(r->
options
);
23
r->
protocolVersion
= (
Odr_bitmask
*)
24
odr_malloc
(o,
sizeof
(*r->
protocolVersion
));
25
26
ODR_MASK_SET
(r->
options
,
Z_Options_search
);
27
ODR_MASK_SET
(r->
options
,
Z_Options_present
);
28
29
ODR_MASK_ZERO
(r->
protocolVersion
);
30
31
ODR_MASK_SET
(r->
protocolVersion
,
Z_ProtocolVersion_1
);
32
ODR_MASK_SET
(r->
protocolVersion
,
Z_ProtocolVersion_2
);
33
34
r->
preferredMessageSize
=
odr_intdup
(o, 1024*1024);
35
r->
maximumRecordSize
=
odr_intdup
(o, 1024*1024);
36
r->
idAuthentication
= 0;
37
r->
implementationId
=
"81"
;
38
r->
implementationName
=
"YAZ"
;
39
r->
implementationVersion
=
YAZ_VERSION
40
#ifdef YAZ_VERSION_SHA1
41
" "
YAZ_VERSION_SHA1
42
#endif
43
;
44
r->
userInformationField
= 0;
45
r->
otherInfo
= 0;
46
return
r;
47
}
48
49
static
Z_InitResponse
*
zget_InitResponse
(
ODR
o)
50
{
51
Z_InitResponse
*r = (
Z_InitResponse
*)
odr_malloc
(o,
sizeof
(*r));
52
53
r->
referenceId
= 0;
54
r->
options
= (
Odr_bitmask
*)
odr_malloc
(o,
sizeof
(*r->
options
));
55
ODR_MASK_ZERO
(r->
options
);
56
r->
protocolVersion
= (
Odr_bitmask
*)
odr_malloc
(o,
sizeof
(*r->
protocolVersion
));
57
ODR_MASK_ZERO
(r->
protocolVersion
);
58
r->
preferredMessageSize
=
odr_intdup
(o, 30*1024);
59
r->
maximumRecordSize
=
odr_intdup
(o, 30*1024);
60
r->
result
=
odr_booldup
(o, 1);
61
r->
implementationId
=
"81"
;
62
r->
implementationName
=
"YAZ"
;
63
r->
implementationVersion
=
YAZ_VERSION
64
#ifdef YAZ_VERSION_SHA1
65
" "
YAZ_VERSION_SHA1
66
#endif
67
;
68
r->
userInformationField
= 0;
69
r->
otherInfo
= 0;
70
return
r;
71
}
72
73
static
Z_SearchRequest
*
zget_SearchRequest
(
ODR
o)
74
{
75
Z_SearchRequest
*r = (
Z_SearchRequest
*)
odr_malloc
(o,
sizeof
(*r));
76
77
r->
referenceId
= 0;
78
r->
smallSetUpperBound
=
odr_intdup
(o, 0);
79
r->
largeSetLowerBound
=
odr_intdup
(o, 1);
80
r->
mediumSetPresentNumber
=
odr_intdup
(o, 0);
81
r->
replaceIndicator
=
odr_booldup
(o, 1);
82
r->
resultSetName
=
"default"
;
83
r->
num_databaseNames
= 0;
84
r->
databaseNames
= 0;
85
r->
smallSetElementSetNames
= 0;
86
r->
mediumSetElementSetNames
= 0;
87
r->
preferredRecordSyntax
= 0;
88
r->
query
= 0;
89
r->
additionalSearchInfo
= 0;
90
r->
otherInfo
= 0;
91
return
r;
92
}
93
94
static
Z_SearchResponse
*
zget_SearchResponse
(
ODR
o)
95
{
96
Z_SearchResponse
*r = (
Z_SearchResponse
*)
odr_malloc
(o,
sizeof
(*r));
97
98
r->
referenceId
= 0;
99
r->
resultCount
=
odr_intdup
(o, 0);
100
r->
numberOfRecordsReturned
=
odr_intdup
(o, 0);
101
r->
nextResultSetPosition
=
odr_intdup
(o, 0);
102
r->
searchStatus
=
odr_booldup
(o, 1);
103
r->
resultSetStatus
= 0;
104
r->
presentStatus
= 0;
105
r->
records
= 0;
106
r->
additionalSearchInfo
= 0;
107
r->
otherInfo
= 0;
108
return
r;
109
}
110
111
static
Z_PresentRequest
*
zget_PresentRequest
(
ODR
o)
112
{
113
Z_PresentRequest
*r = (
Z_PresentRequest
*)
odr_malloc
(o,
sizeof
(*r));
114
115
r->
referenceId
= 0;
116
r->
resultSetId
=
"default"
;
117
r->
resultSetStartPoint
=
odr_intdup
(o, 1);
118
r->
numberOfRecordsRequested
=
odr_intdup
(o, 10);
119
r->
num_ranges
= 0;
120
r->
additionalRanges
= 0;
121
r->
recordComposition
= 0;
122
r->
preferredRecordSyntax
= 0;
123
r->
maxSegmentCount
= 0;
124
r->
maxRecordSize
= 0;
125
r->
maxSegmentSize
= 0;
126
r->
otherInfo
= 0;
127
return
r;
128
}
129
130
static
Z_PresentResponse
*
zget_PresentResponse
(
ODR
o)
131
{
132
Z_PresentResponse
*r = (
Z_PresentResponse
*)
odr_malloc
(o,
sizeof
(*r));
133
134
r->
referenceId
= 0;
135
r->
numberOfRecordsReturned
=
odr_intdup
(o, 0);
136
r->
nextResultSetPosition
=
odr_intdup
(o, 0);
137
r->
presentStatus
=
odr_intdup
(o,
Z_PresentStatus_success
);
138
r->
records
= 0;
139
r->
otherInfo
= 0;
140
return
r;
141
}
142
143
static
Z_DeleteResultSetRequest
*
zget_DeleteResultSetRequest
(
ODR
o)
144
{
145
Z_DeleteResultSetRequest
*r = (
Z_DeleteResultSetRequest
*)
146
odr_malloc
(o,
sizeof
(*r));
147
148
r->
referenceId
= 0;
149
r->
deleteFunction
=
odr_intdup
(o,
Z_DeleteResultSetRequest_list
);
150
r->
num_resultSetList
= 0;
151
r->
resultSetList
= 0;
152
r->
otherInfo
= 0;
153
return
r;
154
}
155
156
static
Z_DeleteResultSetResponse
*
zget_DeleteResultSetResponse
(
ODR
o)
157
{
158
Z_DeleteResultSetResponse
*r = (
Z_DeleteResultSetResponse
*)
159
odr_malloc
(o,
sizeof
(*r));
160
161
r->
referenceId
= 0;
162
r->
deleteOperationStatus
=
odr_intdup
(o,
Z_DeleteStatus_success
);
163
r->
deleteListStatuses
= 0;
164
r->
numberNotDeleted
= 0;
165
r->
bulkStatuses
= 0;
166
r->
deleteMessage
= 0;
167
r->
otherInfo
= 0;
168
return
r;
169
}
170
171
static
Z_ScanRequest
*
zget_ScanRequest
(
ODR
o)
172
{
173
Z_ScanRequest
*r = (
Z_ScanRequest
*)
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_intdup
(o, 20);
182
r->
preferredPositionInResponse
= 0;
183
r->
otherInfo
= 0;
184
return
r;
185
}
186
187
static
Z_ScanResponse
*
zget_ScanResponse
(
ODR
o)
188
{
189
Z_ScanResponse
*r = (
Z_ScanResponse
*)
odr_malloc
(o,
sizeof
(*r));
190
191
r->
referenceId
= 0;
192
r->
stepSize
= 0;
193
r->
scanStatus
=
odr_intdup
(o,
Z_Scan_success
);
194
r->
numberOfEntriesReturned
=
odr_intdup
(o, 0);
195
r->
positionOfTerm
=0;
196
r->
entries
= 0;
197
r->
attributeSet
= 0;
198
r->
otherInfo
= 0;
199
return
r;
200
}
201
202
static
Z_TriggerResourceControlRequest
*
zget_TriggerResourceControlRequest
(
ODR
o)
203
{
204
Z_TriggerResourceControlRequest
*r = (
Z_TriggerResourceControlRequest
*)
205
odr_malloc
(o,
sizeof
(*r));
206
207
r->
referenceId
= 0;
208
r->
requestedAction
=
odr_intdup
(o,
Z_TriggerResourceControlRequest_resourceReport
);
209
r->
prefResourceReportFormat
= 0;
210
r->
resultSetWanted
= 0;
211
r->
otherInfo
= 0;
212
return
r;
213
}
214
215
static
Z_ResourceControlRequest
*
zget_ResourceControlRequest
(
ODR
o)
216
{
217
Z_ResourceControlRequest
*r = (
Z_ResourceControlRequest
*)
218
odr_malloc
(o,
sizeof
(*r));
219
220
r->
referenceId
= 0;
221
r->
suspendedFlag
= 0;
222
r->
resourceReport
= 0;
223
r->
partialResultsAvailable
= 0;
224
r->
responseRequired
=
odr_booldup
(o, 0);
225
r->
triggeredRequestFlag
= 0;
226
r->
otherInfo
= 0;
227
return
r;
228
}
229
230
static
Z_ResourceControlResponse
*
zget_ResourceControlResponse
(
ODR
o)
231
{
232
Z_ResourceControlResponse
*r = (
Z_ResourceControlResponse
*)
233
odr_malloc
(o,
sizeof
(*r));
234
235
r->
referenceId
= 0;
236
r->
continueFlag
=
odr_booldup
(o, 1);
237
r->
resultSetWanted
= 0;
238
r->
otherInfo
= 0;
239
return
r;
240
}
241
242
static
Z_AccessControlRequest
*
zget_AccessControlRequest
(
ODR
o)
243
{
244
Z_AccessControlRequest
*r = (
Z_AccessControlRequest
*)
245
odr_malloc
(o,
sizeof
(*r));
246
247
r->
referenceId
= 0;
248
r->
which
=
Z_AccessControlRequest_simpleForm
;
249
r->
u
.
simpleForm
= 0;
250
r->
otherInfo
= 0;
251
return
r;
252
}
253
254
static
Z_AccessControlResponse
*
zget_AccessControlResponse
(
ODR
o)
255
{
256
Z_AccessControlResponse
*r = (
Z_AccessControlResponse
*)
257
odr_malloc
(o,
sizeof
(*r));
258
259
r->
referenceId
= 0;
260
r->
which
=
Z_AccessControlResponse_simpleForm
;
261
r->
u
.
simpleForm
= 0;
262
r->
diagnostic
= 0;
263
r->
otherInfo
= 0;
264
return
r;
265
}
266
267
static
Z_Segment
*
zget_Segment
(
ODR
o)
268
{
269
Z_Segment
*r = (
Z_Segment
*)
odr_malloc
(o,
sizeof
(*r));
270
271
r->
referenceId
= 0;
272
r->
numberOfRecordsReturned
=
odr_intdup
(o, 0);
273
r->
num_segmentRecords
= 0;
274
r->
segmentRecords
= (
Z_NamePlusRecord
**)
odr_nullval
();
275
r->
otherInfo
= 0;
276
return
r;
277
}
278
279
static
Z_Close
*
zget_Close
(
ODR
o)
280
{
281
Z_Close
*r = (
Z_Close
*)
odr_malloc
(o,
sizeof
(*r));
282
283
r->
referenceId
= 0;
284
r->
closeReason
=
odr_intdup
(o,
Z_Close_finished
);
285
r->
diagnosticInformation
= 0;
286
r->
resourceReportFormat
= 0;
287
r->
resourceReport
= 0;
288
r->
otherInfo
= 0;
289
return
r;
290
}
291
292
static
Z_ResourceReportRequest
*
zget_ResourceReportRequest
(
ODR
o)
293
{
294
Z_ResourceReportRequest
*r = (
Z_ResourceReportRequest
*)
295
odr_malloc
(o,
sizeof
(*r));
296
297
r->
referenceId
= 0;
298
r->
opId
= 0;
299
r->
prefResourceReportFormat
= 0;
300
r->
otherInfo
= 0;
301
return
r;
302
}
303
304
static
Z_ResourceReportResponse
*
zget_ResourceReportResponse
(
ODR
o)
305
{
306
Z_ResourceReportResponse
*r = (
Z_ResourceReportResponse
*)
307
odr_malloc
(o,
sizeof
(*r));
308
309
r->
referenceId
= 0;
310
r->
resourceReportStatus
=
odr_intdup
(o,
Z_ResourceReportResponse_success
);
311
r->
resourceReport
= 0;
312
r->
otherInfo
= 0;
313
return
r;
314
}
315
316
static
Z_SortRequest
*
zget_SortRequest
(
ODR
o)
317
{
318
Z_SortRequest
*r = (
Z_SortRequest
*)
odr_malloc
(o,
sizeof
(*r));
319
320
r->
referenceId
= 0;
321
r->
inputResultSetNames
= 0;
322
r->
sortedResultSetName
= 0;
323
r->
sortSequence
= 0;
324
r->
otherInfo
= 0;
325
return
r;
326
}
327
328
static
Z_SortResponse
*
zget_SortResponse
(
ODR
o)
329
{
330
Z_SortResponse
*r = (
Z_SortResponse
*)
odr_malloc
(o,
sizeof
(*r));
331
332
r->
referenceId
= 0;
333
r->
sortStatus
=
odr_intdup
(o,
Z_SortResponse_success
);
334
r->
resultSetStatus
=
odr_intdup
(o,
Z_SortResponse_empty
);
335
r->
diagnostics
= 0;
336
r->
resultCount
= 0;
337
r->
otherInfo
= 0;
338
return
r;
339
}
340
341
static
Z_ExtendedServicesRequest
*
zget_ExtendedServicesRequest
(
ODR
o)
342
{
343
Z_ExtendedServicesRequest
*r = (
Z_ExtendedServicesRequest
*)
344
odr_malloc
(o,
sizeof
(*r));
345
346
r->
referenceId
= 0;
347
r->
function
=
odr_intdup
(o,
Z_ExtendedServicesRequest_create
);
348
r->
packageType
= 0;
349
r->
packageName
= 0;
350
r->
userId
= 0;
351
r->
retentionTime
= 0;
352
r->
permissions
= 0;
353
r->
description
= 0;
354
r->
taskSpecificParameters
= 0;
355
r->
waitAction
=
odr_intdup
(o,
Z_ExtendedServicesRequest_waitIfPossible
);
356
r->
elements
= 0;
357
r->
otherInfo
= 0;
358
return
r;
359
}
360
361
static
Z_ExtendedServicesResponse
*
zget_ExtendedServicesResponse
(
ODR
o)
362
{
363
Z_ExtendedServicesResponse
*r = (
Z_ExtendedServicesResponse
*)
364
odr_malloc
(o,
sizeof
(*r));
365
366
r->
referenceId
= 0;
367
r->
operationStatus
=
odr_intdup
(o,
Z_ExtendedServicesResponse_done
);
368
r->
num_diagnostics
= 0;
369
r->
diagnostics
= 0;
370
r->
taskPackage
= 0;
371
r->
otherInfo
= 0;
372
return
r;
373
}
374
375
static
Z_DuplicateDetectionRequest
*
zget_DuplicateDetectionRequest
(
ODR
o)
376
{
377
Z_DuplicateDetectionRequest
*r = (
Z_DuplicateDetectionRequest
*)
378
odr_malloc
(o,
sizeof
(*r));
379
380
r->
referenceId
= 0;
381
r->
num_inputResultSetIds
= 0;
382
r->
inputResultSetIds
= 0;
383
r->
outputResultSetName
= 0;
384
r->
applicablePortionOfRecord
= 0;
385
r->
num_duplicateDetectionCriteria
= 0;
386
r->
duplicateDetectionCriteria
= 0;
387
r->
clustering
= 0;
388
r->
num_retentionCriteria
= 0;
389
r->
retentionCriteria
= 0;
390
r->
num_sortCriteria
= 0;
391
r->
sortCriteria
= 0;
392
r->
otherInfo
= 0;
393
return
r;
394
}
395
396
static
Z_DuplicateDetectionResponse
*
zget_DuplicateDetectionResponse
(
ODR
o)
397
{
398
Z_DuplicateDetectionResponse
*r = (
Z_DuplicateDetectionResponse
*)
399
odr_malloc
(o,
sizeof
(*r));
400
401
r->
referenceId
= 0;
402
r->
status
=
odr_intdup
(o,
Z_DuplicateDetectionResponse_success
);
403
r->
resultSetCount
= 0;
404
r->
num_diagnostics
= 0;
405
r->
diagnostics
= 0;
406
r->
otherInfo
= 0;
407
return
r;
408
}
409
410
Z_APDU
*
zget_APDU
(
ODR
o,
int
which)
411
{
412
Z_APDU
*r = (
Z_APDU
*)
odr_malloc
(o,
sizeof
(*r));
413
414
switch
(r->
which
= which)
415
{
416
case
Z_APDU_initRequest
:
417
r->
u
.
initRequest
=
zget_InitRequest
(o);
418
break
;
419
case
Z_APDU_initResponse
:
420
r->
u
.
initResponse
=
zget_InitResponse
(o);
421
break
;
422
case
Z_APDU_searchRequest
:
423
r->
u
.
searchRequest
=
zget_SearchRequest
(o);
424
break
;
425
case
Z_APDU_searchResponse
:
426
r->
u
.
searchResponse
=
zget_SearchResponse
(o);
427
break
;
428
case
Z_APDU_presentRequest
:
429
r->
u
.
presentRequest
=
zget_PresentRequest
(o);
430
break
;
431
case
Z_APDU_presentResponse
:
432
r->
u
.
presentResponse
=
zget_PresentResponse
(o);
433
break
;
434
case
Z_APDU_deleteResultSetRequest
:
435
r->
u
.
deleteResultSetRequest
=
zget_DeleteResultSetRequest
(o);
436
break
;
437
case
Z_APDU_deleteResultSetResponse
:
438
r->
u
.
deleteResultSetResponse
=
zget_DeleteResultSetResponse
(o);
439
break
;
440
case
Z_APDU_scanRequest
:
441
r->
u
.
scanRequest
=
zget_ScanRequest
(o);
442
break
;
443
case
Z_APDU_scanResponse
:
444
r->
u
.
scanResponse
=
zget_ScanResponse
(o);
445
break
;
446
case
Z_APDU_triggerResourceControlRequest
:
447
r->
u
.
triggerResourceControlRequest
=
448
zget_TriggerResourceControlRequest
(o);
449
break
;
450
case
Z_APDU_resourceControlRequest
:
451
r->
u
.
resourceControlRequest
=
zget_ResourceControlRequest
(o);
452
break
;
453
case
Z_APDU_resourceControlResponse
:
454
r->
u
.
resourceControlResponse
=
zget_ResourceControlResponse
(o);
455
break
;
456
case
Z_APDU_segmentRequest
:
457
r->
u
.
segmentRequest
=
zget_Segment
(o);
458
break
;
459
case
Z_APDU_close
:
460
r->
u
.
close
=
zget_Close
(o);
461
break
;
462
case
Z_APDU_accessControlRequest
:
463
r->
u
.
accessControlRequest
=
zget_AccessControlRequest
(o);
464
break
;
465
case
Z_APDU_accessControlResponse
:
466
r->
u
.
accessControlResponse
=
zget_AccessControlResponse
(o);
467
break
;
468
case
Z_APDU_resourceReportRequest
:
469
r->
u
.
resourceReportRequest
=
zget_ResourceReportRequest
(o);
470
break
;
471
case
Z_APDU_resourceReportResponse
:
472
r->
u
.
resourceReportResponse
=
zget_ResourceReportResponse
(o);
473
break
;
474
case
Z_APDU_sortRequest
:
475
r->
u
.
sortRequest
=
zget_SortRequest
(o);
476
break
;
477
case
Z_APDU_sortResponse
:
478
r->
u
.
sortResponse
=
zget_SortResponse
(o);
479
break
;
480
case
Z_APDU_extendedServicesRequest
:
481
r->
u
.
extendedServicesRequest
=
zget_ExtendedServicesRequest
(o);
482
break
;
483
case
Z_APDU_extendedServicesResponse
:
484
r->
u
.
extendedServicesResponse
=
zget_ExtendedServicesResponse
(o);
485
break
;
486
case
Z_APDU_duplicateDetectionRequest
:
487
r->
u
.
duplicateDetectionRequest
=
zget_DuplicateDetectionRequest
(o);
488
break
;
489
case
Z_APDU_duplicateDetectionResponse
:
490
r->
u
.
duplicateDetectionResponse
=
zget_DuplicateDetectionResponse
(o);
491
break
;
492
default
:
493
return
0;
494
}
495
return
r;
496
}
497
498
Z_DefaultDiagFormat
*
zget_DefaultDiagFormat
(
ODR
o,
int
error,
499
const
char
*addinfo)
500
{
501
Z_DefaultDiagFormat
*dr = (
Z_DefaultDiagFormat
*)
502
odr_malloc
(o,
sizeof
(*dr));
503
504
dr->
diagnosticSetId
=
odr_oiddup
(o,
yaz_oid_diagset_bib_1
);
505
dr->
condition
=
odr_intdup
(o, error);
506
dr->
which
=
Z_DefaultDiagFormat_v2Addinfo
;
507
dr->
u
.
v2Addinfo
=
odr_strdup
(o, addinfo ? addinfo :
""
);
508
return
dr;
509
}
510
511
Z_DiagRec
*
zget_DiagRec
(
ODR
o,
int
error,
const
char
*addinfo)
512
{
513
Z_DiagRec
*dr = (
Z_DiagRec
*)
odr_malloc
(o,
sizeof
(*dr));
514
dr->
which
=
Z_DiagRec_defaultFormat
;
515
dr->
u
.
defaultFormat
=
zget_DefaultDiagFormat
(o, error, addinfo);
516
return
dr;
517
}
518
519
Z_DiagRecs
*
zget_DiagRecs
(
ODR
o,
int
error,
const
char
*addinfo)
520
{
521
Z_DiagRecs
*drecs = (
Z_DiagRecs
*)
odr_malloc
(o,
sizeof
(*drecs));
522
Z_DiagRec
**dr = (
Z_DiagRec
**)
odr_malloc
(o,
sizeof
(**dr));
523
drecs->
diagRecs
= dr;
524
dr[0] =
zget_DiagRec
(o, error, addinfo);
525
drecs->
num_diagRecs
= 1;
526
return
drecs;
527
}
528
529
Z_NamePlusRecord
*
zget_surrogateDiagRec
(
ODR
o,
const
char
*dbname,
530
int
error,
const
char
*addinfo)
531
{
532
Z_NamePlusRecord
*rec = (
Z_NamePlusRecord
*)
odr_malloc
(o,
sizeof
(*rec));
533
Z_DiagRec
*drec = (
Z_DiagRec
*)
odr_malloc
(o,
sizeof
(*drec));
534
535
if
(dbname)
536
rec->
databaseName
=
odr_strdup
(o, dbname);
537
else
538
rec->
databaseName
= 0;
539
rec->
which
=
Z_NamePlusRecord_surrogateDiagnostic
;
540
rec->
u
.
surrogateDiagnostic
= drec;
541
drec->
which
=
Z_DiagRec_defaultFormat
;
542
drec->
u
.
defaultFormat
=
zget_DefaultDiagFormat
(o, error, addinfo);
543
return
rec;
544
}
545
546
Z_External
*
zget_init_diagnostics
(
ODR
odr
,
int
error,
const
char
*addinfo)
547
{
548
Z_External
*x, *
x2
;
549
Z_OtherInformation
*u;
550
Z_OtherInformationUnit
*l;
551
Z_DiagnosticFormat
*d;
552
Z_DiagnosticFormat_s
*e;
553
554
x = (
Z_External
*)
odr_malloc
(odr,
sizeof
*x);
555
x->
descriptor
= 0;
556
x->
indirect_reference
= 0;
557
x->
direct_reference
=
odr_oiddup
(odr,
yaz_oid_userinfo_userinfo_1
);
558
x->
which
=
Z_External_userInfo1
;
559
560
u = (
Z_OtherInformation
*)
odr_malloc
(odr,
sizeof
*u);
561
x->
u
.
userInfo1
= u;
562
u->
num_elements
= 1;
563
u->
list
= (
Z_OtherInformationUnit
**)
odr_malloc
(odr,
sizeof
*u->
list
);
564
u->
list
[0] = (
Z_OtherInformationUnit
*)
odr_malloc
(odr,
sizeof
*u->
list
[0]);
565
l = u->
list
[0];
566
l->
category
= 0;
567
l->
which
=
Z_OtherInfo_externallyDefinedInfo
;
568
569
x2 = (
Z_External
*)
odr_malloc
(odr,
sizeof
*x);
570
l->
information
.
externallyDefinedInfo
=
x2
;
571
x2->
descriptor
= 0;
572
x2->
indirect_reference
= 0;
573
x2->
direct_reference
=
odr_oiddup
(odr,
yaz_oid_diagset_diag_1
);
574
x2->
which
=
Z_External_diag1
;
575
576
d = (
Z_DiagnosticFormat
*)
odr_malloc
(odr,
sizeof
*d);
577
x2->
u
.
diag1
= d;
578
d->
num
= 1;
579
d->
elements
= (
Z_DiagnosticFormat_s
**)
odr_malloc
(odr,
sizeof
*d->
elements
);
580
d->
elements
[0] = (
Z_DiagnosticFormat_s
*)
odr_malloc
(odr,
sizeof
*d->
elements
[0]);
581
e = d->
elements
[0];
582
583
e->
which
=
Z_DiagnosticFormat_s_defaultDiagRec
;
584
e->
u
.
defaultDiagRec
=
zget_DefaultDiagFormat
(odr, error, addinfo);
585
e->
message
= 0;
586
return
x;
587
}
588
589
Z_External
*
zget_init_diagnostics_octet
(
ODR
odr
,
int
error,
590
const
char
*addinfo)
591
{
592
Z_External
*x, *
x2
;
593
Z_OtherInformation
*u;
594
Z_OtherInformationUnit
*l;
595
Z_DiagnosticFormat
*d;
596
Z_DiagnosticFormat_s
*e;
597
char
*octet_buf;
598
int
octet_len;
599
ODR
encode;
600
601
u = (
Z_OtherInformation
*)
odr_malloc
(odr,
sizeof
*u);
602
u->
num_elements
= 1;
603
u->
list
= (
Z_OtherInformationUnit
**)
odr_malloc
(odr,
sizeof
*u->
list
);
604
u->
list
[0] = (
Z_OtherInformationUnit
*)
odr_malloc
(odr,
sizeof
*u->
list
[0]);
605
l = u->
list
[0];
606
l->
category
= 0;
607
l->
which
=
Z_OtherInfo_externallyDefinedInfo
;
608
609
x2 = (
Z_External
*)
odr_malloc
(odr,
sizeof
*x);
610
l->
information
.
externallyDefinedInfo
=
x2
;
611
x2->
descriptor
= 0;
612
x2->
indirect_reference
= 0;
613
614
x2->
direct_reference
=
odr_oiddup
(odr,
yaz_oid_diagset_diag_1
);
615
x2->
which
=
Z_External_diag1
;
616
617
d = (
Z_DiagnosticFormat
*)
odr_malloc
(odr,
sizeof
*d);
618
x2->
u
.
diag1
= d;
619
d->
num
= 1;
620
d->
elements
= (
Z_DiagnosticFormat_s
**)
odr_malloc
(odr,
sizeof
*d->
elements
);
621
d->
elements
[0] = (
Z_DiagnosticFormat_s
*)
odr_malloc
(odr,
sizeof
*d->
elements
[0]);
622
e = d->
elements
[0];
623
624
e->
which
=
Z_DiagnosticFormat_s_defaultDiagRec
;
625
e->
u
.
defaultDiagRec
=
zget_DefaultDiagFormat
(odr, error, addinfo);
626
e->
message
= 0;
627
628
encode =
odr_createmem
(
ODR_ENCODE
);
629
630
z_OtherInformation
(encode, &u, 0, 0);
631
632
octet_buf =
odr_getbuf
(encode, &octet_len, 0);
633
634
x = (
Z_External
*)
odr_malloc
(odr,
sizeof
*x);
635
x->
descriptor
= 0;
636
x->
indirect_reference
= 0;
637
x->
direct_reference
=
odr_oiddup
(odr,
yaz_oid_userinfo_userinfo_1
);
638
x->
which
=
Z_External_octet
;
639
x->
u
.
octet_aligned
= (
Odr_oct
*)
odr_malloc
(odr,
sizeof
(
Odr_oct
));
640
x->
u
.
octet_aligned
->
buf
= (
unsigned
char
*)
odr_malloc
(odr, octet_len);
641
memcpy(x->
u
.
octet_aligned
->
buf
, octet_buf, octet_len);
642
x->
u
.
octet_aligned
->
len
= octet_len;
643
644
odr_destroy
(encode);
645
646
return
x;
647
}
648
649
/*
650
* Local variables:
651
* c-basic-offset: 4
652
* c-file-style: "Stroustrup"
653
* indent-tabs-mode: nil
654
* End:
655
* vim: shiftwidth=4 tabstop=8 expandtab
656
*/
657
Generated on Wed May 15 2013 14:55:31 for YAZ by
1.8.1.2