Gudmundur Adalsteinsson
2d496cb296
Remove ctor draft check
2019-05-15 17:05:34 +00:00
Gudmundur Adalsteinsson
09ab20801a
Problem: message_t ctor for ranges too greedy
...
Solution: Detect ranges with enable_if idiom
2019-05-15 16:49:22 +00:00
Gudmundur Adalsteinsson
0458f7d16c
Problem: Type-safety of poller_t and active_poller_t can be improved ( #318 )
...
Problem: Type-safety of poller_t and active_poller_t can be improved
2019-05-15 08:35:12 +02:00
Simon Giesecke
6f0fb2a3ea
Merge pull request #317 from gummif/gfa/typesafe-send-recv
...
Problem: send/recv functions lack type-safety
2019-05-14 18:30:34 +02:00
Gudmundur Adalsteinsson
88cee88d08
Change recv and send to return optional types
2019-05-10 14:22:04 +00:00
Gudmundur Adalsteinsson
bbba565797
Simplify implementation of buffer creation functions
2019-05-10 13:16:10 +00:00
Gudmundur Adalsteinsson
809acb2dc8
Make buffer constructors and functions constexpr
2019-05-09 22:47:57 +00:00
Gudmundur Adalsteinsson
99d98dd217
Improved enum flags operators and tests
2019-05-09 22:33:49 +00:00
Simon Giesecke
9a60ad3fc8
Apply suggestions from code review
...
Co-Authored-By: gummif <ofpgummi@yahoo.com>
2019-05-08 21:37:14 +00:00
Gudmundur Adalsteinsson
e86bd7fc57
Problem: zmq_msg_init never fails
...
Solution: Mark functions noexcept and assert instead of throwing
2019-05-08 19:52:39 +00:00
Gudmundur Adalsteinsson
3d4be814e8
Problem: send/recv functions lack type-safety
...
Solution: Add functions taking buffers and enum class flags
2019-05-05 22:05:47 +00:00
Simon Giesecke
35ba5bea3b
Merge pull request #312 from gummif/gfa/socket-ref
...
Problem: No type-safe alternatives when polling or needing a reference to a socket
2019-05-02 14:19:40 +02:00
Pierre-Jean Texier
82f6e93dd1
Use C++ cast instead of old style cast
...
This to avoid the following warning with the '-Wold-style-cast' flag enabled :
./zmq.hpp:763:29: warning: use of old-style cast [-Wold-style-cast]
return (size_t) nbytes;
^
./zmq.hpp: In member function ‘size_t zmq::socket_t::recv(void*, size_t, int)’:
./zmq.hpp:793:29: warning: use of old-style cast [-Wold-style-cast]
return (size_t) nbytes;
2019-04-23 23:08:24 +02:00
Gudmundur Adalsteinsson
c6a3529cd1
Problem: No type-safe alternatives when polling or needing a reference to a socket
...
Solution: Introduce a socket_ref that is a non-owning nullable reference to a socket
2019-04-19 22:10:26 +00:00
Simon Giesecke
f65ddd7597
Merge pull request #314 from gummif/gfa/msg-iter
...
Problem: Performance of message_t construction can be improved
2019-04-15 11:02:27 +02:00
Simon Giesecke
961bb4fb46
Merge pull request #313 from gummif/gfa/socket-ctor
...
Problem: socket_t can not be default constructed
2019-04-15 10:58:45 +02:00
Gudmundur Adalsteinsson
cff3a46b73
Problem: Performance of message_t construction can be improved
...
Solution: Use std::copy instead of a raw loop and fix a conversion
warning
2019-04-14 12:40:01 +00:00
Gudmundur Adalsteinsson
4ceabb37b6
Problem: socket_t can not be default constructed
...
Solution: Provide a default constructor
2019-04-14 12:21:30 +00:00
Simon Giesecke
132f7b00df
Merge pull request #309 from gummif/gfa/poller-millis
...
Problem: zmq_poller_wait_all is called with microseconds count
2019-04-07 21:15:59 +02:00
Gudmundur Adalsteinsson
ed63f9adae
Problem: zmq_poller_wait_all is called with microseconds count
...
Solution: Change wait_all parameter type to std::chrono::milliseconds
2019-04-07 10:56:27 +00:00
Gudmundur Adalsteinsson
16f16eeaad
Problem: message_t lacks empty() function
...
Solution: Add function and qualify with nodiscard like std types
2019-04-04 17:55:27 +00:00
Simon Giesecke
5c95a07d72
Merge pull request #306 from gummif/gfa/detect-std
...
Problem: Missing detection of standards greater than C++11
2019-04-04 16:56:16 +02:00
Simon Giesecke
d1e7c538cc
Merge pull request #303 from gummif/gfa/swap
...
Problem: Missing swap functions
2019-04-04 14:51:10 +02:00
Simon Giesecke
5c69a36b95
Merge pull request #304 from gummif/gfa/monitor-move
...
Problem: monitor_t incorrectly deletes socket_t move assignment operator
2019-04-04 09:15:55 +02:00
Gudmundur Adalsteinsson
77575ce705
Problem: Missing detection of standards greater than C++11
...
Solution: Add macros detecting C++14 and C++17
2019-04-03 17:03:39 +00:00
Gudmundur Adalsteinsson
b6a07be512
Problem: monitor_t incorrectly deletes socket_t move assignment operator
...
Solution: Implement a move assignment operator for monitor_t
2019-04-03 14:04:58 +00:00
Gudmundur Adalsteinsson
72f0e1bcba
Problem: message_t move and copy are mutating but take const
...
Solution: Deprecate old functions and add overloads taking non-const
references
2019-04-03 13:56:11 +00:00
Gudmundur Adalsteinsson
83b91c8b7e
Problem: Missing swap functions
...
Solution: Implement for socket_t, context_t, message_t and poller_t
Additionally remove dependency on <functional> by refactoring poller_t
and remove unused <unordered_map> include.
2019-04-03 13:23:17 +00:00
Simon Giesecke
e1fe5e5209
Merge pull request #301 from gummif/gfa/proxy
...
Problem: proxy is not typesafe
2019-04-01 08:28:54 +02:00
Gudmundur Adalsteinsson
3fecadfb86
Problem: Redundant inline specifiers for member functions
...
Solution: Remove specifiers, since they are implicitly inline
2019-03-31 22:39:58 +00:00
Gudmundur Adalsteinsson
1eedfaf9a5
Problem: proxy is not typesafe
...
Solution: Add overloads to proxy and proxy_steerable taking socket_t
objects
2019-03-31 22:30:10 +00:00
Simon Giesecke
9e03629dae
Merge pull request #298 from gummif/gfa/poll-const
...
Problem: poll is mutating by definition
2019-03-28 09:25:19 +01:00
Gudmundur Adalsteinsson
0e55254bd6
Problem: poll is mutating by definition
...
Solution: Remove const qualifiers and const_cast
2019-03-27 20:47:36 +00:00
Gudmundur Adalsteinsson
ff23b4ce95
Problem: Friendship between socket_t and context_t
...
Solution: Not needed since the void* can be obtained from the API of
context_t
2019-03-26 21:58:38 +00:00
Ivan Čukić
7d59f129c8
Removed warnings when compiling with C++11 enabled ( #296 )
...
* Removed warnings when compiling with C++11 enabled
* ZMQ_NOTHROW now means throw() for pre-C++11
2019-03-13 19:18:27 +01:00
trya
16fa983281
Add message_t::get()
...
Uses zmq_msg_get() to get some integer properties on the message.
2019-03-08 16:40:21 +01:00
E. G. Patrick Bos
fbe82b07cd
Add retry of zmq_ctx_destroy in context_t::close()
...
Fixes #171
2018-11-05 20:09:28 +01:00
Pawel Kurdybacha
ae15964907
Problem: Dependency on googletest framework
...
Currently cppzmq as relatively simple and header only library depends on rather
complex unit test framework googletest.
Current issues:
- Googletest requires downloading and building it every time on travis
as cache support is limited there
- Googletest build is signifficant with comparison to cppzmq unittests
total runtime
Solution: Port existing tests to Catch - header only C++ framework and
gain ~20% build speed up on travis.
Why Catch?
It is well know C++ header only testing framework. It works well, it is
being kept up to date and maintainers seem to pay attention to
community's comments and issues.
We can not use Catch2 currently as we still support pre-C++11 compilers.
2018-10-17 15:22:07 +01:00
Simon Giesecke
7d53a04e81
Set version to 4.3.1 to prepare bugfix release
2018-08-21 13:51:17 +02:00
Simon Giesecke
ab09f5da98
Problem: addition of new single-argument message_t introduces ambiguity when calling e.g. socket_t::send
...
Solution: make single-argument constructor explicit
2018-08-21 13:50:02 +02:00
Simon Giesecke
f5963ceade
Update version to 4.4.0 for next development iteration
2018-08-15 17:55:43 +02:00
Joseph Artsimovich
751f27d635
Add support for RADIO/DISH sockets if draft API is enabled
...
This commit introduces new socket_type enumeration values as well
as the following supporting functions:
socket_t::join()
socket_t::leave()
message_t::group()
message_t::set_group()
2018-07-13 16:01:15 +03:00
Ben
a604af95d7
editing "typename I" to "typename T" due to error: expected nested-name-specifier before ‘(’ token
...
on c++ (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
2018-06-10 23:54:20 -07:00
Simon Giesecke
58ffef7190
Problem: no tests for monitor_t::abort
...
Solution: add a test and fix implementation of monitor_t::abort to make it usable
2018-06-05 17:27:32 +02:00
Joseph Artsimovich
d4374cbebe
Add message_t::routing_id() and set_routing_id()
...
Setting a routing id is necessary when sending a message through a
ZMQ_SERVER socket. See [1] for more details.
[1] http://api.zeromq.org/4-2:zmq-socket#toc5
2018-05-19 08:44:41 +03:00
Pawel Kurdybacha
ff3c221516
Problem: whitespace style too restrictive.
...
For header only library like cppzmq, whitespace style inherited from
libzmq is too restrictive.
Solution: relaxing whitespace before parens from always to in control
statements only, increased max column width from 80 to 85 and removing
requirement of whitespace after template keyword.
2018-05-12 17:28:28 +01:00
Giesecke
65ae6b33fd
Problem: poller_t::wait_all and active_poller_t::wait declare int return type but actually return an element count
...
Solution: change return type to size_t, remove a redundant if in consequence
2018-05-12 09:18:46 +02:00
Pawel Kurdybacha
5031278f18
Problem: project files do not follow clang-format
2018-05-11 20:29:15 +01:00
Simon Giesecke
882f5e844c
Problem: extra abstraction layer type poller_t is in zmq.hpp
...
Solution: move to zmq_addon.hpp, rename to active_poller_t, and rename base_poller_t to poller_t
2018-05-11 11:33:53 +02:00
Simon Giesecke
bf47be0a0c
Problem: poller_t adds an abstraction layer on zmq_poller_*
...
Solution: extract base_poller_t from poller_t, which provides a direct mapping of zmq_poller_* to C++ only
2018-05-11 11:02:27 +02:00