Age | Commit message (Collapse) | Author |
|
This patch addresses serveral issues:
1. It gathers message related functionality scattered over whole
codebase into a single class.
2. It makes zmq_msg_t an opaque datatype. Internals of the class
don't pollute zmq.h header file.
3. zmq_msg_t size decreases from 48 to 32 bytes. That saves ~33%
of memory in scenarios with large amount of small messages.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
send/recv now complies with POSIX by using raw buffers instead
of message objects and by returning number of bytes sent/recvd
instead of 0/-1.
The return value is changed accordingly for sendmsg and recvmsg.
Note that related man pages will be fixed in a separate patch.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Devices are basically applications on top of 0MQ stack. They
should reside in separate libraties.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
The old timeout in microsecond haven't been compliant with
POSIX and was impractical at the same time.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
- ctx constructor was calling mailbox_t constructor implicitly
- moved WSAStartup and WSACleanup to be outside constructor/destructor
Signed-off-by: Pieter Hintjens <ph@imatix.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
On systems using GCC 4.0 or newer which support symbol visibility in shared
libraries, use -fvisibility=hidden and only export explict API functions
defined in zmq.cpp. We do not enable -fvisibility on MinGW since this uses a
separate mechanism (__declspec).
Signed-off-by: Martin Lucina <mato@kotelna.sk>
|
|
* maint:
Couple of patches for AIX build
|
|
- RAND_bytes function resides in crypto library
- pollfd on AIX used 'reqevents' instead of events and 'retnevents'
instead of 'revents'
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
ptimeout not properly recalculated after first pass.
Signed-off-by: Chia-liang Kao <clkao@clkao.org>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
zmq_msg_close now empties the message on zmq_msg_close, thus not
leaving random data in the structure, that may be mistaken for
a valid message.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
* maint:
Version macros added
Conflicts:
builds/msvc/platform.hpp
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Macro ZMQ_VERSION represents the current version of 0MQ
Macro ZMQ_MAKE_VERSION(major,minor,patch) allows to create
a representation of the specified version.
The versions can be compared using simple <, >, ==, etc.
operators.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Fix a case where zmq_poll() (poll-based version) could go off into a busy-loop
if no revents are returned and the timeout passed in is zero.
|
|
* Assertion to check that pgm_getaddrinfo is actually returning something.
* Missing pgm_connect call.
* Typo on TOS causing immediate abort.
* Placeholder calls for timeouts whilst continuing spin loop functionality.
* OpenPGM v5 now supports reference counting so remove init checks.
* Duplicate UDP unicast port setting, requires one unicast and one multicast.
* Incorrectly set socket rcvbuf size with sndbuf.
* Replace std::lexicographical_compare of TSI's with long word integer comparisons.
* pgm_socket_t::receive returns -1 on no data.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* maint:
zmq::select_t, zmq_poll(): assert if FD_SETSIZE reached
zmq.h: Fix typo and use of C99 comment
Conflicts:
src/zmq.cpp
|
|
Ensure that 0MQ does not attempt to call select() on more than FD_SETSIZE
file descriptors.
|
|
|
|
|
|
|
|
|
|
Trying to optimize out the case where items_[i]. events is 0 would
result in a bogus pollfds[i]. Similarly in the select()-based impl,
while not strictly necessary it's better to get ZMQ_FD even if
events is 0 since that detects ETERM and friends.
|
|
Rewrite the select()-based zmq_poll() implementation to use
ZMQ_FD and ZMQ_EVENTS.
Also fix some corner cases: We should not pollute revents with
unrequested events, and we don't need to poll on ZMQ_FD at all
if a pollitem with no events set was passed in.
|
|
Dunno where those <TAB>s came from...
|
|
Rewrite zmq_poll() to use ZMQ_FD and ZMQ_EVENTS introduced on the
wip-shutdown branch. Only do the poll()-based version of zmq_poll (), the
select()-based version will not compile at the moment.
|