Fixed serious bug regarding timeouts. Improved logging for proxy.
[yazpp-moved-to-github.git] / include / yaz-pdu-assoc.h
index 079a55f..205c7ed 100644 (file)
@@ -3,13 +3,10 @@
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  * 
- * $Log: yaz-pdu-assoc.h,v $
- * Revision 1.1  1999-01-28 09:41:07  adam
- * Initial revision
- *
+ * $Id: yaz-pdu-assoc.h,v 1.7 1999-12-06 13:52:45 adam Exp $
  */
 
-#include <comstack.h>
+#include <yaz/comstack.h>
 #include <yaz-socket-observer.h>
 #include <yaz-pdu-observer.h>
 
@@ -19,9 +16,9 @@
     the method connect. The server role is initiated by using the
     listen method.
  */
-class Yaz_PDU_Assoc : public IYaz_PDU_Observable, IYazSocketObserver {
+class YAZ_EXPORT Yaz_PDU_Assoc : public IYaz_PDU_Observable, IYazSocketObserver {
  private:
-    enum { Connecting, Connected, Listen, Ready, Closed } m_state;
+    enum { Connecting, Listen, Ready, Closed } m_state;
     class PDU_Queue {
     public:
        PDU_Queue(const char *buf, int len);
@@ -41,9 +38,12 @@ class Yaz_PDU_Assoc : public IYaz_PDU_Observable, IYazSocketObserver {
     int m_input_len;
     PDU_Queue *m_queue_out;
     int Yaz_PDU_Assoc::flush_PDU();
+    int *m_destroyed;
+    int m_idleTime;
+    int m_log;
  public:
     /// Create object using specified socketObservable
-    Yaz_PDU_Assoc(IYazSocketObservable *socketObservable, COMSTACK cs);
+    Yaz_PDU_Assoc(IYazSocketObservable *socketObservable);
     /// Close socket and destroy object.
     virtual ~Yaz_PDU_Assoc();
     /// Clone the object
@@ -54,8 +54,16 @@ class Yaz_PDU_Assoc : public IYaz_PDU_Observable, IYazSocketObserver {
     void connect(IYaz_PDU_Observer *observer, const char *addr);
     /// listen for clients (server role)
     void listen(IYaz_PDU_Observer *observer, const char *addr);
+    /// open with existing socket
+    void socket(IYaz_PDU_Observer *observer, int fd);
     /// Socket notification
     void socketNotify(int event);
     /// Close socket
     void close();
+    /// Close and destroy
+    void destroy();
+    /// Set Idle Time
+    void idleTime (int timeout);
+    /// Child start...
+    virtual void childNotify(int fd);
 };