/*
- * Copyright (c) 1998-1999, Index Data.
+ * Copyright (c) 1998-2000, Index Data.
* See the file LICENSE for details.
- * Sebastian Hammer, Adam Dickmeiss
*
- * $Log: yaz-pdu-assoc.h,v $
- * Revision 1.4 1999-03-23 14:17:57 adam
- * More work on timeout handling. Work on yaz-client.
- *
- * Revision 1.3 1999/02/02 14:01:13 adam
- * First WIN32 port of YAZ++.
- *
- * Revision 1.2 1999/01/28 13:08:40 adam
- * Yaz_PDU_Assoc better encapsulated. Memory leak fix in
- * yaz-socket-manager.cc.
- *
- * Revision 1.1.1.1 1999/01/28 09:41:07 adam
- * First implementation of YAZ++.
- *
+ * $Id: yaz-pdu-assoc.h,v 1.11 2000-09-12 16:40:33 heikki Exp $
*/
-#include <comstack.h>
+#ifndef YAZ_PDU_ASSOC_INCLUDED
+#define YAZ_PDU_ASSOC_INCLUDED
+
+#include <yaz/comstack.h>
#include <yaz-socket-observer.h>
#include <yaz-pdu-observer.h>
*/
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);
Yaz_PDU_Assoc *m_parent;
Yaz_PDU_Assoc *m_children;
Yaz_PDU_Assoc *m_next;
- COMSTACK Yaz_PDU_Assoc::comstack();
COMSTACK m_cs;
IYazSocketObservable *m_socketObservable;
IYaz_PDU_Observer *m_PDU_Observer;
int Yaz_PDU_Assoc::flush_PDU();
int *m_destroyed;
int m_idleTime;
+ int m_log;
public:
+ COMSTACK comstack();
/// 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();
+ /// virtual ~Yaz_PDU_Assoc();
/// Clone the object
IYaz_PDU_Observable *clone();
/// Send PDU
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 destroy();
/// Set Idle Time
void idleTime (int timeout);
+ /// Child start...
+ virtual void childNotify(int fd);
};
+
+#endif
\ No newline at end of file