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