X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fidzebra%2Frecctrl.h;h=c916d75dc4a2776060bbe928e928e777af648877;hb=4f71537a478fc551989245f0dde38997714eedc1;hp=b734dcea94e41e8dad3d88fd6952e2dc2622d9d9;hpb=97a7adeb9e5059463f039495cc01cfa448463a27;p=idzebra-moved-to-github.git diff --git a/include/idzebra/recctrl.h b/include/idzebra/recctrl.h index b734dce..c916d75 100644 --- a/include/idzebra/recctrl.h +++ b/include/idzebra/recctrl.h @@ -1,5 +1,5 @@ /* This file is part of the Zebra server. - Copyright (C) 1995-2008 Index Data + Copyright (C) 1994-2011 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -68,15 +68,15 @@ typedef struct { /** \brief record reader stream */ struct ZebraRecStream { /** client data */ - void *fh; + void *fh; /** \brief read function */ int (*readf)(struct ZebraRecStream *s, char *buf, size_t count); /** \brief seek function */ off_t (*seekf)(struct ZebraRecStream *s, off_t offset); /** \brief tell function */ - off_t (*tellf)(struct ZebraRecStream *s); + off_t (*tellf)(struct ZebraRecStream *s); /** \brief set and get of record position */ - off_t (*endf)(struct ZebraRecStream *s, off_t *offset); + off_t (*endf)(struct ZebraRecStream *s, off_t *offset); /** \brief close and destroy stream */ void (*destroy)(struct ZebraRecStream *s); }; @@ -127,13 +127,20 @@ struct recRetrieveCtrl { int recordSize; /* size of record in bytes */ char *fname; /* name of file (or NULL if internal) */ data1_handle dh; - + /* response */ const Odr_oid * output_format; /* output format OID */ void * rec_buf; int rec_len; int diagnostic; char * addinfo; + + /* special fetch to be included in retrieved response (say snippets) */ + void *handle; + int (*special_fetch)(void *handle, const char *esn, + const Odr_oid *input_format, + const Odr_oid **output_format, + WRBUF result, WRBUF addinfo); }; typedef struct recType *RecType; @@ -197,6 +204,7 @@ YAZ_END_CDECL /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab