Added Summary. Unfinished work
[yaz-moved-to-github.git] / include / prt-arc.h
1 /*
2  * Copyright (c) 1995,1996 Index Data.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and
5  * its documentation, in whole or in part, for any purpose, is hereby granted,
6  * provided that:
7  *
8  * 1. This copyright and permission notice appear in all copies of the
9  * software and its documentation. Notices of copyright or attribution
10  * which appear at the beginning of any file must remain unchanged.
11  *
12  * 2. The names of Index Data or the individual authors may not be used to
13  * endorse or promote products derived from this software without specific
14  * prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19  * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
20  * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
21  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
22  * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24  * OF THIS SOFTWARE.
25  *
26  */
27
28 #ifndef PRT_ARC_H
29 #define PRT_ARC_H
30
31 /* ------------------- Summary Record --------------------- */
32
33 typedef struct Z_FormatSpec
34 {
35     char *type;
36     int *size;                    /* OPTIONAL */
37     int *bestPosn;                /* OPTIONAL */
38 } Z_FormatSpec;
39
40 typedef struct Z_BriefBib
41 {
42     char *title;
43     char *author;                  /* OPTIONAL */
44     char *callNumber;              /* OPTIONAL */
45     char *recordType;              /* OPTIONAL */
46     char *bibliographicLevel;      /* OPTIONAL */
47     int num_format;
48     Z_FormatSpec **format;         /* OPTIONAL */
49     char *publicationPlace;        /* OPTIONAL */
50     char *publicationDate;         /* OPTIONAL */
51     char *targetSystemKey;         /* OPTIONAL */
52     char *satisfyingElement;       /* OPTIONAL */
53     int *rank;                     /* OPTIONAL */
54     char *documentId;              /* OPTIONAL */
55     char *abstract;                /* OPTIONAL */
56     Z_OtherInformation *otherInfo; /* OPTIONAL */
57 } Z_BriefBib;
58
59 /* ------------------- OPAC Record --------------------- */
60
61 typedef struct Z_CircRecord
62 {
63     bool_t *availableNow;
64     char *availabilityDate;        /* OPTIONAL */
65     char *availableThru;           /* OPTIONAL */
66     char *restrictions;            /* OPTIONAL */
67     char *itemId;                  /* OPTIONAL */
68     bool_t *renewable;
69     bool_t *onHold;
70     char *enumAndChron;            /* OPTIONAL */
71     char *midspine;                /* OPTIONAL */
72     char *temporaryLocation;       /* OPTIONAL */
73 } Z_CircRecord;
74
75 typedef struct Z_Volume
76 {
77     char *enumeration;             /* OPTIONAL */
78     char *chronology;              /* OPTIONAL */
79     char *enumAndChron;            /* OPTIONAL */
80 } Z_Volume;
81
82 typedef struct Z_HoldingsAndCircData
83 {
84     char *typeOfRecord;            /* OPTIONAL */
85     char *encodingLevel;           /* OPTIONAL */
86     char *format;                  /* OPTIONAL */
87     char *receiptAcqStatus;        /* OPTIONAL */
88     char *generalRetention;        /* OPTIONAL */
89     char *completeness;            /* OPTIONAL */
90     char *dateOfReport;            /* OPTIONAL */
91     char *nucCode;                 /* OPTIONAL */
92     char *localLocation;           /* OPTIONAL */
93     char *shelvingLocation;        /* OPTIONAL */
94     char *callNumber;              /* OPTIONAL */
95     char *shelvingData;            /* OPTIONAL */
96     char *copyNumber;              /* OPTIONAL */
97     char *publicNote;              /* OPTIONAL */
98     char *reproductionNote;        /* OPTIONAL */
99     char *termsUseRepro;           /* OPTIONAL */
100     char *enumAndChron;            /* OPTIONAL */
101     int num_volumes;
102     Z_Volume **volumes;            /* OPTIONAL */
103     int num_circulationData;
104     Z_CircRecord **circulationData;/* OPTIONAL */
105 } Z_HoldingsAndCircData;
106
107 typedef struct Z_HoldingsRecord
108 {
109     int which;
110 #define Z_HoldingsRecord_marcHoldingsRecord    0
111 #define Z_HoldingsRecord_holdingsAndCirc       1
112     union
113     {
114         Z_External *marcHoldingsRecord;
115         Z_HoldingsAndCircData *holdingsAndCirc;
116     } u;
117 } Z_HoldingsRecord;
118
119 typedef struct Z_OPACRecord
120 {
121     Z_External *bibliographicRecord;   /* OPTIONAL */
122     int num_holdingsData;
123     Z_HoldingsRecord **holdingsData;   /* OPTIONAL */
124 } Z_OPACRecord;
125
126 int z_BriefBib(ODR o, Z_BriefBib **p, int opt);
127 int z_OPACRecord(ODR o, Z_OPACRecord **p, int opt);
128
129 #endif