⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 backend.h

📁 harvest是一个下载html网页得机器人
💻 H
字号:
/* * Copyright (c) 1995-2003, 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, * provided that: * * 1. This copyright and permission notice appear in all copies of the * software and its documentation. Notices of copyright or attribution * which appear at the beginning of any file must remain unchanged. * * 2. The name of Index Data or the individual authors may not be used to * endorse or promote products derived from this software without specific * prior written permission. * * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. * * $Id: backend.h,v 1.21 2003/04/24 13:30:32 adam Exp $ */#ifndef BACKEND_H#define BACKEND_H#include <yaz/yconfig.h>#include <yaz/proto.h>YAZ_BEGIN_CDECL    typedef struct request *bend_request;typedef struct association *bend_association;/* extended search handler (rr = request response) */typedef struct {    char *setname;             /* name to give to this set */    int replace_set;           /* replace set, if it already exists */    int num_bases;             /* number of databases in list */    char **basenames;          /* databases to search */    Z_ReferenceId *referenceId;/* reference ID */    Z_Query *query;            /* query structure */    ODR stream;                /* encode stream */    ODR decode;                /* decode stream */    ODR print;                 /* print stream */    bend_request request;    bend_association association;    int *fd;    int hits;                  /* number of hits */    int errcode;               /* 0==OK */    char *errstring;           /* system error string or NULL */    Z_OtherInformation *search_info; /* additional search info */} bend_search_rr;/* extended present handler. Does not replace bend_fetch. */typedef struct {    char *setname;             /* set name */    int start;    int number;                /* record number */    oid_value format;          /* One of the CLASS_RECSYN members */    Z_ReferenceId *referenceId;/* reference ID */    Z_RecordComposition *comp; /* Formatting instructions */    ODR stream;                /* encoding stream - memory source if required */    ODR print;                 /* printing stream */    bend_request request;    bend_association association;    int hits;                  /* number of hits */    int errcode;               /* 0==OK */    char *errstring;           /* system error string or NULL */} bend_present_rr;typedef struct bend_fetch_rr {    char *setname;             /* set name */    int number;                /* record number */    Z_ReferenceId *referenceId;/* reference ID */    oid_value request_format;  /* One of the CLASS_RECSYN members */    int *request_format_raw;   /* same as above (raw OID) */    Z_RecordComposition *comp; /* Formatting instructions */    ODR stream;                /* encoding stream - memory source if req */    ODR print;                 /* printing stream */    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 output_format;   /* format */    int *output_format_raw;    /* used instead of above if not-null */    int errcode;               /* 0==success */    char *errstring;           /* system error string or NULL */    int surrogate_flag;        /* surrogate diagnostic */    char *schema;              /* string record schema input/output */} bend_fetch_rr;struct scan_entry {    char *term;         /* the returned scan term */    int occurrences;    /* no of occurrences or -1 if error (see below) */    int errcode;        /* Bib-1 diagnostic code; only used when occur.= -1 */    char *errstring;    /* Additional string */    char *display_term;};typedef enum {    BEND_SCAN_SUCCESS,  /* ok */    BEND_SCAN_PARTIAL   /* not all entries could be found */} bend_scan_status;typedef struct bend_scan_rr {    int num_bases;      /* number of elements in databaselist */    char **basenames;   /* databases to search */    oid_value attributeset;    Z_ReferenceId *referenceId; /* reference ID */    Z_AttributesPlusTerm *term;    ODR stream;         /* encoding stream - memory source if required */    ODR print;          /* printing stream */    int *step_size;     /* step size */    int term_position;  /* desired index of term in result list/returned */    int num_entries;    /* number of entries requested/returned */    /* scan term entries. The called handler does not have       to allocate this. Size of entries is num_entries (see above) */    struct scan_entry *entries;    bend_scan_status status;    int errcode;    char *errstring;} bend_scan_rr;/* delete handler */typedef struct bend_delete_rr {    int function;    int num_setnames;    char **setnames;    Z_ReferenceId *referenceId;    int delete_status;      /* status for the whole operation */    int *statuses;          /* status each set - indexed as setnames */    ODR stream;    ODR print; } bend_delete_rr;/* sort handler */typedef struct bend_sort_rr{    int num_input_setnames;    char **input_setnames;    char *output_setname;    Z_SortKeySpecList *sort_sequence;    ODR stream;    ODR print;    Z_ReferenceId *referenceId;/* reference ID */    int sort_status;    int errcode;    char *errstring;} bend_sort_rr;typedef struct bend_esrequest_rr{    int ItemNo;    Z_ExtendedServicesRequest *esr;        ODR stream;                /* encoding stream */    ODR decode;                /* decoding stream */    ODR print;                 /* printing stream */    Z_ReferenceId *referenceId;/* reference ID */    bend_request request;    bend_association association;    int errcode;               /* 0==success, -1==accepted, >0 = failure */    char *errstring;           /* system error string or NULL */    Z_TaskPackage *taskPackage;} bend_esrequest_rr;typedef struct bend_segment_rr {    Z_Segment *segment;    ODR stream;    ODR decode;    ODR print;    bend_request request;    bend_association association;} bend_segment_rr;typedef struct {    ODR stream;    ODR decode;    ODR print;    char *explain_buf;} bend_explain_rr;typedef struct bend_initrequest{    Z_IdAuthentication *auth;    ODR stream;                /* encoding stream */    ODR print;                 /* printing stream */    Z_ReferenceId *referenceId;/* reference ID */    char *peer_name;           /* dns host of peer (client) */        char *implementation_id;    char *implementation_name;    char *implementation_version;    int (*bend_sort) (void *handle, bend_sort_rr *rr);    int (*bend_search) (void *handle, bend_search_rr *rr);    int (*bend_fetch) (void *handle, bend_fetch_rr *rr);    int (*bend_present) (void *handle, bend_present_rr *rr);    int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr);    int (*bend_delete)(void *handle, bend_delete_rr *rr);    int (*bend_scan)(void *handle, bend_scan_rr *rr);    int (*bend_segment)(void *handle, bend_segment_rr *rr);    ODR decode;                 /* decoding stream */    /* character set and language negotiation - see include/yaz/z-charneg.h */    Z_CharSetandLanguageNegotiation *charneg_request;    Z_External *charneg_response;    int (*bend_explain)(void *handle, bend_explain_rr *rr);} 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;YAZ_EXPORT void bend_request_send (bend_association a, bend_request req,				   Z_APDU *res);YAZ_EXPORT bend_request bend_request_mk (bend_association a);YAZ_EXPORT void bend_request_destroy (bend_request *req);YAZ_EXPORT Z_ReferenceId *bend_request_getid (ODR odr, bend_request req);YAZ_EXPORT int bend_backend_respond (bend_association a, bend_request req);YAZ_EXPORT void bend_request_setdata(bend_request r, void *p);YAZ_EXPORT void *bend_request_getdata(bend_request r);typedef struct statserv_options_block{    int dynamic;                  /* fork on incoming requests */    int threads;                  /* use threads */    int one_shot;                 /* one session then exit(1) */    int loglevel;                 /* desired logging-level */    char apdufile[ODR_MAXNAME+1]; /* file for pretty-printed PDUs */    char logfile[ODR_MAXNAME+1];  /* file for diagnostic output */    char default_listen[1024];    /* 0 == no default listen */    enum oid_proto default_proto; /* PROTO_SR or PROTO_Z3950 */    int idle_timeout;             /* how many minutes to wait before closing */    int maxrecordsize;            /* maximum value for negotiation */    char configname[ODR_MAXNAME+1];  /* given to the backend in bend_init */    char setuid[ODR_MAXNAME+1];     /* setuid to this user after binding */    void (*bend_start)(struct statserv_options_block *p);    void (*bend_stop)(struct statserv_options_block *p);    int (*options_func)(int argc, char **argv);    int (*check_ip)(void *cd, const char *addr, int len, int type);    char daemon_name[128];    int inetd;                    /* Do we use the inet deamon or not */    void *handle;                 /* Handle */    bend_initresult *(*bend_init)(bend_initrequest *r);    void (*bend_close)(void *handle);#ifdef WIN32    /* We only have these members for the windows version */    /* They seemed a bit large to have them there in general */    char service_name[128];         /* NT Service Name */    char app_name[128];             /* Application Name */    char service_dependencies[128]; /* The services we are dependent on */    char service_display_name[128]; /* The service display name */#endif /* WIN32 */    struct bend_soap_handler *soap_handlers;} statserv_options_block;YAZ_EXPORT int statserv_main(    int argc, char **argv,    bend_initresult *(*bend_init)(bend_initrequest *r),    void (*bend_close)(void *handle));YAZ_EXPORT int statserv_start(int argc, char **argv);YAZ_EXPORT void statserv_closedown(void);YAZ_EXPORT statserv_options_block *statserv_getcontrol(void);YAZ_EXPORT void statserv_setcontrol(statserv_options_block *block);YAZ_EXPORT int check_ip_tcpd(void *cd, const char *addr, int len, int type);YAZ_END_CDECL#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -