Changed header.
[egate.git] / include / zaccess.h
1 /*
2  * Europagate, 1995
3  *
4  * $Log: zaccess.h,v $
5  * Revision 1.9  1995/02/23 08:32:12  adam
6  * Changed header.
7  *
8  * Revision 1.7  1995/02/17  13:59:06  quinn
9  * Added header.
10  *
11  */
12
13 #ifndef ZACCESS_H
14 #define ZACCESS_H
15
16 #define ZASS_DEBUG GW_LOG_DEBUGN(9)
17 #define ZASS_TYPE "zass"
18
19 #define ZASS_ID "EUROPAGATE/DTB/ID"
20 #define ZASS_NAME "EUROPAGATE E-mail/Z39.50 gateway"
21 #define ZASS_VERSION "development 0.1"
22
23 #define ZASS_MAXRECORDSIZE  10000
24 #define ZASS_PREFERREDMESSAGESIZE 10000
25
26 typedef struct zass *ZASS;
27
28 enum present_status
29 {
30     ZASS_PRES_SUCCESS,        /* all records available */
31     ZASS_PRES_PARTIAL_1,      /* subset only 'cause of access control */
32     ZASS_PRES_PARTIAL_2,      /* subset 'cause of max msg size constraints*/
33     ZASS_PRES_PARTIAL_3,      /* subset 'cause of resource control org */
34     ZASS_PRES_PARTIAL_4,      /* subset 'cause of resource control trg */
35     ZASS_PRES_FAILURE         /* check errcode */
36 };
37
38 typedef struct zass_searchent
39 {
40     int num;      /* # hits */
41     int status;   /* status - boolean - qualified by setstatus */
42     enum present_status setstatus; /* consult if status. Value according to Z proto */
43
44     /* These two fields provide info from a diagnostic rec returned with 
45        response */
46     int errcode;           /* bib 1 assumed here. -1 if none provided */
47     char errstring[512];   /* Additional info from diagnostic rec, or "" */
48 } zass_searchent;
49
50 typedef struct zass_record
51 {
52     enum
53     {
54         ZASS_REC_DIAG=0,
55         ZASS_REC_USMARC=10
56     } which;      /* 0 = diagnostic, others according to z3950v3 */
57     char *record;   /* marc or other */
58
59     int errcode;    /* Only valid if which == 0 */
60     char errstring[200];
61
62     struct zass_record *next;
63 } zass_record;
64
65 typedef struct zass_presentent
66 {
67     int num;             /* # of recs returned */
68     int nextpos;         /* next resultset position. 1==first record */
69     enum present_status presentstatus;   /* status of set */
70     struct zass_record *records;
71 } zass_presentent;
72
73 ZASS zass_open(char *host, int port);
74 const struct zass_searchent *zass_search(ZASS a, struct ccl_rpn_node *query,
75     char *resname, char *databases);
76 const struct zass_presentent *zass_present(ZASS a, char *resname, int start,
77     int num);
78
79 #endif