[zeromq-dev] [PATCH] zmq::msg_t::const_data for const correctness?

Ilja Golshtein ilejncs at narod.ru
Fri May 27 10:26:04 CEST 2011

The idea of the patch was to have something easily applicable. 

It does not break current interface, it is harmless, though not very useful.
I hope it can slightly reduce chances of copy() misuse. 

27.05.2011, 12:16, "Martin Sustrik" <sustrik at 250bpm.com>:
> On 05/27/2011 10:05 AM, Ilja Golshtein wrote:
>>  Yes, it was discussed here
>>  http://thread.gmane.org/gmane.network.zeromq.devel/8565/focus=8603
>>  Attaching the patch (again)
>>  It suggests two overloaded data() methods. The new one is const and
>>  returns const void*.
> Yes. This is a better approach but still doesn't deliver consistent
> const semantics.
> Implementing CoW behaviour to get the semantics consistent in
> std::string way is probably not that good an idea because of the
> performance impact of message copying.
> One solution that comes to mind is changing the zmq_msg_copy function in
> such a way that it closes the original non-const message and produces
> two const messages.
> That way the user can't shoot himself in the leg by copying a message
> object (which makes the buffer shared) and overwriting the data in one
> instance behind other instance's back.
>      int zmq_msg_copy (const zmq_msg_t *src, const zmq_msg_t **dest1,
> const zmq_msg_t **dest2);
> Thoughts?
> Martin

Best regards,
Ilja Golshtein.

More information about the zeromq-dev mailing list