X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fbackend.h;h=603908734dde0fcd08574b034309ef2b1d7e7b86;hb=20928b0dc31d2895dcc926f1c4192abaf25eca36;hp=7d5dcefcf13920a2b8ece70e3e62fbaacf37e03a;hpb=bf4149c63ad2e11429e302a89f472de52b4d7ce8;p=yaz-moved-to-github.git diff --git a/include/backend.h b/include/backend.h index 7d5dcef..6039087 100644 --- a/include/backend.h +++ b/include/backend.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, Index Data. + * Copyright (c) 1995-1998, Index Data. * * Permission to use, copy, modify, distribute, and sell this software and * its documentation, in whole or in part, for any purpose, is hereby granted, @@ -23,6 +23,13 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. * + * $Log: backend.h,v $ + * Revision 1.17 1998-01-29 13:15:35 adam + * Implemented sort for the backend interface. + * + * Revision 1.16 1997/09/17 12:10:31 adam + * YAZ version 1.4. + * */ #ifndef BACKEND_H @@ -36,20 +43,6 @@ extern "C" { #endif -typedef struct bend_initrequest -{ - char *configname; - Z_IdAuthentication *auth; -} bend_initrequest; - -typedef struct bend_initresult -{ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ - void *handle; /* private handle to the backend module */ -} bend_initresult; - -bend_initresult MDF *bend_init(bend_initrequest *r); typedef struct bend_searchrequest { @@ -58,6 +51,7 @@ typedef struct bend_searchrequest int num_bases; /* number of databases in list */ char **basenames; /* databases to search */ Z_Query *query; /* query structure */ + ODR stream; /* encoding stream */ } bend_searchrequest; typedef struct bend_searchresult @@ -67,8 +61,9 @@ typedef struct bend_searchresult 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); +YAZ_EXPORT bend_searchresult *bend_search(void *handle, bend_searchrequest *r, + int *fd); +YAZ_EXPORT bend_searchresult *bend_searchresponse(void *handle); typedef struct bend_fetchrequest { @@ -90,8 +85,9 @@ typedef struct bend_fetchresult 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); +YAZ_EXPORT bend_fetchresult *bend_fetch(void *handle, bend_fetchrequest *r, + int *fd); +YAZ_EXPORT bend_fetchresult *bend_fetchresponse(void *handle); typedef struct bend_scanrequest { @@ -101,28 +97,32 @@ typedef struct bend_scanrequest Z_AttributesPlusTerm *term; int term_position; /* desired index of term in result list */ int num_entries; /* number of entries requested */ + ODR stream; /* encoding stream - memory source if required */ } bend_scanrequest; +struct scan_entry { + char *term; + int occurrences; +}; + +typedef enum { + BEND_SCAN_SUCCESS, /* ok */ + BEND_SCAN_PARTIAL /* not all entries could be found */ +} bend_scan_status; + typedef struct bend_scanresult { int num_entries; - struct scan_entry - { - char *term; - int occurrences; - } *entries; + struct scan_entry *entries; int term_position; - enum - { - BEND_SCAN_SUCCESS, /* ok */ - BEND_SCAN_PARTIAL /* not all entries could be found */ - } status; + bend_scan_status status; int errcode; char *errstring; } bend_scanresult; -bend_scanresult *bend_scan(void *handle, bend_scanrequest *r, int *fd); -bend_scanresult *bend_scanresponse(void *handle); +YAZ_EXPORT bend_scanresult *bend_scan(void *handle, bend_scanrequest *r, + int *fd); +YAZ_EXPORT bend_scanresult *bend_scanresponse(void *handle); typedef struct bend_deleterequest { @@ -135,10 +135,46 @@ typedef struct bend_deleteresult char *errstring; /* system error string or NULL */ } bend_deleteresult; -bend_deleteresult *bend_delete(void *handle, bend_deleterequest *r, int *fd); -bend_deleteresult *bend_deleteresponse(void *handle); +YAZ_EXPORT bend_deleteresult *bend_delete(void *handle, + bend_deleterequest *r, int *fd); +YAZ_EXPORT bend_deleteresult *bend_deleteresponse(void *handle); + +YAZ_EXPORT void bend_close(void *handle); + +typedef struct bend_sortrequest +{ + int num_input_setnames; + char **input_setnames; + char *output_setname; + Z_SortKeySpecList *sort_sequence; + ODR stream; +} bend_sortrequest; + +typedef struct bend_sortresult +{ + int sort_status; + int errcode; + char *errstring; +} bend_sortresult; + +typedef struct bend_initrequest +{ + char *configname; + Z_IdAuthentication *auth; + ODR stream; /* encoding stream */ + + int (*bend_sort) (void *handle, bend_sortrequest *req, + bend_sortresult *res); +} bend_initrequest; + +typedef struct bend_initresult +{ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ + void *handle; /* private handle to the backend module */ +} bend_initresult; -void bend_close(void *handle); +YAZ_EXPORT bend_initresult MDF *bend_init(bend_initrequest *r); #ifdef __cplusplus }