9c35d5196f9e33220024ab5f634216ac7f1660ea
[egate.git] / include / iso2709.h
1 /*
2  * Record management
3  *
4  * Europagate, 1994-1995.
5  *
6  * $Log: iso2709.h,v $
7  * Revision 1.10  1995/03/30 07:32:46  adam
8  * New log-level: GW_LOG_NOTICE. New 2709 function: iso2709_mk.
9  *
10  * Revision 1.9  1995/03/29  11:44:25  adam
11  * New functions: iso2709_a_.. for record manipulation.
12  *
13  * Revision 1.8  1995/03/28  16:06:42  adam
14  * New function: iso2709_out.
15  *
16  * Revision 1.7  1995/03/27  12:50:40  adam
17  * New level: GW_LOG_ERRNO.
18  *
19  * Revision 1.6  1995/03/08  12:36:35  adam
20  * New function: dbc2709_cvt.
21  *
22  * Revision 1.5  1995/02/23  08:32:12  adam
23  * Changed header.
24  *
25  * Revision 1.3  1995/02/10  17:05:14  adam
26  * New function iso2709_display to display MARC records in a
27  * line-by-line format. The iso2709_cvt function no longer
28  * prints the record to stderr.
29  *
30  * Revision 1.2  1995/02/10  16:50:25  adam
31  * Indicator field moved to 'struct iso2709_dir' from 'struct
32  * iso2709_field'.
33  * Function iso2709_rm implemented - to delete a MARC record.
34  *
35  * Revision 1.1.1.1  1995/02/09  17:27:12  adam
36  * Initial version of email gateway under CVS control.
37  *
38  */
39
40 #ifndef ISO2709_H
41 #define ISO2709_H
42
43 typedef struct iso2709_rec *Iso2709Rec;
44 typedef struct iso2709_anchor *Iso2709Anchor;
45
46 char *iso2709_read (FILE *inf);
47 Iso2709Rec iso2709_cvt (const char *buf);
48 Iso2709Rec iso2709_mk (void);
49 void iso2709_rm (Iso2709Rec rec);
50 void iso2709_display (Iso2709Rec rec, FILE *out);
51 int iso2709_out (Iso2709Rec p, char **buf, int size);
52
53 Iso2709Anchor iso2709_a_mk (Iso2709Rec rec);
54 void iso2709_a_rm (Iso2709Anchor anchor);
55 int iso2709_a_first (Iso2709Anchor anchor);
56 int iso2709_a_next_line (Iso2709Anchor anchor);
57 int iso2709_a_next_field (Iso2709Anchor anchor);
58 int iso2709_a_next (Iso2709Anchor anchor);
59 int iso2709_a_info_field (Iso2709Anchor anchor,
60                     char **tag, char **indicator,
61                     char **identifier, char **data);
62 int iso2709_a_info_line (Iso2709Anchor anchor,
63                     char **tag, char **indicator);
64 int iso2709_a_delete_field (Iso2709Anchor anchor);
65 int iso2709_a_delete_line (Iso2709Anchor anchor);
66 int iso2709_a_insert (Iso2709Anchor anchor, 
67                       const char *tag, const char *indicator,
68                       const char *identifier, const char *data);
69 int iso2709_a_search (Iso2709Anchor anchor,
70                       const char *tag_p, const char *indicator_p,
71                       const char *identifier_p);
72 #endif
73