X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz-proxy.h;h=128d3b7c59c13ec77da2d8ffaed8b9b5f93bcb6f;hb=87be6c609c22d9620c781b95ab74298b63694055;hp=8b09c9101306a04841a419634ee5c5ba61bb5909;hpb=cc44793fb69db2885c570cc5de05fda796993bba;p=yazpp-moved-to-github.git diff --git a/include/yaz-proxy.h b/include/yaz-proxy.h index 8b09c91..128d3b7 100644 --- a/include/yaz-proxy.h +++ b/include/yaz-proxy.h @@ -3,48 +3,65 @@ * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * - * $Log: yaz-proxy.h,v $ - * Revision 1.2 1999-02-02 14:01:15 adam - * First WIN32 port of YAZ++. - * - * Revision 1.1.1.1 1999/01/28 09:41:07 adam - * First implementation of YAZ++. - * - * + * $Id: yaz-proxy.h,v 1.11 2000-08-07 14:19:59 adam Exp $ */ -#include +#include +#include class Yaz_Proxy; /// Private class -class YAZ_EXPORT Yaz_ProxyClient : public Yaz_IR_Assoc { +class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc { friend Yaz_Proxy; Yaz_ProxyClient(IYaz_PDU_Observable *the_PDU_Observable); + ~Yaz_ProxyClient(); void recv_Z_PDU(Z_APDU *apdu); IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable); + void shutdown(); Yaz_Proxy *m_server; void failNotify(); -}; - -/// Private class -class YAZ_EXPORT Yaz_ProxyMap { - friend Yaz_Proxy; - char *m_databaseName; /* from database name */ - char *m_ZURL; /* to this address */ - Yaz_ProxyMap *m_next; + void timeoutNotify(); + void connectNotify(); + char m_cookie[32]; + Yaz_ProxyClient *m_next; + Yaz_ProxyClient **m_prev; + int m_init_flag; + Yaz_Z_Query *m_last_query; + int m_last_resultCount; + int m_sr_transform; + int m_seqno; }; /// Information Retrieval Proxy Server. -class YAZ_EXPORT Yaz_Proxy : public Yaz_IR_Assoc { +class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc { + private: + char *get_cookie(Z_OtherInformation **otherInfo); + char *get_proxy(Z_OtherInformation **otherInfo); + Yaz_ProxyClient *get_client(Z_APDU *apdu); + Z_APDU *result_set_optimize(Z_APDU *apdu); + void shutdown(); + + Yaz_ProxyClient *m_client; + IYaz_PDU_Observable *m_PDU_Observable; + Yaz_ProxyClient *m_clientPool; + Yaz_Proxy *m_parent; + int m_seqno; + int m_max_clients; + int m_keepalive; + char *m_proxyTarget; + char *m_APDU_fname; + long m_seed; public: Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable); ~Yaz_Proxy(); void recv_Z_PDU(Z_APDU *apdu); IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable); void failNotify(); - Yaz_ProxyClient *m_client; - IYaz_PDU_Observable *m_PDU_Observable; - private: - Yaz_ProxyMap *m_maps; + void timeoutNotify(); + void connectNotify(); + void set_proxyTarget(const char *target); + char *get_proxyTarget() { return m_proxyTarget; }; + void set_max_clients(int m) { m_max_clients = m; }; }; +