equal
deleted
inserted
replaced
56 std::string receive() { |
56 std::string receive() { |
57 char buffer[MSG_SIZE + 1]; |
57 char buffer[MSG_SIZE + 1]; |
58 memset(buffer, 0, MSG_SIZE + 1); |
58 memset(buffer, 0, MSG_SIZE + 1); |
59 ssize_t msgSize = mq_receive(handle, buffer, MSG_SIZE, nullptr); |
59 ssize_t msgSize = mq_receive(handle, buffer, MSG_SIZE, nullptr); |
60 |
60 |
61 if (msgSize >= 0) return std::string(buffer); |
61 if (msgSize > sizeof (buffer))throw std::logic_error("Invalid PosixMQ message size."); |
|
62 else if (msgSize >= 0) return std::string(buffer, msgSize); |
62 else throw std::logic_error("Unable to receive PosixMQ message from " + queueName + " error: " + strerror(errno)); |
63 else throw std::logic_error("Unable to receive PosixMQ message from " + queueName + " error: " + strerror(errno)); |
63 } |
64 } |
64 |
65 |
65 }; |
66 }; |
66 |
67 |