X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fbackend.h;h=2c45752914701488cd1a49d803c6b50ad88ac7e8;hp=78d670afb0cbd4eaa0c3d55afc5c765fa7fee866;hb=a3fb25600e5a7366e761b46c419462080fc13f73;hpb=d4081206ab9bd0ed0c97c032d264ad1e1d4a051e diff --git a/include/backend.h b/include/backend.h index 78d670a..2c45752 100644 --- a/include/backend.h +++ b/include/backend.h @@ -28,6 +28,7 @@ #ifndef BACKEND_H #define BACKEND_H +#include #include #include @@ -44,6 +45,8 @@ typedef struct bend_initresult void *handle; /* private handle to the backend module */ } bend_initresult; +bend_initresult MDF *bend_init(bend_initrequest *r); + typedef struct bend_searchrequest { char *setname; /* name to give to this set */ @@ -53,6 +56,39 @@ typedef struct bend_searchrequest Z_Query *query; /* query structure */ } bend_searchrequest; +typedef struct bend_searchresult +{ + int hits; /* number of hits */ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ +} bend_searchresult; + +bend_searchresult *bend_search(void *handle, bend_searchrequest *r, int *fd); +bend_searchresult *bend_searchresponse(void *handle); + +typedef struct bend_fetchrequest +{ + char *setname; /* set name */ + int number; /* record number */ + oid_value format; /* One of the CLASS_RECSYN members */ + Z_RecordComposition *comp; /* Formatting instructions */ + ODR stream; /* encoding stream - memory source if required */ +} bend_fetchrequest; + +typedef struct bend_fetchresult +{ + char *basename; /* name of database that provided record */ + int len; /* length of record or -1 if structured */ + char *record; /* record */ + int last_in_set; /* is it? */ + oid_value format; /* format */ + int errcode; /* 0==success */ + char *errstring; /* system error string or NULL */ +} bend_fetchresult; + +bend_fetchresult *bend_fetch(void *handle, bend_fetchrequest *r, int *fd); +bend_fetchresult *bend_fetchresponse(void *handle); + typedef struct bend_scanrequest { int num_bases; /* number of elements in databaselist */ @@ -80,28 +116,8 @@ typedef struct bend_scanresult char *errstring; } bend_scanresult; -typedef struct bend_searchresult -{ - int hits; /* number of hits */ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ -} bend_searchresult; - -typedef struct bend_fetchrequest -{ - char *setname; /* set name */ - int number; /* record number */ -} bend_fetchrequest; - -typedef struct bend_fetchresult -{ - char *basename; /* name of database that provided record */ - int len; /* length of record */ - char *record; /* record */ - int last_in_set; /* is it? */ - int errcode; /* 0==success */ - char *errstring; /* system error string or NULL */ -} bend_fetchresult; +bend_scanresult *bend_scan(void *handle, bend_scanrequest *r, int *fd); +bend_scanresult *bend_scanresponse(void *handle); typedef struct bend_deleterequest { @@ -114,17 +130,6 @@ typedef struct bend_deleteresult char *errstring; /* system error string or NULL */ } bend_deleteresult; -bend_initresult *bend_init(bend_initrequest *r); - -bend_searchresult *bend_search(void *handle, bend_searchrequest *r, int *fd); -bend_searchresult *bend_searchresponse(void *handle); - -bend_fetchresult *bend_fetch(void *handle, bend_fetchrequest *r, int *fd); -bend_fetchresult *bend_fetchresponse(void *handle); - -bend_scanresult *bend_scan(void *handle, bend_scanrequest *r, int *fd); -bend_scanresult *bend_scanresponse(void *handle); - bend_deleteresult *bend_delete(void *handle, bend_deleterequest *r, int *fd); bend_deleteresult *bend_deleteresponse(void *handle);