8 const std::string & _endpoint,
9 const std::string & _node,
10 const std::string & _source):
11 node(_node), source(_source) {
13 unique_lock<mutex> _(socketMutex);
14 socket =
new zmq::socket_t(_ctx, ZMQ_PUB);
15 socket->setsockopt(ZMQ_LINGER, &linger,
sizeof(linger));
16 socket->connect(_endpoint.c_str());
20 unique_lock<mutex> _(socketMutex);
25 sendMessage(
'D', _msg);
29 sendMessage(
'I', _msg);
33 sendMessage(
'W', _msg);
37 sendMessage(
'E', _msg);
41 sendMessage(
'C', _msg);
45 void RocLogger::sendMessage(
char code,
const std::string & _msg) {
46 zmq::message_t header(6 + node.length());
47 memcpy(((
char*)header.data()) + 0,
"ROCL\x01", 5);
48 ((
char*)header.data())[5] = code;
49 memcpy(((
char*)header.data()) + 6, node.c_str(), node.length());
50 zmq::message_t sourceMsg(source.length());
51 memcpy(sourceMsg.data(), source.c_str(), source.length());
52 zmq::message_t data(_msg.length());
53 memcpy(data.data(), _msg.c_str(), _msg.length());
54 unique_lock<mutex> _(socketMutex);
55 socket->send(header, ZMQ_SNDMORE);
56 socket->send(sourceMsg, ZMQ_SNDMORE);
void error(const std::string &_msg)
void debug(const std::string &_msg)
RocLogger(zmq::context_t &_ctx, const std::string &_endpoint, const std::string &_node, const std::string &_source)
void critical(const std::string &_msg)
void warning(const std::string &_msg)
void info(const std::string &_msg)