You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by cl...@apache.org on 2016/05/04 01:24:42 UTC

qpid-proton git commit: PROTON-1138: connection host becomes virtual_host

Repository: qpid-proton
Updated Branches:
  refs/heads/master 564a4d024 -> 24dd60385


PROTON-1138: connection host becomes virtual_host


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/24dd6038
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/24dd6038
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/24dd6038

Branch: refs/heads/master
Commit: 24dd60385b52b471120a227bcb8ed8225e199a8a
Parents: 564a4d0
Author: Clifford Jansen <cl...@apache.org>
Authored: Tue May 3 16:22:08 2016 -0700
Committer: Clifford Jansen <cl...@apache.org>
Committed: Tue May 3 16:23:30 2016 -0700

----------------------------------------------------------------------
 proton-c/bindings/cpp/include/proton/connection.hpp         | 3 +--
 proton-c/bindings/cpp/include/proton/connection_options.hpp | 3 +++
 proton-c/bindings/cpp/src/connection.cpp                    | 6 +-----
 proton-c/bindings/cpp/src/connection_options.cpp            | 5 +++++
 proton-c/bindings/cpp/src/connector.cpp                     | 1 -
 proton-c/bindings/cpp/src/container_impl.cpp                | 3 ++-
 proton-c/bindings/cpp/src/proton_bits.hpp                   | 4 ++++
 proton-c/bindings/cpp/src/reactor.hpp                       | 1 +
 8 files changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/include/proton/connection.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/connection.hpp b/proton-c/bindings/cpp/include/proton/connection.hpp
index a1bbaea..11a48e9 100644
--- a/proton-c/bindings/cpp/include/proton/connection.hpp
+++ b/proton-c/bindings/cpp/include/proton/connection.hpp
@@ -69,7 +69,7 @@ PN_CPP_CLASS_EXTERN connection : public internal::object<pn_connection_t>, publi
     PN_CPP_EXTERN class transport transport() const;
 
     /// Return the AMQP host name for the connection.
-    PN_CPP_EXTERN std::string host() const;
+    PN_CPP_EXTERN std::string virtual_host() const;
 
     /// Return the container ID for the connection.
     PN_CPP_EXTERN std::string container_id() const;
@@ -114,7 +114,6 @@ PN_CPP_CLASS_EXTERN connection : public internal::object<pn_connection_t>, publi
   private:
     void user(const std::string &);
     void password(const std::string &);
