You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2010/04/08 11:49:05 UTC
svn commit: r931852 - in /qpid/trunk/qpid/cpp: examples/messaging/
include/qpid/messaging/ src/qpid/client/amqp0_10/ src/qpid/messaging/
src/tests/
Author: gsim
Date: Thu Apr 8 09:49:04 2010
New Revision: 931852
URL: http://svn.apache.org/viewvc?rev=931852&view=rev
Log:
QPID-664: changed open() to connect(), moved url parameter to constructor, added detach() and isConnected()
Modified:
qpid/trunk/qpid/cpp/examples/messaging/client.cpp
qpid/trunk/qpid/cpp/examples/messaging/drain.cpp
qpid/trunk/qpid/cpp/examples/messaging/map_receiver.cpp
qpid/trunk/qpid/cpp/examples/messaging/map_sender.cpp
qpid/trunk/qpid/cpp/examples/messaging/queue_receiver.cpp
qpid/trunk/qpid/cpp/examples/messaging/queue_sender.cpp
qpid/trunk/qpid/cpp/examples/messaging/server.cpp
qpid/trunk/qpid/cpp/examples/messaging/spout.cpp
qpid/trunk/qpid/cpp/examples/messaging/topic_receiver.cpp
qpid/trunk/qpid/cpp/examples/messaging/topic_sender.cpp
qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h
qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp
qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h
qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp
qpid/trunk/qpid/cpp/src/qpid/messaging/ConnectionImpl.h
qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp
qpid/trunk/qpid/cpp/src/tests/qpid_recv.cpp
qpid/trunk/qpid/cpp/src/tests/qpid_send.cpp
qpid/trunk/qpid/cpp/src/tests/qpid_stream.cpp
Modified: qpid/trunk/qpid/cpp/examples/messaging/client.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/client.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/client.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/client.cpp Thu Apr 8 09:49:04 2010
@@ -39,9 +39,9 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Sender sender = session.createSender("service_queue");
Modified: qpid/trunk/qpid/cpp/examples/messaging/drain.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/drain.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/drain.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/drain.cpp Thu Apr 8 09:49:04 2010
@@ -93,9 +93,9 @@ int main(int argc, char** argv)
{
Options options(argv[0]);
if (options.parse(argc, argv)) {
- Connection connection(options.connectionOptions);
+ Connection connection(options.url, options.connectionOptions);
try {
- connection.open(options.url);
+ connection.connect();
Session session = connection.createSession();
Receiver receiver = session.createReceiver(options.address);
Duration timeout = options.getTimeout();
Modified: qpid/trunk/qpid/cpp/examples/messaging/map_receiver.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/map_receiver.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/map_receiver.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/map_receiver.cpp Thu Apr 8 09:49:04 2010
@@ -38,9 +38,9 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Receiver receiver = session.createReceiver("message_queue");
Variant::Map content;
Modified: qpid/trunk/qpid/cpp/examples/messaging/map_sender.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/map_sender.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/map_sender.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/map_sender.cpp Thu Apr 8 09:49:04 2010
@@ -37,9 +37,9 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Sender sender = session.createSender("message_queue");
Modified: qpid/trunk/qpid/cpp/examples/messaging/queue_receiver.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/queue_receiver.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/queue_receiver.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/queue_receiver.cpp Thu Apr 8 09:49:04 2010
@@ -31,9 +31,9 @@ using namespace qpid::messaging;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Receiver receiver = session.createReceiver("message_queue");
while (true) {
Modified: qpid/trunk/qpid/cpp/examples/messaging/queue_sender.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/queue_sender.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/queue_sender.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/queue_sender.cpp Thu Apr 8 09:49:04 2010
@@ -34,9 +34,9 @@ int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
int count = argc>2 ? atoi(argv[2]) : 10;
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Sender sender = session.createSender("message_queue");
Modified: qpid/trunk/qpid/cpp/examples/messaging/server.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/server.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/server.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/server.cpp Thu Apr 8 09:49:04 2010
@@ -40,9 +40,9 @@ using std::string;
int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Receiver receiver = session.createReceiver("service_queue; {create: always}");
Modified: qpid/trunk/qpid/cpp/examples/messaging/spout.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/spout.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/spout.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/spout.cpp Thu Apr 8 09:49:04 2010
@@ -156,9 +156,9 @@ int main(int argc, char** argv)
{
Options options(argv[0]);
if (options.parse(argc, argv)) {
- Connection connection(options.connectionOptions);
+ Connection connection(options.url, options.connectionOptions);
try {
- connection.open(options.url);
+ connection.connect();
Session session = connection.createSession();
Sender sender = session.createSender(options.address);
Modified: qpid/trunk/qpid/cpp/examples/messaging/topic_receiver.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/topic_receiver.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/topic_receiver.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/topic_receiver.cpp Thu Apr 8 09:49:04 2010
@@ -33,9 +33,9 @@ int main(int argc, char** argv) {
const std::string url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
const std::string pattern = argc>2 ? argv[2] : "#.#";
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Receiver receiver = session.createReceiver("news_service; {filter:[control, " + pattern + "]}");
while (true) {
Modified: qpid/trunk/qpid/cpp/examples/messaging/topic_sender.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/topic_sender.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/topic_sender.cpp (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/topic_sender.cpp Thu Apr 8 09:49:04 2010
@@ -51,9 +51,9 @@ int main(int argc, char** argv) {
const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672";
int count = argc>2 ? atoi(argv[2]) : 10;
- Connection connection;
+ Connection connection(url);
try {
- connection.open(url);
+ connection.connect();
Session session = connection.createSession();
Sender sender = session.createSender("news_service");
Modified: qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h (original)
+++ qpid/trunk/qpid/cpp/include/qpid/messaging/Connection.h Thu Apr 8 09:49:04 2010
@@ -53,7 +53,7 @@ class Connection : public qpid::messagin
* sasl-mechanism
* sasl-min-ssf
* sasl-max-ssf
- * protocol
+ * transport
*
* Reconnect behaviour can be controlled through the following options:
*
@@ -71,18 +71,20 @@ class Connection : public qpid::messagin
* doubled every failure until the value of max-retry-interval
* is reached.
*/
- QPID_CLIENT_EXTERN Connection(const qpid::types::Variant::Map& options = qpid::types::Variant::Map());
+ QPID_CLIENT_EXTERN Connection(const std::string& url, const qpid::types::Variant::Map& options = qpid::types::Variant::Map());
/**
* Creates a connection using an option string of the form
* {name=value,name2=value2...}, see above for options supported.
*
* @exception InvalidOptionString if the string does not match the correct syntax
*/
- QPID_CLIENT_EXTERN Connection(const std::string& options);
+ QPID_CLIENT_EXTERN Connection(const std::string& url, const std::string& options);
QPID_CLIENT_EXTERN ~Connection();
QPID_CLIENT_EXTERN Connection& operator=(const Connection&);
QPID_CLIENT_EXTERN void setOption(const std::string& name, const qpid::types::Variant& value);
- QPID_CLIENT_EXTERN void open(const std::string& url);
+ QPID_CLIENT_EXTERN void connect();
+ QPID_CLIENT_EXTERN bool isConnected();
+ QPID_CLIENT_EXTERN void detach();
/**
* Closes a connection and all sessions associated with it. An
* opened connection must be closed before the last handle is
Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp Thu Apr 8 09:49:04 2010
@@ -91,16 +91,17 @@ void convert(const Variant::Map& from, C
setIfFound(from, "max-frame-size", to.maxFrameSize);
setIfFound(from, "bounds", to.bounds);
- setIfFound(from, "protocol", to.protocol);
+ setIfFound(from, "transport", to.protocol);
}
-ConnectionImpl::ConnectionImpl(const Variant::Map& options) :
+ConnectionImpl::ConnectionImpl(const std::string& url, const Variant::Map& options) :
reconnect(true), timeout(-1), limit(-1),
minReconnectInterval(3), maxReconnectInterval(60),
retries(0)
{
QPID_LOG(debug, "Created connection with " << options);
setOptions(options);
+ urls.push_back(url);
}
void ConnectionImpl::setOptions(const Variant::Map& options)
@@ -127,12 +128,6 @@ void ConnectionImpl::setOption(const std
QPID_LOG(debug, "Set " << name << " to " << value);
}
-void ConnectionImpl::open(const std::string& u)
-{
- urls.push_back(u);
- connect();
-}
-
void ConnectionImpl::close()
{
std::vector<std::string> names;
@@ -143,11 +138,21 @@ void ConnectionImpl::close()
for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
getSession(*i).close();
}
+ detach();
+}
+void ConnectionImpl::detach()
+{
qpid::sys::Mutex::ScopedLock l(lock);
connection.close();
}
+bool ConnectionImpl::isConnected()
+{
+ qpid::sys::Mutex::ScopedLock l(lock);
+ return connection.isOpen();
+}
+
boost::intrusive_ptr<SessionImpl> getImplPtr(qpid::messaging::Session& session)
{
return boost::dynamic_pointer_cast<SessionImpl>(
Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h Thu Apr 8 09:49:04 2010
@@ -39,13 +39,14 @@ class SessionImpl;
class ConnectionImpl : public qpid::messaging::ConnectionImpl
{
public:
- ConnectionImpl(const qpid::types::Variant::Map& options);
- void open(const std::string& url);
+ ConnectionImpl(const std::string& url, const qpid::types::Variant::Map& options);
+ void connect();
+ bool isConnected();
void close();
qpid::messaging::Session newSession(bool transactional, const std::string& name);
qpid::messaging::Session getSession(const std::string& name) const;
void closed(SessionImpl&);
- void connect();
+ void detach();
void setOption(const std::string& name, const qpid::types::Variant& value);
private:
typedef std::map<std::string, qpid::messaging::Session> Sessions;
Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp Thu Apr 8 09:49:04 2010
@@ -108,7 +108,7 @@ void SessionImpl::close()
for (std::vector<std::string>::const_iterator i = s.begin(); i != s.end(); ++i) getSender(*i).close();
for (std::vector<std::string>::const_iterator i = r.begin(); i != r.end(); ++i) getReceiver(*i).close();
-
+
connection->closed(*this);
session.close();
}
Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/Connection.cpp Thu Apr 8 09:49:04 2010
@@ -39,22 +39,24 @@ Connection::Connection(const Connection&
Connection& Connection::operator=(const Connection& c) { return PI::assign(*this, c); }
Connection::~Connection() { PI::dtor(*this); }
-Connection::Connection(const std::string& o)
+Connection::Connection(const std::string& url, const std::string& o)
{
Variant::Map options;
AddressParser parser(o);
if (o.empty() || parser.parseMap(options)) {
- PI::ctor(*this, new qpid::client::amqp0_10::ConnectionImpl(options));
+ PI::ctor(*this, new qpid::client::amqp0_10::ConnectionImpl(url, options));
} else {
throw InvalidOptionString(o);
}
}
-Connection::Connection(const Variant::Map& options)
+Connection::Connection(const std::string& url, const Variant::Map& options)
{
- PI::ctor(*this, new qpid::client::amqp0_10::ConnectionImpl(options));
+ PI::ctor(*this, new qpid::client::amqp0_10::ConnectionImpl(url, options));
}
-void Connection::open(const std::string& url) { impl->open(url); }
+void Connection::connect() { impl->connect(); }
+bool Connection::isConnected() { return impl->isConnected(); }
+void Connection::detach() { impl->detach(); }
void Connection::close() { impl->close(); }
Session Connection::createSession(const std::string& name) { return impl->newSession(false, name); }
Session Connection::createTransactionalSession(const std::string& name)
Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/ConnectionImpl.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/ConnectionImpl.h?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/ConnectionImpl.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/ConnectionImpl.h Thu Apr 8 09:49:04 2010
@@ -38,7 +38,9 @@ class ConnectionImpl : public virtual qp
{
public:
virtual ~ConnectionImpl() {}
- virtual void open(const std::string& url) = 0;
+ virtual void connect() = 0;
+ virtual bool isConnected() = 0;
+ virtual void detach() = 0;
virtual void close() = 0;
virtual Session newSession(bool transactional, const std::string& name) = 0;
virtual Session getSession(const std::string& name) const = 0;
Modified: qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp Thu Apr 8 09:49:04 2010
@@ -115,8 +115,8 @@ struct MessagingFixture : public BrokerF
static Connection open(uint16_t port)
{
- Connection connection;
- connection.open((boost::format("amqp:tcp:localhost:%1%") % (port)).str());
+ Connection connection((boost::format("amqp:tcp:localhost:%1%") % (port)).str());
+ connection.connect();
return connection;
}
Modified: qpid/trunk/qpid/cpp/src/tests/qpid_recv.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/qpid_recv.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/qpid_recv.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/qpid_recv.cpp Thu Apr 8 09:49:04 2010
@@ -159,9 +159,9 @@ int main(int argc, char ** argv)
{
Options opts;
if (opts.parse(argc, argv)) {
- Connection connection(opts.connectionOptions);
+ Connection connection(opts.url, opts.connectionOptions);
try {
- connection.open(opts.url);
+ connection.connect();
std::auto_ptr<FailoverUpdates> updates(opts.failoverUpdates ? new FailoverUpdates(connection) : 0);
Session session = opts.tx ? connection.createTransactionalSession() : connection.createSession();
Receiver receiver = session.createReceiver(opts.address);
Modified: qpid/trunk/qpid/cpp/src/tests/qpid_send.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/qpid_send.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/qpid_send.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/qpid_send.cpp Thu Apr 8 09:49:04 2010
@@ -216,9 +216,9 @@ int main(int argc, char ** argv)
{
Options opts;
if (opts.parse(argc, argv)) {
- Connection connection(opts.connectionOptions);
+ Connection connection(opts.url, opts.connectionOptions);
try {
- connection.open(opts.url);
+ connection.connect();
std::auto_ptr<FailoverUpdates> updates(opts.failoverUpdates ? new FailoverUpdates(connection) : 0);
Session session = opts.tx ? connection.createTransactionalSession() : connection.createSession();
Sender sender = session.createSender(opts.address);
Modified: qpid/trunk/qpid/cpp/src/tests/qpid_stream.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/qpid_stream.cpp?rev=931852&r1=931851&r2=931852&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/qpid_stream.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/qpid_stream.cpp Thu Apr 8 09:49:04 2010
@@ -88,9 +88,9 @@ struct Client : qpid::sys::Runnable
void run()
{
- Connection connection;
+ Connection connection(opts.url);
try {
- connection.open(opts.url);
+ connection.connect();
Session session = connection.createSession();
doWork(session);
session.close();
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org