8d05c424f07df4da67f148deab7f16d9ac34c876
[egate.git] / include / iso2709p.h
1 /*
2  * Record management
3  *
4  * Europagate, 1994-1995.
5  *
6  * $Log: iso2709p.h,v $
7  * Revision 1.8  1995/03/30 14:22:11  adam
8  * New MARC anchor functions.
9  *
10  * Revision 1.7  1995/03/29  11:44:25  adam
11  * New functions: iso2709_a_.. for record manipulation.
12  *
13  * Revision 1.6  1995/03/08  12:36:36  adam
14  * New function: dbc2709_cvt.
15  *
16  * Revision 1.5  1995/02/23  08:32:12  adam
17  * Changed header.
18  *
19  * Revision 1.3  1995/02/15  17:43:08  adam
20  * Minor changes to the ccl interface. Bug fix in iso2709 module.
21  *
22  * Revision 1.2  1995/02/10  16:50:26  adam
23  * Indicator field moved to 'struct iso2709_dir' from 'struct
24  * iso2709_field'.
25  * Function iso2709_rm implemented - to delete a MARC record.
26  *
27  * Revision 1.1.1.1  1995/02/09  17:27:12  adam
28  * Initial version of email gateway under CVS control.
29  *
30  */
31
32 #ifndef ISO2709P_H
33 #define ISO2709P_H
34
35 #include <iso2709.h>
36
37 struct iso2709_anchor {
38     struct iso2709_field **f0;
39     struct iso2709_dir   **d0;
40     Iso2709Rec           rec;
41 };
42
43 struct iso2709_field {
44     char identifier[4];
45     char *data;
46     struct iso2709_field *next;
47 };
48
49 struct iso2709_dir {
50     char tag[4];
51     int  length;
52     int  offset;
53     char *indicator;
54     struct iso2709_dir *next;
55     struct iso2709_field *fields;
56 };
57
58 struct iso2709_rec {
59     int  record_length;
60     char record_status[2];
61     char implementation_codes[5];
62     int  indicator_length;
63     int  identifier_length;
64     int  base_address;
65     char user_systems[4];
66
67     int  length_data_entry;
68     int  length_starting;
69     int  length_implementation;
70     char future_use[2];
71
72     struct iso2709_dir *directory;
73 };
74
75 /* IS3: */
76 #define ISO2709_RS 035
77 /* IS2: */
78 #define ISO2709_FS 036
79 /* IS1: */
80 #define ISO2709_IDFS 037
81
82
83 #endif