Commit Graph

103 Commits

Author SHA1 Message Date
Simon Giesecke
af9a92e6a8 Revert "Revert "Fix compile error for libzmq 4.2.1 and 4.2.2"" 2017-10-10 13:42:50 +02:00
Simon Giesecke
8ec71c146a Revert "Fix compile error for libzmq 4.2.1 and 4.2.2 (#161)"
This reverts commit a1000a0dd6.
2017-10-09 16:10:44 +02:00
Frank van Kesteren
a1000a0dd6 Fix compile error for libzmq 4.2.1 and 4.2.2 (#161)
* Fix compile error for libzmq 4.2.1 and 4.2.2

When defined ZMQ_BUILD_DRAFT_API=1, you receive an error "'on_event_handshake_succeeded' was not declared in this scope"... which is correct for versions 4.2.1 and 4.2.2.
Function was renamed from 'on_event_handshake_succeed', fixed this by updating the function name.
2017-10-09 15:02:00 +01:00
Simon Giesecke
4a08086815 Problem: inconsistent symbol naming for ZMQ_VERSION>=4.2.3
Solution: use new on_event_* methods
2017-10-09 14:16:40 +02:00
Ivan Čukić
e93e9f9715 Removing ambiguous overload of poll
There are two overloads of `poll` - one that has `-1` as the default value for the timeout, and one that does not have the timeout argument (which calls the previous one with -1 for the timeout). This makes it ambiguous for the compiler when `poll` is called without the timeout.

This patch removes the second overload as it is not needed since the first one already covers the same case.
2017-09-24 11:24:29 +02:00
sigiesec
0cb94dc32d Problem: inconsistency DRAFT APIs in libzmq 4.2.x
Solution: distinguish cases for libzmq 4.2.0, 4.2.1/4.2.2 and 4.2.3
2017-09-20 12:15:14 +02:00
Lingpho
af523fad7d Fix #147 issuse (#150)
* add more DRAFT API, fix the #147 issue
2017-08-31 20:30:43 +01:00
Simon Giesecke
a94e648495 Revert "Fix rvalue for socket::send() on EHOSTUNREACH" 2017-08-29 11:15:03 +02:00
Luca Boccassi
d9f0f016c0 Problem: copyright years out of date
Solution: update them
List the ZeroMQ community as a shorthand for the full list of authors
as it can be found via git log
2017-07-31 14:30:55 +01:00
juseless
449a0141fb Update zmq.hpp
Line 706 constructor was:   
monitor_t() : socketPtr(NULL), monitor_socket{NULL} {}
but should be:
monitor_t() : socketPtr(NULL), monitor_socket(NULL) {}

Note change of bracket types for monitor_socket parameter.
2017-07-16 20:01:08 -04:00
a4z
d4da63fed6 Problem: monitor_t::monitor function is blocking
This does not allaw to use monitor_t without a thread.
What is often OK but sometimes not.

Solution:
keep existing interface but add a non blocking alternative.
2017-07-14 16:03:04 +02:00
a4z
d88414e435 Problem: uninitialized context pointer in socket_t move constructor
This can cause monitor_t to crash if used with a socket that was
constructed via the move constructor.

Solution: initialise the context pointer variable ctxptr in the move
constructor.
2017-07-03 10:35:19 +02:00
Marc Sune
5363388fc5 Fix rvalue for socket::send() on EHOSTUNREACH
During introduction of EHOSTUNREACH, missing mapping between
EHOSTUNREACH errno and false/0 return code for socket's send()
calls was missing, throwing an exception.

To be consistent with the rest of wrappers (e.g. DONTWAIT), fix it
by handling this errno as a regular EAGAIN, and let the caller use
errno/zmq_errno() to branch on their code.
2017-06-07 12:09:02 +02:00
bjovke
46fc0572c5 Code formatting, sorry... 2017-04-09 22:16:35 +02:00
bjovke
d9a0fde681 Allow for empty handler parameter (empty std::function()) in call to zmq::poller_t::add(). 2017-04-09 21:34:16 +02:00
John Gornowich
2def369043 update directive for ZMQ_MAKE_VERSION check against zmq_msg_gets method 2017-02-20 08:04:02 -05:00
Pawel Kurdybacha
bafbf2889d poller_t class based on new libzmq poller API 2017-01-31 21:57:51 +00:00
Vincent Tellier
c128d816d9 Added new monitor event since #2227
These are wrapped in DRAFT section.
2017-01-02 06:58:56 +01:00
laplaceyang
eff9bcb6e8 misuse of zmq_send_const 2016-12-15 20:48:24 +08:00
Rider Woo
3431f6882a fix build error with libzmq-3.2.5 (#103)
error zmq_send_const undefined and zmq_msg_gets undefined
2016-12-12 10:30:09 +01:00
Johan Mabille
54414b9d08 fixed warnings in c++11 poll functions 2016-12-09 14:00:44 +01:00
laplaceyang
404b97212b reduce copy 2016-12-08 20:58:38 +08:00
Mateusz Piotrowski
1c8da7cd8d Fix message_t::gets.
- Add a missing underscore.
 - Remove const as msg is passed by reference.
2016-11-15 23:43:15 +01:00
Mateusz Piotrowski
570ff93ea9 Create a binding for zmq_msg_gets.
Additionally, I've changed some tabs to spaces and remove trailing
spaces.
2016-11-15 22:07:00 +01:00
Philip Top
95ce4f2bc2 Update zmq.hpp
add const to what function of error_t
2016-11-06 07:38:16 -08:00
Philip Top
a3f166e5cd added conditional C++11 definitions to match visual studio 2015 2016-10-22 06:24:35 -07:00
Serge Medvedev
8214a500d9 Assertion in dtor of context_t doesn't fail if close method has already been called 2016-09-19 10:27:52 +03:00
Yorick de Wid
bd288a55c1 Remove explicit cast on void pointer operator 2016-07-18 16:51:24 +02:00
Harald Nøkland
e7c2093581 Class for multipart messaging
This class handles multipart messaging. It is the C++ equivalent of zmsg.h, which is part of CZMQ (the high-level C binding). Furthermore, it is a major improvement compared to zmsg.hpp, which is part of the examples in the ØMQ Guide. Unnecessary copying is avoided by using move semantics to efficiently add/remove parts.
2016-04-06 14:20:10 +02:00
raulcf
014628cb34 Updating zmq_ctx_shutdown to zmq_ctx_ctx which is imported in zmq.h 2016-01-19 17:39:26 -05:00
Harald Nøkland
fdd9d2d5f0 New fill constructor for message_t
New fill constructor: message_t(const void *data, size_t size). Constructs a new message of the given size and copies the data to the message body. In addition a new rebuild() function that does the same for an already constructed object
2015-12-03 08:43:24 +01:00
Harald Nøkland
18b5870caa Fix warning 4996 in msvc debug build
When making a debug build with msvc, the range constructor of message_t caused warning 4996: 'std::_Copy_impl': Function call with parameters that may be unsafe. It is actually safe to do what's done in the constructor, so the workaround is to mimic what std::copy does, whitout the range check.
2015-12-03 08:23:39 +01:00
Harald Nøkland
308239d758 Correction to pull request #56
A better/nicer solution to fix the type mismatch warnings (size_t to int). Working with size_t as long as possible and doing the static_cast right before calling the zmq_poll() function of libzmq
2015-11-30 16:55:51 +01:00
Harald Nøkland
4815c80aed Fix two issues in message_t's range constructor
Fix the following two problems in message_t's range constructor: (1) The range constructor passed the wrong size for iterator-types larger than one byte, (2) The range constructor didn't compile for const-iterators.
2015-11-30 15:36:42 +01:00
gdfast
c1e8ac0f19 Make getsockopt() functions const
Make the socket_t::getsockopt() functions (which wrap zmq_getsockopt() ) const because they should only access and not modify socket state.
2015-11-19 12:37:07 -05:00
dquam
baeaebc1cf Fix usage of zmq_msg_recv and zmq_recvmsg
The zmq_msg_recv() function takes the message, socket, and flags while the zmq_recvmsg() function takes the socket, message. This commit addresses that difference.
2015-11-12 15:35:16 -06:00
Constantin Rack
7c3d374ff8 Merge pull request #57 from gdfast/patch-1
Avoid using deprecated function zmq_recvmsg
2015-11-10 21:20:22 +01:00
Constantin Rack
fadb37e4a7 Merge pull request #52 from revaultch/master
Fixes assertion error: src/mutex.hpp:123
2015-11-10 21:20:11 +01:00
gdfast
5989203558 Avoid using deprecated function zmq_recvmsg
The zmq_recvmsg() function has been replaced by zmq_msg_recv() since version 3.2.0, and has since been marked as deprecated.
See: https://raw.githubusercontent.com/zeromq/zeromq3-x/master/NEWS
Replace our uses of the old function (which was in monitor_t::monitor()) with the more modern function call. Support backwards compatibility with a #DEFINE macro for versions of zmq preceeding 3.2.0
2015-11-10 15:14:21 -05:00
Christopher D. McMurrough
0feecde95c fixed type mismatch warnings (size_t to int)
MSVC complains about conversion of size_t to int.  The size_t typedef is
defined as an unsigned __int64 on Win64, which triggers the warning. Two
such instances were fixed with static_cast<int>(size_t)
2015-11-05 17:21:24 -06:00
Jim Hague
87b12c806a Extend C++11 guard to cover remaining use of std::vector data().
Now compiles without error with a pre-C++11 compiler (g++-3.3).

Fixes #53
Please enter the commit message for your changes. Lines starting
2015-11-01 16:08:56 +00:00
Urs Keller
971092e472 Fixes assertion error, when destroing ctx while creating a socket from a different thread: ./src/mutex.hpp:123 2015-10-02 16:32:36 +02:00
Spyros Ligouras
05a0256d0e Fix backward compatibility 2015-09-26 13:20:37 +03:00
jens
34c8e4395c Fixed some const-correctness issues
C++11-ified some stuff:
overloads with C++11 types, nothrow

Added some template methods to work with messages and sockets
2015-07-05 13:29:03 +02:00
Todd Neal
67b216681d Add an rvalue overload for socket_t::send
This lets you create functions that return message_t's by value, and
pass them to send() with no copy.
2015-03-05 16:06:36 -06:00
Todd Neal
f141cf5bfc Fix a misaligned load
The issue was discovered by clang:

zmq.hpp:504:34: runtime error: load of misaligned address 0x2b38beb224b2
for type 'int32_t' (aka 'int'), which requires 4 byte alignment

I modified the loads of both event and value to be consistent.
2015-03-05 08:19:13 -06:00
Pieter Hintjens
7f6cc85df8 Problem: zmq_event_t removed in libzmq v4.1
Solution: define this if we need it, so that caller can use it
on all versions of libzmq.

Fixes #40
2014-09-11 08:32:58 +02:00
zbierak
a819813095 Fixes backward compatibility with zmq 3.x
The code added in 'Fixed misaligned structure cast' implicitly assumes zmq 4.x, since it relies on new fields in zmq_event_t structure. This commit re-introduces the previous code if zmq < 4.x is detected.
2014-08-08 08:18:16 +00:00
Justin Boswell
0c0f3ae451 Fixed misaligned structure cast
zmq_event_t is often padded (due to a uint16_t as its first member), and thus you cannot re-interpret bytewise packed message buffers as zmq_event_t, it must be read manually. This was resulting in the value always being garbage, which is troublesome if you wish to inspect a SOCKET, for example.
2014-08-06 14:49:59 -04:00
Cosmo Harrigan
04d2897605 Fix for #34
As of right now, the steerable proxy functionality requires version 4.1.0.
2014-03-20 22:35:50 -07:00