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