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();