Commit Graph

657 Commits

Author SHA1 Message Date
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
Constantin Rack
68a7b09cfc Merge pull request #70 from raulcf/master
Updating zmq_ctx_shutdown to zmq_ctx_destroy which is imported in zmq.h
2016-01-20 00:11:25 +01: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
Pieter Hintjens
7f7c83411d Merge pull request #67 from K0n63n/master
New fill constructor for message_t
2015-12-03 09:15:21 +01: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
Constantin Rack
c86eb9ed4d Merge pull request #66 from K0n63n/master 2015-12-03 08:38:41 +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
Pieter Hintjens
ac1c3c3bd8 Merge pull request #65 from K0n63n/master
Correction to pull request #56
2015-11-30 17:15:25 +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
Pieter Hintjens
df5ce1782c Merge pull request #64 from K0n63n/master
Fix two issues in message_t's range constructor
2015-11-30 15:52:06 +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
Constantin Rack
2e22e3fc45 Merge pull request #62 from gdfast/patch-2
Make getsockopt() functions const
2015-11-19 20:05:58 +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
Constantin Rack
bad35bdbfe Merge pull request #59 from dquam/patch-1
Fix usage of zmq_msg_recv and zmq_recvmsg
2015-11-14 09:27:49 +01: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
Pieter Hintjens
4d79066be3 Merge pull request #56 from cmcmurrough/master
fixed type mismatch warnings (size_t to int)
2015-11-06 02:05:22 +01: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
Pieter Hintjens
a4459abdd1 Merge pull request #55 from banburybill/master
Extend C++11 guard to cover remaining use of std::vector data().
2015-11-01 17:34:17 +01: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
Pieter Hintjens
fa2f2c67a7 Merge pull request #51 from ligouras/master
Fix backward compatibility
2015-09-26 20:42:39 +02:00
Spyros Ligouras
05a0256d0e Fix backward compatibility 2015-09-26 13:20:37 +03:00
Richard Newton
a88bf3e0b0 Merge pull request #49 from jens-auer/master
Enhanced const-correctness and made interface more C++-ish
2015-07-06 08:33:38 +01: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
Andrey Sibiryov
ac705f6047 Merge pull request #43 from tolchz/master
Add an rvalue overload for socket_t::send
2015-03-05 20:44:11 -05: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
Andrey Sibiryov
403f5d6e32 Merge pull request #42 from tolchz/master
Fix a misaligned load
2015-03-05 09:31:39 -05: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
Richard Newton
1f05e0d111 Merge pull request #41 from hintjens/master
Problem: zmq_event_t removed in libzmq v4.1
2014-09-11 16:51:03 +01: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
Pieter Hintjens
96e05769d2 Merge pull request #39 from zbierak/master
Fixes backward compatibility with zmq 3.x
2014-08-08 11:58:43 +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
Pieter Hintjens
ce806eec82 Merge pull request #38 from justinboswell/master
Fixed misaligned structure cast
2014-08-06 21:06:29 +02: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
Pieter Hintjens
ee47ae4cdd Merge pull request #36 from cosmoharrigan/patch-1
Fix for #34
2014-03-21 07:40:49 +02: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
Pieter Hintjens
35d6bb5128 Merge pull request #33 from cosmoharrigan/proxy
Add proxy_steerable interface for zmq_proxy_steerable in versions >= 4.0.4
2014-03-18 07:10:29 +01:00
Cosmo Harrigan
9683327efc Add proxy_steerable interface for zmq_proxy_steerable in versions >= 4.0.4 2014-03-17 18:20:51 -07:00
Pieter Hintjens
77b55a27b0 Merge pull request #32 from madevgeny/master
Fixed assert on Win8.1. Thanks to jonwfreeman.
2014-03-14 10:13:21 +01:00
evgeny
2658780e3a Fixed assert on Win8.1. Thanks to jonwfreeman. 2014-03-14 13:06:11 +04:00
Pieter Hintjens
b4b7d9f64f Merge pull request #30 from madevgeny/master
Added parameter to set the max number of sockets.
2014-03-03 18:11:18 +01:00
evgeny
1b7948c6d9 Added parameter to set the max number of sockets. 2014-03-03 19:21:18 +04:00
taurel
2358037407 Merge pull request #27 from jonnydee/master
monitor_t: Avoid compiler warnings resulting from unused method parameters.
2013-07-19 00:09:56 -07:00
Jonny Dee
6c17af22b7 monitor_t: Avoid compiler warnings resulting from unused method parameters. 2013-07-18 23:52:44 +02:00
Richard Newton
495eba101c Merge pull request #26 from mrothe/patch-1
Revert "Fix missing include".
2013-07-17 05:42:00 -07:00
Markus Rothe
830d2ede86 Revert "Fix missing include".
Don't include <string> twice. Another include was introduced in 938e4ab0.

This reverts commit f1fd8f8f6a.
2013-07-17 13:59:06 +02:00
Andrey Sibiryov
f43e83e34e Merge pull request #22 from ricnewton/monitor_updates
Move monitoring functionality out of socket_t and into monitor_t
2013-07-16 06:10:47 -07:00