You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by cc...@apache.org on 2007/11/21 23:08:14 UTC

svn commit: r597228 - in /incubator/qpid/trunk/qpid/cpp/src: qpid/client/SubscriptionManager.cpp qpid/client/SubscriptionManager.h tests/perftest.cpp

Author: cctrieloff
Date: Wed Nov 21 14:08:13 2007
New Revision: 597228

URL: http://svn.apache.org/viewvc?rev=597228&view=rev
Log:
- added confirm mode to perftest
- added acquire mode to perftest


Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.h
    incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.cpp?rev=597228&r1=597227&r2=597228&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.cpp Wed Nov 21 14:08:13 2007
@@ -35,14 +35,14 @@
 SubscriptionManager::SubscriptionManager(Session_0_10& s)
     : dispatcher(s), session(s),
       messages(UNLIMITED), bytes(UNLIMITED), window(true),
-      confirmMode(true)
+      confirmMode(true), acquireMode(true)
 {}
 
 void SubscriptionManager::subscribeInternal(
     const std::string& q, const std::string& dest)
 {
     session.messageSubscribe(arg::queue=q, arg::destination=dest,
-                             arg::confirmMode=confirmMode);
+                             arg::confirmMode=confirmMode, arg::acquireMode=acquireMode);
     setFlowControl(dest, messages, bytes, window);
 }
 
@@ -81,6 +81,8 @@
 }
 
 void SubscriptionManager::setConfirmMode(bool c) { confirmMode=c; }
+
+void SubscriptionManager::setAcquireMode(bool a) { acquireMode=a; }
 
 void SubscriptionManager::setAckPolicy(const AckPolicy& a) { autoAck=a; }
 

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.h?rev=597228&r1=597227&r2=597228&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/client/SubscriptionManager.h Wed Nov 21 14:08:13 2007
@@ -46,6 +46,7 @@
     bool window;
     AckPolicy autoAck;
     bool confirmMode;
+    bool acquireMode;
 
 public:
     SubscriptionManager(Session_0_10& session);
@@ -106,6 +107,13 @@
      *Message::acknowledge() or automatically, see setAckPolicy()
      */
     void setConfirmMode(bool confirm);
+
+    /** Set the acquire-mode for new subscriptions. Defaults to true.
+     *@param acquire: if false messages are not dequed, if true
+     * messages are dequed on acknowledgement or on transfer 
+	 * depending on confirmMode.
+     */
+    void setAcquireMode(bool acquire);
 
     /** Set the acknowledgement policy for new subscriptions.
      * Default is to acknowledge every message automatically.

Modified: incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp?rev=597228&r1=597227&r2=597228&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp Wed Nov 21 14:08:13 2007
@@ -48,12 +48,14 @@
     std::string mode;
     size_t autoAck;
     bool summary;
+	bool confirmMode;
+	bool acquireMode;
     
     Opts() :
         listen(false), publish(false), purge(false),
         count(500000), size(64), consumers(1),
         mode("shared"), autoAck(100),
-        summary(false)
+        summary(false), confirmMode(false), acquireMode(true)
     {
         addOptions() 
             ("listen", optValue(listen), "Consume messages.")
@@ -65,7 +67,9 @@
             ("consumers", optValue(consumers, "N"), "Number of consumers.")
             ("mode", optValue(mode, "shared|fanout|topic"), "consume mode")
             ("auto-ack", optValue(autoAck, "N"), "ack every N messages.")
-            ("summary,s", optValue(summary), "summary output only");
+            ("summary,s", optValue(summary), "summary output only")
+            ("confirm-mode", optValue(confirmMode, "N"), "confirm mode")
+            ("acquire-mode", optValue(acquireMode, "Y"), "acquire mode");
     }
 };
 
@@ -175,7 +179,8 @@
             char* data = const_cast<char*>(msg.getData().data());
             *reinterpret_cast<uint32_t*>(data) = i;
             session.messageTransfer(arg::destination=exchange(),
-                                    arg::content=msg);
+                                    arg::content=msg, arg::confirmMode=opts.confirmMode,
+									arg::acquireMode=opts.acquireMode);
             if (!opts.summary && (i%10000)==0){
                  cout << "." << flush;
                  session.execution().sendSyncRequest();
@@ -267,6 +272,8 @@
 
         SubscriptionManager subs(session);
         LocalQueue consume(AckPolicy(opts.autoAck));
+		subs.setConfirmMode(opts.confirmMode);
+		subs.setAcquireMode(opts.acquireMode);
         subs.subscribe(consume, consumeQueue);
         int consumed=0;
         AbsTime start=now();