00001 #ifndef QPID_CLIENT_CONNECTION_H
00002 #define QPID_CLIENT_CONNECTION_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <map>
00025 #include <string>
00026 #include "qpid/client/Session.h"
00027 #include "qpid/client/ClientImportExport.h"
00028
00029 namespace qpid {
00030
00031 struct Url;
00032
00033 namespace client {
00034
00035 struct ConnectionSettings;
00036 class ConnectionImpl;
00037
00046 class Connection
00047 {
00048 framing::ProtocolVersion version;
00049
00050 boost::function<void ()> failureCallback;
00051
00052
00053 protected:
00054 boost::shared_ptr<ConnectionImpl> impl;
00055
00056
00057 public:
00062 QPID_CLIENT_EXTERN Connection();
00063
00064 QPID_CLIENT_EXTERN ~Connection();
00065
00083 QPID_CLIENT_EXTERN void open(const std::string& host, int port = 5672,
00084 const std::string& uid = "guest",
00085 const std::string& pwd = "guest",
00086 const std::string& virtualhost = "/", uint16_t maxFrameSize=65535);
00087
00105 QPID_CLIENT_EXTERN void open(const Url& url,
00106 const std::string& uid = "guest",
00107 const std::string& pwd = "guest",
00108 const std::string& virtualhost = "/", uint16_t maxFrameSize=65535);
00109
00120 QPID_CLIENT_EXTERN void open(const Url& url, const ConnectionSettings& settings);
00121
00127 QPID_CLIENT_EXTERN void open(const ConnectionSettings& settings);
00128
00135 QPID_CLIENT_EXTERN void close();
00136
00178 QPID_CLIENT_EXTERN Session newSession(const std::string& name=std::string(), uint32_t timeoutSeconds = 0);
00179
00184 QPID_CLIENT_EXTERN void resume(Session& session);
00185
00186 QPID_CLIENT_EXTERN bool isOpen() const;
00187
00188 QPID_CLIENT_EXTERN std::vector<Url> getKnownBrokers();
00189 QPID_CLIENT_EXTERN void registerFailureCallback ( boost::function<void ()> fn );
00190
00194 QPID_CLIENT_EXTERN const ConnectionSettings& getNegotiatedSettings();
00195
00196 friend class ConnectionAccess;
00197 friend class SessionBase_0_10;
00198 };
00199
00200 }}
00201
00202
00203 #endif