[zeromq-dev] "No throw" alternative version of zmq.hpp
Martin Sustrik
sustrik at 250bpm.com
Tue Jul 13 15:16:04 CEST 2010
Matt Weinstein wrote:
> On Jul 13, 2010, at 8:22 AM, Martin Sustrik wrote:
>
>> Hi Matt,
>>
>>> It looks like I'm going to have to write (branch) a "no throw"
>>> version
>>> of the C++ wrappers for our blended (C/C++) environment.
>>>
>>> I hate maintaining alternative forks, but IMO it's better to expect a
>>> return value consistently, and the "value of destruction" is too
>>> great.
>>>
>>> I presume I'll get rights to submit it. Will anyone else find it
>>> useful?
>> Why not use raw C API then? The C++ API does basically nothing aside
>> of
>> converting POSIX error codes into C++ exceptions.
>
> Primarily to prevent the introduction of leaks, forgotten closes,
> etc. I'm handing zmq::message_t s into naive userland.
>
> I was thinking about writing a private wrapper, but figure a
> contribution would be useful.
I would make it an alternative C++ binding. When you have it ready we
can link it from C++ bindings wiki page: "For those who prefer not to
deal with C++ exceptions..." etc.
>>> Any preference on returning bool vs. int for status? Why?
>> Because EAGAIN as returned by zmq_send and zmq_recv is not a real
>> error
>> that should be turned into exception, rather it is success status
>> saying
>> "everything is OK, but the action cannot be accomplished immediately,
>> try again later".
>>
> That's fair, I'll return a positive error number, or 0 for success?
I would mimic the C error handling. The less different ways of reporting
errors the better.
Martin
More information about the zeromq-dev
mailing list