c0ec1cb20d2e6b75be09252b411f1c92a7857979
[yaz-moved-to-github.git] / z39.50 / z-sum.c
1 /* YC 0.2 Tue Feb 29 16:45:06 CET 2000 */
2 /* Module-C: RecordSyntax-summary */
3
4 #include <yaz/z-sum.h>
5
6 int z_BriefBib (ODR o, Z_BriefBib **p, int opt, const char *name)
7 {
8         if (!odr_sequence_begin (o, p, sizeof(**p), name))
9                 return opt && odr_ok (o);
10         return
11                 odr_implicit_tag (o, z_InternationalString,
12                         &(*p)->title, ODR_CONTEXT, 1, 0, "title") &&
13                 odr_implicit_tag (o, z_InternationalString,
14                         &(*p)->author, ODR_CONTEXT, 2, 1, "author") &&
15                 odr_implicit_tag (o, z_InternationalString,
16                         &(*p)->callNumber, ODR_CONTEXT, 3, 1, "callNumber") &&
17                 odr_implicit_tag (o, z_InternationalString,
18                         &(*p)->recordType, ODR_CONTEXT, 4, 1, "recordType") &&
19                 odr_implicit_tag (o, z_InternationalString,
20                         &(*p)->bibliographicLevel, ODR_CONTEXT, 5, 1, "bibliographicLevel") &&
21                 odr_implicit_settag (o, ODR_CONTEXT, 6) &&
22                 (odr_sequence_of(o, (Odr_fun) z_FormatSpec, &(*p)->format,
23                   &(*p)->num_format, "format") || odr_ok(o)) &&
24                 odr_implicit_tag (o, z_InternationalString,
25                         &(*p)->publicationPlace, ODR_CONTEXT, 7, 1, "publicationPlace") &&
26                 odr_implicit_tag (o, z_InternationalString,
27                         &(*p)->publicationDate, ODR_CONTEXT, 8, 1, "publicationDate") &&
28                 odr_implicit_tag (o, z_InternationalString,
29                         &(*p)->targetSystemKey, ODR_CONTEXT, 9, 1, "targetSystemKey") &&
30                 odr_implicit_tag (o, z_InternationalString,
31                         &(*p)->satisfyingElement, ODR_CONTEXT, 10, 1, "satisfyingElement") &&
32                 odr_implicit_tag (o, odr_integer,
33                         &(*p)->rank, ODR_CONTEXT, 11, 1, "rank") &&
34                 odr_implicit_tag (o, z_InternationalString,
35                         &(*p)->documentId, ODR_CONTEXT, 12, 1, "documentId") &&
36                 odr_implicit_tag (o, z_InternationalString,
37                         &(*p)->abstract, ODR_CONTEXT, 13, 1, "abstract") &&
38                 z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") &&
39                 odr_sequence_end (o);
40 }
41
42 int z_FormatSpec (ODR o, Z_FormatSpec **p, int opt, const char *name)
43 {
44         if (!odr_sequence_begin (o, p, sizeof(**p), name))
45                 return opt && odr_ok (o);
46         return
47                 odr_implicit_tag (o, z_InternationalString,
48                         &(*p)->type, ODR_CONTEXT, 1, 0, "type") &&
49                 odr_implicit_tag (o, odr_integer,
50                         &(*p)->size, ODR_CONTEXT, 2, 1, "size") &&
51                 odr_implicit_tag (o, odr_integer,
52                         &(*p)->bestPosn, ODR_CONTEXT, 3, 1, "bestPosn") &&
53                 odr_sequence_end (o);
54 }