X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Frecctrl.h;h=a6812ec6c611c19ccaee386381b769ad3b5e29b6;hb=c7700ec8d0d767670b6a3f3a860ba21d9dce8c28;hp=1b646bdd5307c3cc79abf44f22c3fb1887486d40;hpb=e9b33fe049e35d06dfeedb830feea32553d26cee;p=idzebra-moved-to-github.git diff --git a/include/recctrl.h b/include/recctrl.h index 1b646bd..a6812ec 100644 --- a/include/recctrl.h +++ b/include/recctrl.h @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: recctrl.h,v $ - * Revision 1.28 1999-03-02 16:15:42 quinn + * Revision 1.31 1999-09-07 07:19:21 adam + * Work on character mapping. Implemented replace rules. + * + * Revision 1.30 1999/05/21 12:00:17 adam + * Better diagnostics for extraction process. + * + * Revision 1.29 1999/05/20 12:57:18 adam + * Implemented TCL filter. Updated recctrl system. + * + * Revision 1.28 1999/03/02 16:15:42 quinn * Added "tagsysno" and "tagrank" directives to zebra.cfg. * * Revision 1.27 1998/10/16 08:14:28 adam @@ -125,6 +134,7 @@ typedef struct { int length; int *seqnos; ZebraMaps zebra_maps; + struct recExtractCtrl *extractCtrl; } RecWord; /* Extract record control */ @@ -137,11 +147,12 @@ struct recExtractCtrl { off_t offset; /* start offset */ char *subType; void (*init)(struct recExtractCtrl *p, RecWord *w); - void (*addWord)(RecWord *p); + void *clientData; + void (*tokenAdd)(RecWord *w); ZebraMaps zebra_maps; int flagShowRecords; int seqno[256]; - void (*addSchema)(struct recExtractCtrl *p, Odr_oid *oid); + void (*schemaAdd)(struct recExtractCtrl *p, Odr_oid *oid); data1_handle dh; }; @@ -174,21 +185,27 @@ typedef struct recType *RecType; struct recType { - char *name; /* Name of record type */ - void (*init)(RecType recType); /* Init function - called once */ - void (*destroy)(RecType recType); /* Destroy function */ - int (*extract)(struct recExtractCtrl *ctrl); /* Extract proc */ - int (*retrieve)(struct recRetrieveCtrl *ctrl); /* Retrieve proc */ - void *clientData; /* data handle */ + char *name; /* Name of record type */ + void *(*init)(RecType recType); /* Init function - called once */ + void (*destroy)(void *clientData); /* Destroy function */ + int (*extract)(void *clientData, + struct recExtractCtrl *ctrl); /* Extract proc */ + int (*retrieve)(void *clientData, + struct recRetrieveCtrl *ctrl); /* Retrieve proc */ }; +#define RECCTRL_EXTRACT_OK 0 +#define RECCTRL_EXTRACT_EOF 1 +#define RECCTRL_EXTRACT_ERROR 2 + typedef struct recTypes *RecTypes; RecTypes recTypes_init (data1_handle dh); void recTypes_destroy (RecTypes recTypes); void recTypes_default_handlers (RecTypes recTypes); -RecType recType_byName (RecTypes rts, const char *name, char *subType); +RecType recType_byName (RecTypes rts, const char *name, char *subType, + void **clientDataP); int grs_extract_tree(struct recExtractCtrl *p, data1_node *n);