X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz-ir-assoc.h;h=c1fd26d2907d45c53ddf9dd5b36c3d0c0f4fe40a;hb=26b3f7f15abcb69aaf00fb6bdaf410ff3e7de14c;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..c1fd26d 100644 --- a/include/yaz-ir-assoc.h +++ b/include/yaz-ir-assoc.h @@ -3,50 +3,75 @@ * 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.8 1999-12-06 13:52:45 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(); + int send_searchRequest(Yaz_Z_Query *query); + int send_presentRequest(int start, int number); + /// 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; };