--- a/src/PosixMQCommand.cpp Sat Feb 26 01:21:14 2022 +0100
+++ b/src/PosixMQCommand.cpp Tue Mar 01 00:47:49 2022 +0100
@@ -31,6 +31,7 @@
#include <relpipe/cli/CLI.h>
#include "PosixMQCommand.h"
+#include "PosixMQ.h"
using namespace std;
using namespace relpipe::cli;
@@ -41,18 +42,25 @@
namespace posixmq {
void PosixMQCommand::process(std::shared_ptr<writer::RelationalWriter> writer, Configuration& configuration) {
- wstring_convert < codecvt_utf8<wchar_t>> convertor; // UTF-8 is required for PosixMQ
vector<AttributeMetadata> metadata;
- writer->startRelation(L"posix_mq",{
+ std::shared_ptr<PosixMQ> mq(PosixMQ::open(convertor.to_bytes(configuration.queue)));
+
+ writer->startRelation(configuration.relation,{
+ {L"queue", TypeId::STRING},
{L"message", TypeId::STRING}
}, true);
-
- writer->writeAttribute(L"TODO: read messages from POSIX MQ");
+ for (int i = configuration.messageCount; i > 0; i--) {
+ writer->writeAttribute(configuration.queue);
+ writer->writeAttribute(convertor.from_bytes(mq->receive()));
+ }
}
+PosixMQCommand::~PosixMQCommand() {
+}
+
}
}
}
\ No newline at end of file