src/PosixMQ.h
branchv_0
changeset 6 65abb0376a0d
parent 3 b71fc3b5e56b
child 9 7722d28539d5
equal deleted inserted replaced
5:c6ef2463e100 6:65abb0376a0d
    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