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