00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _Connector_
00022 #define _Connector_
00023
00024
00025 #include "qpid/framing/InputHandler.h"
00026 #include "qpid/framing/OutputHandler.h"
00027 #include "qpid/framing/InitiationHandler.h"
00028 #include "qpid/framing/ProtocolInitiation.h"
00029 #include "qpid/framing/ProtocolVersion.h"
00030 #include "qpid/sys/ShutdownHandler.h"
00031 #include "qpid/sys/TimeoutHandler.h"
00032 #include "qpid/sys/Thread.h"
00033 #include "qpid/sys/Runnable.h"
00034 #include "qpid/sys/Mutex.h"
00035 #include "qpid/sys/Socket.h"
00036 #include "qpid/sys/Time.h"
00037
00038 #include <queue>
00039 #include <boost/weak_ptr.hpp>
00040 #include <boost/shared_ptr.hpp>
00041
00042 namespace qpid {
00043 namespace client {
00044
00045 class ConnectionSettings;
00046 class ConnectionImpl;
00047
00049 class Connector : public framing::OutputHandler
00050 {
00051 public:
00052
00053 typedef Connector* Factory(framing::ProtocolVersion, const ConnectionSettings&, ConnectionImpl*);
00054 static Connector* create(const std::string& proto, framing::ProtocolVersion, const ConnectionSettings&, ConnectionImpl*);
00055 static void registerFactory(const std::string& proto, Factory* connectorFactory);
00056
00057 virtual ~Connector() {};
00058 virtual void connect(const std::string& host, int port) = 0;
00059 virtual void init() {};
00060 virtual void close() = 0;
00061 virtual void send(framing::AMQFrame& frame) = 0;
00062
00063 virtual void setInputHandler(framing::InputHandler* handler) = 0;
00064 virtual void setShutdownHandler(sys::ShutdownHandler* handler) = 0;
00065 virtual sys::ShutdownHandler* getShutdownHandler() const = 0;
00066 virtual framing::OutputHandler* getOutputHandler() = 0;
00067 virtual const std::string& getIdentifier() const = 0;
00068 };
00069
00070 }}
00071
00072
00073 #endif