X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz-ir-assoc.h;h=bd1ea66a6ebb7584550881c11c7ed338e398cec6;hb=35cfa3b3d2c9b8adb8c4bfd4c95620929e35466b;hp=e615c0adab6255ebeeb6bf5a4d6f19808010e129;hpb=bf377ba45c8c1cbcf843fdecc6d5c68fda6bad18;p=yazpp-moved-to-github.git diff --git a/include/yaz-ir-assoc.h b/include/yaz-ir-assoc.h index e615c0a..bd1ea66 100644 --- a/include/yaz-ir-assoc.h +++ b/include/yaz-ir-assoc.h @@ -1,52 +1,78 @@ /* - * Copyright (c) 1998-1999, Index Data. + * Copyright (c) 1998-2000, Index Data. * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss * - * $Log: yaz-ir-assoc.h,v $ - * Revision 1.1 1999-01-28 09:41:07 adam - * Initial revision - * + * $Id: yaz-ir-assoc.h,v 1.11 2000-09-08 10:23:42 adam Exp $ */ - -#include -#include -#include +#include +#include /** Information Retrieval Assocation. This object implements the client - and server role of a generic Z39.50 Association. - */ -class Yaz_IR_Assoc : public IYaz_PDU_Observer { +*/ +class YAZ_EXPORT Yaz_IR_Assoc: public Yaz_Z_Assoc { public: /// Create object using the PDU Observer specified Yaz_IR_Assoc(IYaz_PDU_Observable *the_PDU_Observable); /// Destroy assocation and close PDU Observer virtual ~Yaz_IR_Assoc(); - /// Receive PDU - void recv_PDU(const char *buf, int len); - /// Connect notification - void connectNotify(); - /// Failure notification - void failNotify(); - /// Begin Z39.50 client role - void client(const char *addr); - /// Begin Z39.50 server role - void server(const char *addr); - /// Decode Z39.50 PDU. - Z_APDU *decode_Z_PDU(const char *buf, int len); - /// Encode Z39.50 PDU. - int encode_Z_PDU(Z_APDU *apdu, char **buf, int *len); - /// Send Z39.50 PDU - int send_Z_PDU(Z_APDU *apdu); /// Receive Z39.50 PDU - virtual void recv_Z_PDU (Z_APDU *apdu) = 0; - /// Create Z39.50 with reasonable defaults - Z_APDU *create_Z_PDU(int type); + void recv_Z_PDU(Z_APDU *apdu); + /// Set Database Names + void set_databaseNames (int num, const char **list); + void set_databaseNames(const char *dblist, const char *sep); + /// Get Database Names + void get_databaseNames (int *num, char ***list); + + void client(const char *addr); + + /// Set Preferred Record Syntax + void set_preferredRecordSyntax (int value); + void set_preferredRecordSyntax (const char *syntax); + /// Get Preferred Record Syntax + void get_preferredRecordSyntax (int *val); + void get_preferredRecordSyntax (const char **syntax); + + /// Set ElementSetName + void set_elementSetName (const char *elementSetName); + /// Get ElementSetName + void get_elementSetName (const char **elementSetName); + void get_elementSetName (Z_ElementSetNames **elementSetNames); + + int get_lastReceived(); + void set_lastReceived(int lastReceived); + + /// Settings + void set_proxy(const char *str); + const char *get_proxy(); + const char *get_host(); + + void set_cookie(const char *str); + const char *get_cookie(); + + /// Send Services + int send_initRequest(char* pRefId=NULL); + int send_searchRequest(Yaz_Z_Query *query, char* pResultSetId = NULL, char* pRefId = NULL); + int send_presentRequest(int start, int number, char* pResultSetId = NULL, char* pRefId = NULL); + int send_deleteResultSetRequest(char* pResultSetId = 0, char* pRefId = 0); + + /// Recv Services + virtual void recv_initRequest(Z_InitRequest *initRequest); + virtual void recv_initResponse(Z_InitResponse *initResponse); + virtual void recv_searchRequest(Z_SearchRequest *searchRequest); + virtual void recv_presentRequest(Z_PresentRequest *presentRequest); + virtual void recv_searchResponse(Z_SearchResponse *searchResponse); + virtual void recv_presentResponse(Z_PresentResponse *presentResponse); private: - IYaz_PDU_Observable *m_PDU_Observable; - ODR m_odr_in; - ODR m_odr_out; - ODR m_odr_print; + char *m_proxy; + char *m_host; + char *m_cookie; + int m_num_databaseNames; + char **m_databaseNames; + int m_preferredRecordSyntax; + Z_ElementSetNames *m_elementSetNames; + int m_lastReceived; + int m_log; };