diff -r 452d06d24ac2 -r ccaed729f8d3 src/ZeroMQHandler.h --- a/src/ZeroMQHandler.h Sun May 01 18:24:24 2022 +0200 +++ b/src/ZeroMQHandler.h Sun May 01 22:27:42 2022 +0200 @@ -24,12 +24,13 @@ #include #include +#include + #include #include #include #include -#include "ZeroMQ.h" #include "Configuration.h" #include "Hex.h" @@ -41,7 +42,8 @@ private: std::wstring_convert> convertor; // TODO: support also other encodings. Configuration configuration; - shared_ptr mq; + zmq::context_t zmqContext; + zmq::socket_t zmqSocket; struct CurrentRelation { relpipe::common::type::StringX name; @@ -52,9 +54,8 @@ public: - ZeroMQHandler(Configuration configuration) : configuration(configuration) { - // TODO: do not throw exception from the constructor: ZeroMQ::open() - mq.reset(ZeroMQ::open(convertor.to_bytes(configuration.queue), configuration.unlinkOnClose)); + ZeroMQHandler(Configuration configuration) : configuration(configuration), zmqSocket(zmqContext, zmq::socket_type::push) { + zmqSocket.connect(convertor.to_bytes(configuration.endpointUrl)); } void startRelation(relpipe::common::type::StringX name, std::vector attributes) override { @@ -72,7 +73,7 @@ currentRelation.attributeIndex++; if (currentRelation.attributeIndex == currentRelation.attributes.size()) { currentRelation.attributeIndex = 0; - mq->send(currentRelation.currentValue); + zmqSocket.send(currentRelation.currentValue.c_str(), currentRelation.currentValue.size(), 0); // FIXME: check return value } }