summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/qpid-receive.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/tests/qpid-receive.cpp')
-rw-r--r--qpid/cpp/src/tests/qpid-receive.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/qpid/cpp/src/tests/qpid-receive.cpp b/qpid/cpp/src/tests/qpid-receive.cpp
index 9783316449..a4e7653e8d 100644
--- a/qpid/cpp/src/tests/qpid-receive.cpp
+++ b/qpid/cpp/src/tests/qpid-receive.cpp
@@ -34,6 +34,7 @@
#include "Statistics.h"
#include <iostream>
+#include <fstream>
#include <memory>
using namespace qpid::messaging;
@@ -60,6 +61,7 @@ struct Options : public qpid::Options
uint rollbackFrequency;
bool printContent;
bool printHeaders;
+ std::string saveContent;
bool failoverUpdates;
qpid::log::Options log;
bool reportTotal;
@@ -105,6 +107,7 @@ struct Options : public qpid::Options
("rollback-frequency", qpid::optValue(rollbackFrequency, "N"), "rollback frequency (0 implies no transaction will be rolledback)")
("print-content", qpid::optValue(printContent, "yes|no"), "print out message content")
("print-headers", qpid::optValue(printHeaders, "yes|no"), "print out message headers")
+ ("save-content", qpid::optValue(saveContent, "FILE"), "save message content to FILE")
("failover-updates", qpid::optValue(failoverUpdates), "Listen for membership updates distributed via amq.failover")
("report-total", qpid::optValue(reportTotal), "Report total throughput and latency statistics")
("report-every", qpid::optValue(reportEvery,"N"), "Report throughput and latency statistics every N messages.")
@@ -196,6 +199,10 @@ int main(int argc, char ** argv)
std::map<std::string,Sender> replyTo;
+ std::ofstream saveContent;
+ if (opts.saveContent.size())
+ saveContent.open(opts.saveContent.c_str());
+
while (!done && receiver.fetch(msg, timeout)) {
reporter.message(msg);
if (!opts.ignoreDuplicates || !sequenceTracker.isDuplicate(msg)) {
@@ -217,6 +224,8 @@ int main(int argc, char ** argv)
}
if (opts.printContent)
std::cout << msg.getContent() << std::endl;//TODO: handle map or list messages
+ if (opts.saveContent.size())
+ saveContent << msg.getContent() << std::endl;
if (opts.messages && count >= opts.messages) done = true;
}
} else if (opts.checkRedelivered && !msg.getRedelivered()) {