| | |
| | | |
| | | // ShmMsgQueue memory usage: (320 + 16*length) bytes, length >= 2 |
| | | ShmMsgQueue::ShmMsgQueue(const MQId &id, ShmType &segment, const int len): |
| | | SharedQueue(segment, MsgQIdToName(id), id, AdjustMQLength(len), segment.get_segment_manager()) |
| | | Super(segment, MsgQIdToName(id), AdjustMQLength(len), segment.get_segment_manager()), |
| | | id_(id) |
| | | { |
| | | } |
| | | |
| | |
| | | bool ShmMsgQueue::Send(const MQId &remote_id, const Msg &msg, const int timeout_ms) |
| | | { |
| | | Queue *remote = find(MsgQIdToName(remote_id)); |
| | | return remote && remote->Write(msg, timeout_ms, [&](){msg.AddRef();}); |
| | | return remote && remote->Write(msg, timeout_ms, [](const Msg&msg){msg.AddRef();}); |
| | | } |
| | | |
| | | bool ShmMsgQueue::Send(const MQId &remote_id, const void *data, const size_t size, const int timeout_ms) |