diff options
Diffstat (limited to 'qpid/cpp/src/tests/qpid-receive.cpp')
-rw-r--r-- | qpid/cpp/src/tests/qpid-receive.cpp | 9 |
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()) { |