00001
00007 #ifndef z_opac_H
00008 #define z_opac_H
00009
00010 #include <yaz/odr.h>
00011 #include <yaz/z-core.h>
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00016 typedef struct Z_OPACRecord Z_OPACRecord;
00017 YAZ_EXPORT int z_OPACRecord (ODR o, Z_OPACRecord **p, int opt, const char *name);
00018
00019 typedef struct Z_HoldingsRecord Z_HoldingsRecord;
00020 YAZ_EXPORT int z_HoldingsRecord (ODR o, Z_HoldingsRecord **p, int opt, const char *name);
00021
00022 typedef struct Z_HoldingsAndCircData Z_HoldingsAndCircData;
00023 YAZ_EXPORT int z_HoldingsAndCircData (ODR o, Z_HoldingsAndCircData **p, int opt, const char *name);
00024
00025 typedef struct Z_Volume Z_Volume;
00026 YAZ_EXPORT int z_Volume (ODR o, Z_Volume **p, int opt, const char *name);
00027
00028 typedef struct Z_CircRecord Z_CircRecord;
00029 YAZ_EXPORT int z_CircRecord (ODR o, Z_CircRecord **p, int opt, const char *name);
00030 #ifdef __cplusplus
00031 }
00032 #endif
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036 struct Z_OPACRecord {
00037 Z_External *bibliographicRecord;
00038 int num_holdingsData;
00039 Z_HoldingsRecord **holdingsData;
00040 };
00041
00042 struct Z_HoldingsRecord {
00043 int which;
00044 union {
00045 Z_External *marcHoldingsRecord;
00046 Z_HoldingsAndCircData *holdingsAndCirc;
00047 #define Z_HoldingsRecord_marcHoldingsRecord 1
00048 #define Z_HoldingsRecord_holdingsAndCirc 2
00049 } u;
00050 };
00051
00052 struct Z_HoldingsAndCircData {
00053 Z_InternationalString *typeOfRecord;
00054 Z_InternationalString *encodingLevel;
00055 Z_InternationalString *format;
00056 Z_InternationalString *receiptAcqStatus;
00057 Z_InternationalString *generalRetention;
00058 Z_InternationalString *completeness;
00059 Z_InternationalString *dateOfReport;
00060 Z_InternationalString *nucCode;
00061 Z_InternationalString *localLocation;
00062 Z_InternationalString *shelvingLocation;
00063 Z_InternationalString *callNumber;
00064 Z_InternationalString *shelvingData;
00065 Z_InternationalString *copyNumber;
00066 Z_InternationalString *publicNote;
00067 Z_InternationalString *reproductionNote;
00068 Z_InternationalString *termsUseRepro;
00069 Z_InternationalString *enumAndChron;
00070 int num_volumes;
00071 Z_Volume **volumes;
00072 int num_circulationData;
00073 Z_CircRecord **circulationData;
00074 };
00075
00076 struct Z_Volume {
00077 Z_InternationalString *enumeration;
00078 Z_InternationalString *chronology;
00079 Z_InternationalString *enumAndChron;
00080 };
00081
00082 struct Z_CircRecord {
00083 bool_t *availableNow;
00084 Z_InternationalString *availablityDate;
00085 Z_InternationalString *availableThru;
00086 Z_InternationalString *restrictions;
00087 Z_InternationalString *itemId;
00088 bool_t *renewable;
00089 bool_t *onHold;
00090 Z_InternationalString *enumAndChron;
00091 Z_InternationalString *midspine;
00092 Z_InternationalString *temporaryLocation;
00093 };
00094
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098 #endif