summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/perftest.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-11-07 21:01:26 +0000
committerAlan Conway <aconway@apache.org>2007-11-07 21:01:26 +0000
commitf8e7a206c5adac3c0d7bcf1be739872397eafd42 (patch)
tree65d112322874d0c6403a8aec2b108de433cb75f0 /qpid/cpp/src/tests/perftest.cpp
parent1d31f66fcc9601db06f5fbdd158c16bc3180f0fd (diff)
downloadqpid-python-f8e7a206c5adac3c0d7bcf1be739872397eafd42.tar.gz
auto-ack support for perftest.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@592897 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/perftest.cpp')
-rw-r--r--qpid/cpp/src/tests/perftest.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/qpid/cpp/src/tests/perftest.cpp b/qpid/cpp/src/tests/perftest.cpp
index 80157da7f4..c775407cdf 100644
--- a/qpid/cpp/src/tests/perftest.cpp
+++ b/qpid/cpp/src/tests/perftest.cpp
@@ -44,10 +44,11 @@ struct Opts : public TestOptions {
bool durable;
int consumers;
std::string mode;
+ int autoAck;
Opts() :
listen(false), publish(false), count(500000), size(64), consumers(1),
- mode("shared")
+ mode("shared"), autoAck(100)
{
addOptions()
("listen", optValue(listen), "Consume messages.")
@@ -56,7 +57,8 @@ struct Opts : public TestOptions {
("size", optValue(size, "BYTES"), "Size of messages.")
("durable", optValue(durable, "N"), "Publish messages as durable.")
("consumers", optValue(consumers, "N"), "Number of consumers.")
- ("mode", optValue(mode, "shared|fanout|topic"), "consume mode");
+ ("mode", optValue(mode, "shared|fanout|topic"), "consume mode")
+ ("auto-ack", optValue(autoAck, "N"), "ack every N messages.");
}
};
@@ -219,12 +221,14 @@ void ListenThread::run() {
session.messageTransfer(arg::content=Message("ready", "control"));
SubscriptionManager subs(session);
- LocalQueue consume;
+ LocalQueue consume(AckPolicy(opts.autoAck));
subs.subscribe(consume, consumeQueue);
int consumed=0;
AbsTime start=now();
- while (consume.pop().getData() != "done")
+ Message msg;
+ while ((msg=consume.pop()).getData() != "done")
++consumed;
+ msg.acknowledge(); // Ack all outstanding messages.
AbsTime end=now();
// Report to publisher.