Work on proxy.
[yazpp-moved-to-github.git] / include / yaz-proxy.h
index 86ae642..3d051c9 100644 (file)
@@ -3,10 +3,11 @@
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  * 
- * $Id: yaz-proxy.h,v 1.4 1999-04-20 10:30:05 adam Exp $
+ * $Id: yaz-proxy.h,v 1.8 1999-11-10 10:02:34 adam Exp $
  */
 
 #include <yaz-z-assoc.h>
+#include <yaz-z-query.h>
 
 class Yaz_Proxy;
 
@@ -14,12 +15,19 @@ class Yaz_Proxy;
 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);
     Yaz_Proxy *m_server;
     void failNotify();
-    char *m_cookie;
+    void timeoutNotify();
+    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;
 };
 
 /// Information Retrieval Proxy Server.
@@ -30,10 +38,20 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
     void recv_Z_PDU(Z_APDU *apdu);
     IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable);
     void failNotify();
+    void timeoutNotify();
+    void proxyTarget(const char *target);
  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);
     
     Yaz_ProxyClient *m_client;
     IYaz_PDU_Observable *m_PDU_Observable;
+    Yaz_ProxyClient *m_clientPool;
+    Yaz_Proxy *m_parent;
+    int m_seqno;
+    int m_keepalive;
+    char *m_proxyTarget;
 };
+