util/dispatch/I_ConnectionsHandler.h

Go to the documentation of this file.
00001 /*------------------------------------------------------------------------------
00002 Name:      I_ConnectionsHandler.h
00003 Project:   xmlBlaster.org
00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
00005 Comment:   Extended Interface to org::xmlBlaster::client::protocol::I_XmlBlasterConnections for ConnectionHandler
00006 ------------------------------------------------------------------------------*/
00007 
00014 #ifndef _UTIL_DISPATCH_ICONNECTIONSHANDLER_H
00015 #define _UTIL_DISPATCH_ICONNECTIONSHANDLER_H
00016 
00017 #include <util/xmlBlasterDef.h>
00018 #include <client/protocol/I_XmlBlasterConnection.h>
00019 
00020 // circular dependency I_ConnectionsHandler -> org::xmlBlaster::util::queue::I_Queue -> org::xmlBlaster::util::queue::MsgQueueEntry
00021 #ifndef _UTIL_QUEUE_I_QUEUE_H
00022 namespace org { namespace xmlBlaster { namespace util { namespace queue {
00023 class I_Queue;
00024 }}}}
00025 #endif
00026 
00027 namespace org { namespace xmlBlaster { namespace util { namespace dispatch {
00028 
00029 enum States {START, ALIVE, POLLING, DEAD, END};
00030 
00031 class Dll_Export I_ConnectionsHandler : public org::xmlBlaster::client::protocol::I_XmlBlasterConnection
00032 {
00033 public:
00034    virtual ~I_ConnectionsHandler() {}
00035 
00041    virtual long flushQueue() = 0;
00042 
00046    virtual org::xmlBlaster::util::queue::I_Queue* getQueue() = 0;
00047 
00052    virtual bool isFailsafe() const = 0;
00053 
00054    virtual bool isConnected() const = 0;
00055 
00056    virtual org::xmlBlaster::util::qos::ConnectReturnQosRef connectRaw(const org::xmlBlaster::util::qos::ConnectQosRef& connectQos) = 0;
00057 
00058    virtual org::xmlBlaster::client::protocol::I_XmlBlasterConnection& getConnection() const = 0;
00059 
00060    virtual org::xmlBlaster::util::qos::ConnectReturnQosRef getConnectReturnQos() = 0;
00061 
00062    virtual org::xmlBlaster::util::qos::ConnectQosRef getConnectQos() = 0;
00063 
00064 };
00065 
00066 
00067 }}}} // namespaces
00068 
00069 #endif