On Oct 28, 2011, at 1:38 AM, Martin Sustrik wrote:

> Hi Chuck,
> 
>> While thinking through a few scenarios with DEALER/ROUTER (and
>> XREQ/XREP) in 0mq 3.0, it occurred to me that it doesn't make a lot
>> of sense for us to test the *socket* to see if a message part is a
>> label or not. The zmq_msg_t structure already has this information.
> 
> The problem is with zmq_send (void*, size_t, int) and zmq_recv (void*, 
> size_t, int) There's no way to return the ancillary data using these 
> functions.
> 
> I wanted to avoid POSIX-like ancillary data:
> 
> http://rfc-ref.org/RFC-TEXTS/3542/chapter20.html
> 
> If you are familiar with that API, you can see it's much more complex 
> that current 0MQ's getsockopt() API.

Yes, I can see that.

> In short, you can implement access to message flags via message object, 
> however, the old way of accessing it is still necessary.

Is it necessary to maintain the old way *forever* or can it be phased out over 
time?


> One additional concern: The change is not backward compatible. Current 
> implementation clears the flags when receiving a message part. Ie. when 
> you re-send it, it behaves like a separate message. It would be nice to 
> get rid of this behaviour, however, you need a consensus of users on the 
> backward incompatible change.

Now that I am digging through socket_base.cpp I see that it calls reset_flags() 
quite often to clear these things. I have no idea (yet) how to handle that in a 
backward-compatible way or if that is even possible.

Before I do anything, I will share my thoughts with the list and hopefully get 
some feedback.

cr

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to