From 16da0e0c511c0c1cf4ea592640c522754065200a Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Tue, 11 May 2010 14:39:58 +0000 Subject: Support for multiple protocols in qpid::Url. - simplified qpid::Address to hold (protocol,host,port) triples. - protocol plugins call Url:addProtocol to add tags to Url parser. - use Address::protocol when establishing connections. - ssl_test: tests using URL to connect. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@943130 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/Address.cpp | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) (limited to 'cpp/src/qpid/Address.cpp') diff --git a/cpp/src/qpid/Address.cpp b/cpp/src/qpid/Address.cpp index c3f6829fd3..e2b2dfbcdf 100644 --- a/cpp/src/qpid/Address.cpp +++ b/cpp/src/qpid/Address.cpp @@ -17,6 +17,7 @@ */ #include "qpid/Address.h" +#include "qpid/client/ConnectionSettings.h" #include @@ -24,35 +25,14 @@ using namespace std; namespace qpid { -TcpAddress::TcpAddress(const std::string& h, uint16_t p): host(h), port(p) {} +const string Address::TCP("tcp"); -struct AddressOstreamVisitor : public boost::static_visitor { - ostream& out; - AddressOstreamVisitor(ostream& o) : out(o) {} - template ostream& operator()(const T& data) { return out << data; } -}; - -ostream& operator<<(ostream& os, const Address& addr) { - AddressOstreamVisitor visitor(os); - return boost::apply_visitor(visitor, addr.value); -} - -bool operator==(const TcpAddress& x, const TcpAddress& y) { - return y.host==x.host && y.port == x.port; -} - -ostream& operator<<(ostream& os, const TcpAddress& a) { - return os << "tcp:" << a.host << ":" << a.port; -} - -ExampleAddress::ExampleAddress(const char c) : data(c) {} - -bool operator==(const ExampleAddress& x, const ExampleAddress& y) { - return x.data == y.data; +ostream& operator<<(ostream& os, const Address& a) { + return os << a.protocol << ":" << a.host << ":" << a.port; } -ostream& operator<<(ostream& os, const ExampleAddress& ex) { - return os << "example:" << ex.data; +bool operator==(const Address& x, const Address& y) { + return y.protocol==x.protocol && y.host==x.host && y.port == x.port; } } // namespace qpid -- cgit v1.2.1