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 2007/12/14 12:24:45 UTC
svn commit: r604170 - /incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp
Author: gsim
Date: Fri Dec 14 03:24:45 2007
New Revision: 604170
URL: http://svn.apache.org/viewvc?rev=604170&view=rev
Log:
Allow the queue policy to be set through command line options
Modified:
incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp
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=604170&r1=604169&r2=604170&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/perftest.cpp Fri Dec 14 03:24:45 2007
@@ -26,6 +26,7 @@
#include "qpid/client/Connection.h"
#include "qpid/client/Completion.h"
#include "qpid/client/Message.h"
+#include "qpid/framing/FieldTable.h"
#include "qpid/sys/Time.h"
#include <boost/lexical_cast.hpp>
@@ -68,6 +69,10 @@
// Actions
bool setup, control, publish, subscribe;
+ // Queue policy
+ uint32_t queueMaxCount;
+ uint64_t queueMaxSize;
+
// Publisher
size_t pubs;
size_t count ;
@@ -115,7 +120,10 @@
"N==0: Subscriber uses unconfirmed mode")
("qt", optValue(qt, "N"), "Create N queues or topics.")
- ("summary,s", optValue(summary), "Summary output: pubs/sec subs/sec transfers/sec Mbytes/sec");
+ ("summary,s", optValue(summary), "Summary output: pubs/sec subs/sec transfers/sec Mbytes/sec")
+
+ ("queue_max_count", optValue(queueMaxCount, "N"), "queue policy: count to trigger 'flow to disk'")
+ ("queue_max_size", optValue(queueMaxSize, "N"), "queue policy: accumulated size to trigger 'flow to disk'");
}
// Computed values
@@ -187,9 +195,9 @@
struct Setup : public Client {
- void queueInit(string name, bool durable=false) {
- session.queueDeclare(arg::queue=name, arg::durable=durable);
- session.queuePurge(arg::queue=name);
+ void queueInit(string name, bool durable=false, const framing::FieldTable& settings=framing::FieldTable()) {
+ session.queueDeclare(arg::queue=name, arg::durable=durable, arg::arguments=settings);
+ session.queuePurge(arg::queue=name).sync();
}
void run() {
@@ -198,14 +206,15 @@
queueInit("sub_ready");
queueInit("sub_done");
if (opts.mode==SHARED) {
+ framing::FieldTable settings;//queue policy settings
+ settings.setInt("qpid.max_count", opts.queueMaxCount);
+ settings.setInt("qpid.max_size", opts.queueMaxSize);
for (size_t i = 0; i < opts.qt; ++i) {
ostringstream qname;
qname << "perftest" << i;
- queueInit(qname.str(), opts.durable);
+ queueInit(qname.str(), opts.durable, settings);
}
}
- // Make sure this is all completed before we return.
- session.getExecution().sendSyncRequest();
}
};