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/03/03 18:06:20 UTC
svn commit: r918574 - in /qpid/trunk/qpid/cpp/src:
qpid/client/amqp0_10/AddressResolution.cpp tests/MessagingSessionTests.cpp
Author: gsim
Date: Wed Mar 3 17:06:20 2010
New Revision: 918574
URL: http://svn.apache.org/viewvc?rev=918574&view=rev
Log:
QPID-2427: Align browsing option with approach used in python client
Modified:
qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp
qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp?rev=918574&r1=918573&r2=918574&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp Wed Mar 3 17:06:20 2010
@@ -65,7 +65,9 @@
//option names
const std::string BROWSE("browse");
+const std::string CONSUME("consume");
const std::string EXCLUSIVE("exclusive");
+const std::string MODE("mode");
const std::string NO_LOCAL("no-local");
const std::string FILTER("filter");
const std::string RELIABILITY("reliability");
@@ -347,10 +349,21 @@
}
}
+bool isBrowse(const Address& address)
+{
+ const Variant& mode = address.getOption(MODE);
+ if (!mode.isVoid()) {
+ std::string value = mode.asString();
+ if (value == BROWSE) return true;
+ else if (value != CONSUME) throw InvalidAddress("Invalid mode");
+ }
+ return false;
+}
+
QueueSource::QueueSource(const Address& address) :
Queue(address),
acceptMode(AddressResolution::is_unreliable(address) ? ACCEPT_MODE_NONE : ACCEPT_MODE_EXPLICIT),
- acquireMode(address.getOption(BROWSE).asBool() ? ACQUIRE_MODE_NOT_ACQUIRED : ACQUIRE_MODE_PRE_ACQUIRED),
+ acquireMode(isBrowse(address) ? ACQUIRE_MODE_NOT_ACQUIRED : ACQUIRE_MODE_PRE_ACQUIRED),
exclusive(false)
{
//extract subscription arguments from address options
Modified: qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp?rev=918574&r1=918573&r2=918574&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp Wed Mar 3 17:06:20 2010
@@ -525,9 +525,9 @@
QueueFixture fix;
Sender sender = fix.session.createSender(fix.queue);
send(sender, 10);
- Receiver browser1 = fix.session.createReceiver(fix.queue + "; {browse:true}");
+ Receiver browser1 = fix.session.createReceiver(fix.queue + "; {mode:browse}");
receive(browser1, 10);
- Receiver browser2 = fix.session.createReceiver(fix.queue + "; {browse:true}");
+ Receiver browser2 = fix.session.createReceiver(fix.queue + "; {mode:browse}");
receive(browser2, 10);
Receiver consumer = fix.session.createReceiver(fix.queue);
receive(consumer, 10);
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org