minor
[yazpp-moved-to-github.git] / include / yaz-proxy.h
index 3d051c9..062c926 100644 (file)
@@ -1,9 +1,8 @@
 /*
- * Copyright (c) 1998-1999, Index Data.
+ * Copyright (c) 1998-2000, Index Data.
  * See the file LICENSE for details.
- * Sebastian Hammer, Adam Dickmeiss
  * 
- * $Id: yaz-proxy.h,v 1.8 1999-11-10 10:02:34 adam Exp $
+ * $Id: yaz-proxy.h,v 1.13 2000-09-08 10:23:42 adam Exp $
  */
 
 #include <yaz-z-assoc.h>
@@ -18,9 +17,11 @@ class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc {
     ~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();
     void timeoutNotify();
+    void connectNotify();
     char m_cookie[32];
     Yaz_ProxyClient *m_next;
     Yaz_ProxyClient **m_prev;
@@ -28,30 +29,38 @@ class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc {
     Yaz_Z_Query *m_last_query;
     int m_last_resultCount;
     int m_sr_transform;
+    int m_seqno;
+    int m_waiting;
 };
 
 /// Information Retrieval Proxy Server.
 class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
- 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();
-    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);
+    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;
+    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();
+    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; };
 };