diff options
author | Gordon Sim <gsim@apache.org> | 2007-12-14 11:24:45 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2007-12-14 11:24:45 +0000 |
commit | 7409998c802dd46ca283a84f6789bd65381b3c2e (patch) | |
tree | f8c899d22d41705c8f0682fb88c8de16150c7b68 /cpp/src/tests/perftest.cpp | |
parent | 7556017af46c7ddae2fcbdccbdee07b5fa7892bc (diff) | |
download | qpid-python-7409998c802dd46ca283a84f6789bd65381b3c2e.tar.gz |
Allow the queue policy to be set through command line options
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@604170 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/perftest.cpp')
-rw-r--r-- | cpp/src/tests/perftest.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/cpp/src/tests/perftest.cpp b/cpp/src/tests/perftest.cpp index 8ba0f21fc5..f844e9bb19 100644 --- a/cpp/src/tests/perftest.cpp +++ b/cpp/src/tests/perftest.cpp @@ -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 @@ struct Opts : public TestOptions { // 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 @@ struct Opts : public TestOptions { "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 Client : public Runnable { 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 @@ struct Setup : public Client { 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(); } }; |