-    void host(const std::string& h);
 
     friend class internal::factory<connection>;
     friend class connector;

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/include/proton/connection_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/connection_options.hpp b/proton-c/bindings/cpp/include/proton/connection_options.hpp
index 6c7491f..d2f58a7 100644
--- a/proton-c/bindings/cpp/include/proton/connection_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/connection_options.hpp
@@ -101,6 +101,9 @@ class connection_options {
     /// Set the container ID.
     PN_CPP_EXTERN connection_options& container_id(const std::string &id);
 
+    /// Set the virtual host name.
+    PN_CPP_EXTERN connection_options& virtual_host(const std::string &name);
+
     /// @cond INTERNAL
 
     /// XXX more discussion - not clear we want to support this

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/src/connection.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/connection.cpp b/proton-c/bindings/cpp/src/connection.cpp
index 093c19a..33451c3 100644
--- a/proton-c/bindings/cpp/src/connection.cpp
+++ b/proton-c/bindings/cpp/src/connection.cpp
@@ -61,14 +61,10 @@ void connection::close() { pn_connection_close(pn_object()); }
 
 void connection::release() { pn_connection_release(pn_object()); }
 
-std::string connection::host() const {
+std::string connection::virtual_host() const {
     return str(pn_connection_get_hostname(pn_object()));
 }
 
-void connection::host(const std::string& h) {
-    pn_connection_set_hostname(pn_object(), h.c_str());
-}
-
 std::string connection::container_id() const {
     return str(pn_connection_get_container(pn_object()));
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/src/connection_options.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/connection_options.cpp b/proton-c/bindings/cpp/src/connection_options.cpp
index d5eff82..fe4582a 100644
--- a/proton-c/bindings/cpp/src/connection_options.cpp
+++ b/proton-c/bindings/cpp/src/connection_options.cpp
@@ -53,6 +53,7 @@ class connection_options::impl {
     option<duration> idle_timeout;
     option<duration> heartbeat;
     option<std::string> container_id;
+    option<std::string> virtual_host;
     option<std::string> link_prefix;
     option<reconnect_timer> reconnect;
     option<class ssl_client_options> ssl_client_options;
@@ -119,6 +120,8 @@ class connection_options::impl {
                 outbound->reconnect_timer(reconnect.value);
             if (container_id.set)
                 pn_connection_set_container(pnc, container_id.value.c_str());
+            if (virtual_host.set)
+                pn_connection_set_hostname(pnc, virtual_host.value.c_str());
             if (link_prefix.set)
                 connection_context::get(pnc).link_gen.prefix(link_prefix.value);
         }
@@ -131,6 +134,7 @@ class connection_options::impl {
         idle_timeout.update(x.idle_timeout);
         heartbeat.update(x.heartbeat);
         container_id.update(x.container_id);
+        virtual_host.update(x.virtual_host);
         link_prefix.update(x.link_prefix);
         reconnect.update(x.reconnect);
         ssl_client_options.update(x.ssl_client_options);
@@ -174,6 +178,7 @@ connection_options& connection_options::max_channels(uint16_t n) { impl_->max_fr
 connection_options& connection_options::idle_timeout(duration t) { impl_->idle_timeout = t; return *this; }
 connection_options& connection_options::heartbeat(duration t) { impl_->heartbeat = t; return *this; }
 connection_options& connection_options::container_id(const std::string &id) { impl_->container_id = id; return *this; }
+connection_options& connection_options::virtual_host(const std::string &id) { impl_->virtual_host = id; return *this; }
 connection_options& connection_options::link_prefix(const std::string &id) { impl_->link_prefix = id; return *this; }
 connection_options& connection_options::reconnect(const reconnect_timer &rc) { impl_->reconnect = rc; return *this; }
 connection_options& connection_options::ssl_client_options(const class ssl_client_options &c) { impl_->ssl_client_options = c; return *this; }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/src/connector.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/connector.cpp b/proton-c/bindings/cpp/src/connector.cpp
index c007dd6..ccd5751 100644
--- a/proton-c/bindings/cpp/src/connector.cpp
+++ b/proton-c/bindings/cpp/src/connector.cpp
@@ -57,7 +57,6 @@ void connector::reconnect_timer(const class reconnect_timer &rt) {
 }
 
 void connector::connect() {
-    connection_.host(address_.host_port());
     pn_transport_t *pnt = pn_transport();
     transport t(make_wrapper(pnt));
     if (!address_.user().empty())

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/src/container_impl.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/container_impl.cpp b/proton-c/bindings/cpp/src/container_impl.cpp
index 00ac5fd..a221f45 100644
--- a/proton-c/bindings/cpp/src/container_impl.cpp
+++ b/proton-c/bindings/cpp/src/container_impl.cpp
@@ -149,7 +149,8 @@ connection container_impl::connect(const proton::url &url, const connection_opti
     proton_handler *h = opts.handler();
 
     internal::pn_ptr<pn_handler_t> chandler = h ? cpp_handler(h) : internal::pn_ptr<pn_handler_t>();
-    connection conn(reactor_.connection(chandler.get()));
+    pn_connection_t* pnc = pn_reactor_connection_to_host(unwrap(reactor_), url.host().c_str(), url.port().c_str(), chandler.get());
+    connection conn(make_wrapper(pnc));
     internal::pn_unique_ptr<connector> ctor(new connector(conn, url, opts));
     connection_context& cc(connection_context::get(conn));
     cc.handler.reset(ctor.release());

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/src/proton_bits.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/proton_bits.hpp b/proton-c/bindings/cpp/src/proton_bits.hpp
index 6cf6322..2a5362c 100644
--- a/proton-c/bindings/cpp/src/proton_bits.hpp
+++ b/proton-c/bindings/cpp/src/proton_bits.hpp
@@ -39,6 +39,7 @@ struct pn_delivery_t;
 struct pn_condition_t;
 struct pn_acceptor_t;
 struct pn_terminus_t;
+struct pn_reactor_t;
 
 namespace proton {
 
@@ -58,6 +59,7 @@ class acceptor;
 class terminus;
 class source;
 class target;
+class reactor;
 
 std::string error_str(long code);
 
@@ -95,6 +97,7 @@ template <> struct wrapped<acceptor> { typedef pn_acceptor_t type; };
 template <> struct wrapped<terminus> { typedef pn_terminus_t type; };
 template <> struct wrapped<source> { typedef pn_terminus_t type; };
 template <> struct wrapped<target> { typedef pn_terminus_t type; };
+template <> struct wrapped<reactor> { typedef pn_reactor_t type; };
 
 template <class T> struct wrapper {};
 template <> struct wrapper<pn_transport_t> { typedef transport type; };
@@ -107,6 +110,7 @@ template <> struct wrapper<pn_delivery_t> { typedef transfer type; };
 template <> struct wrapper<pn_condition_t> { typedef error_condition type; };
 template <> struct wrapper<pn_acceptor_t> { typedef acceptor type; };
 template <> struct wrapper<pn_terminus_t> { typedef terminus type; };
+template <> struct wrapper<pn_reactor_t> { typedef reactor type; };
 
   // Factory for wrapper types
 template <class T>

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/24dd6038/proton-c/bindings/cpp/src/reactor.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/reactor.hpp b/proton-c/bindings/cpp/src/reactor.hpp
index 3aac8f8..48d9ea1 100644
--- a/proton-c/bindings/cpp/src/reactor.hpp
+++ b/proton-c/bindings/cpp/src/reactor.hpp
@@ -94,6 +94,7 @@ class reactor : public internal::object<pn_reactor_t> {
 
   friend class container_impl;
   friend class container_context;
+  friend class internal::factory<reactor>;
 };
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org