X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Frecctrl.h;h=722bbf720befc8bc36a4ef00b53a572d53089537;hb=5b886a7358c16434d5c9f5f0d4af2f6e2e5d5c73;hp=2fbeaae91f7631347f77c1b3fed1cf86bb4ef095;hpb=a84a0e3f9c33484b80679f5f4535a8fdee9995e5;p=idzebra-moved-to-github.git diff --git a/include/recctrl.h b/include/recctrl.h index 2fbeaae..722bbf7 100644 --- a/include/recctrl.h +++ b/include/recctrl.h @@ -1,10 +1,39 @@ /* - * Copyright (C) 1994-1995, Index Data I/S + * Copyright (C) 1994-1997, Index Data I/S * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * * $Log: recctrl.h,v $ - * Revision 1.15 1996-06-06 12:08:16 quinn + * Revision 1.22 1997-10-27 14:33:04 adam + * Moved towards generic character mapping depending on "structure" + * field in abstract syntax file. Fixed a few memory leaks. Fixed + * bug with negative integers when doing searches with relational + * operators. + * + * Revision 1.21 1997/09/18 08:59:19 adam + * Extra generic handle for the character mapping routines. + * + * Revision 1.20 1997/09/17 12:19:10 adam + * Zebra version corresponds to YAZ version 1.4. + * Changed Zebra server so that it doesn't depend on global common_resource. + * + * Revision 1.19 1997/09/05 15:30:02 adam + * Changed prototype for chr_map_input - added const. + * Added support for C++, headers uses extern "C" for public definitions. + * + * Revision 1.18 1997/09/04 13:56:15 adam + * Added new filter grs.marc. where refers to + * abstract syntax. New method tellf in extract/retrieve control + * block. + * + * Revision 1.17 1997/04/30 08:56:04 quinn + * null + * + * Revision 1.16 1996/10/11 10:56:25 adam + * New module recctrl. Used to manage records (extract/retrieval). + * All record types are accessed by means of definitions in recctrl.h. + * + * Revision 1.15 1996/06/06 12:08:16 quinn * Added showRecord Group entry * * Revision 1.14 1996/05/09 07:28:49 quinn @@ -61,20 +90,20 @@ #include #include #include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + /* single word entity */ typedef struct { int attrSet; int attrUse; - enum { - Word_String, - Word_Phrase, - Word_Numeric - } which; - union { - char *string; - int numeric; - } u; + unsigned reg_type; + char *string; int seqno; } RecWord; @@ -83,12 +112,15 @@ struct recExtractCtrl { void *fh; /* File handle and read function */ int (*readf)(void *fh, char *buf, size_t count); off_t (*seekf)(void *fh, off_t offset); /* seek function */ + off_t (*tellf)(void *fh); /* tell function */ void (*endf)(void *fh, off_t offset); /* end of record position */ off_t offset; /* start offset */ char *subType; - struct recordGroup *group; void (*init)(RecWord *p); void (*add)(const RecWord *p); + ZebraMaps zebra_maps; + int flagShowRecords; + data1_handle dh; }; /* Retrieve record control */ @@ -98,11 +130,13 @@ struct recRetrieveCtrl { void *fh; /* File descriptor and read function */ int (*readf)(void *fh, char *buf, size_t count); off_t (*seekf)(void *fh, off_t offset); + off_t (*tellf)(void *fh); oid_value input_format; /* Preferred record syntax */ Z_RecordComposition *comp; /* formatting instructions */ int localno; /* local id of record */ int score; /* score 0-1000 or -1 if none */ char *subType; + data1_handle dh; /* response */ oid_value output_format; @@ -122,4 +156,8 @@ typedef struct recType RecType recType_byName (const char *name, char *subType); +#ifdef __cplusplus +} +#endif + #endif