Commit Graph

703 Commits

Author SHA1 Message Date
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
Simon Giesecke
d34f192b37
Merge pull request #305 from gummif/gfa/message-move-copy
Problem: message_t move and copy are mutating but take const
2019-04-04 09:12:11 +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
Simon Giesecke
a89e0d7b81
Merge pull request #302 from gummif/gfa/inline-mem-fn
Problem: Redundant inline specifiers for member functions
2019-04-01 08:27:22 +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
Simon Giesecke
47df7b0cb9
Merge pull request #299 from gummif/gfa/remove-friend
Problem: Friendship between socket_t and context_t
2019-03-27 11:58:31 +01: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
Simon Giesecke
91fd0b5e0e
Merge pull request #297 from trya/master
Unit tests for message_t::get()
2019-03-14 20:50:39 +01:00
trya
a91522f65e Unit tests for message_t::get()
Testing ZMQ_SHARED property only, since other properties (ZMQ_MORE and
ZMQ_SRCFD) depend on socket operations.
2019-03-14 14:25:50 +01: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
Simon Giesecke
0fd9bea760
Merge pull request #295 from trya/master
Add message_t::get()
2019-03-13 11:38:49 +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
Luca Boccassi
bfdc7885b8
Merge pull request #292 from sigiesec/build-zeromq-4-3-1
Update default libzmq version to 4.3.1
2019-02-04 17:08:20 +00:00
Simon Giesecke
4043617afe Problem: test cases for error behaviour of (active_)poller_t failing with libzmq 4.3.x
Solution: adapt test cases to changed behaviour
2019-02-04 15:25:35 +01:00
Simon Giesecke
c5fe9d1c27 Problem: current libzmq is not tested
Solution: update default libzmq version to 4.3.1, and add explicit test for 4.2.5, update README accordingly
2019-02-04 10:32:46 +01:00
Simon Giesecke
663944180f
Merge pull request #286 from kurdybacha/ctest_integration
Problem #268: CTest output without tests details
2019-01-28 09:53:14 +01:00
Pawel Kurdybacha
6982fb7017 Problem #268: CTest output without tests details
Solution: Added integration with CTest to existing unit test framework
based on Catch. ctest -v returns list of run tests now.

Changes:

* downloading and using Catch cmake modules that `unit_tests
--list-test-names-only` for add_test internally
2019-01-23 08:48:11 +00:00
Simon Giesecke
6a4fe1fdb2
Merge pull request #285 from kurdybacha/pthread_link_issue
Problem #284: tests and pthread link error with with gcc
2019-01-23 08:32:06 +01:00
Pawel Kurdybacha
6a6aebb845 Problem #284: test pthread link error with with gcc
Solution: Use Threads cmake module as suggested in this thread:
https://cmake.org/pipermail/cmake/2016-February/062729.html

I was able to reproduce with gcc 8.2.1 and cmake 3.13.2.
2019-01-22 20:55:06 +00:00
Simon Giesecke
d641d1de4c
Merge pull request #275 from egpbos/retry_ctx_destroy
Add retry of zmq_ctx_destroy in context_t::close()
2018-11-08 11:20:33 +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
Simon Giesecke
c444c5d5e2
Merge pull request #268 from kurdybacha/header_only_test_framework
Problem: Dependency on googletest framework
2018-10-17 18:14:13 +02: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
tangfu
5af24314c3 add front and back (#269)
* add front and back

i'll get the last message in some situations,but have to do like this :
```
multimsg msgs;
auto msg = msgs[msgs.size() - 1];
func(msg.size());
auto *msg = msgs.end() - 1;
```
but, std::queue have some method 'front' and 'back'. so maybe i can simply do this ? :
```
multimsg msgs;
auto msg = msgs.back();
```

* add test for front and back
2018-10-17 08:41:21 +01:00
Luca Boccassi
1547b6ec22
Merge pull request #267 from ffontaine/master
fix install without static libzmq
2018-09-21 00:03:03 +01:00
Fabrice Fontaine
bffb0eda34 fix install without static libzmq
If libzmq is only available as a shared library and not a static one
then cmake fails with:

-- CMake libzmq package not found, trying again with pkg-config (normal install of zeromq)
-- Found PkgConfig: /home/fabrice/buildroot/output/host/bin/pkg-config (found version "0.28")
CMake Error at CMakeLists.txt:20 (message):
  ZeroMQ was not found, neither as a CMake package nor via pkg-config

This is due to the fact that ZeroMQ_FOUND is not set to ON even if
ZEROMQ_LIBRARY is TRUE:

if(ZeroMQ_LIBRARY AND ZeroMQ_STATIC_LIBRARY)
    set(ZeroMQ_FOUND ON)
endif()

So change AND by OR as suggested in
https://github.com/zeromq/cppzmq/issues/266

Fix #266

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2018-09-20 23:28:24 +02:00
Luca Boccassi
bcb59608c8
Merge pull request #265 from sigiesec/fix-breaking-ambiguity
Problem: addition of new single-argument message_t introduces ambigui…
2018-08-22 13:57:35 +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
120c7ae3f2 Problem: no test case for previously existing send functionality
Solution: added test case
2018-08-21 13:50:02 +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
Luca Boccassi
8ff83257ac
Merge pull request #264 from sigiesec/start-4-4-0
Update version to 4.4.0 for next development iteration
2018-08-15 17:17:20 +01:00
Simon Giesecke
f5963ceade Update version to 4.4.0 for next development iteration 2018-08-15 17:55:43 +02:00
Luca Boccassi
213da0b04a
Merge pull request #256 from Tulon/radio_dish_support
Add support for RADIO/DISH sockets if draft API is enabled
2018-07-15 12:06:19 +01: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
Luca Boccassi
73f171abb2
Merge pull request #255 from kurdybacha/issue_fix
Problem: #209 and monitor_t tests not event driven
2018-07-05 09:05:57 +01:00
Pawel Kurdybacha
57454dff4b Problem: monitor_t tests not event driven
Solution: instead of waiting for fixed amount of time for events, react
as soon as events are triggered.

- Total running time of unittest reduced 10x (from ~300ms to 30ms).
- Reduced code duplication by reusing testutil's constructs.
2018-07-05 00:23:31 +01:00
Pawel Kurdybacha
4a066be66a Problem: #209 cppzmq fails with cmake 3.6.3 and above
Solution: remove problematic cmake lines as they seem to be not necessary.
2018-07-05 00:12:34 +01:00
Simon Giesecke
837c0c9a97
Merge pull request #250 from esromneb/master
editing "typename I" to "typename T" due to error: expected nested-na…
2018-06-15 08:55:50 +02: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
Luca Boccassi
97d2cb2498
Merge pull request #249 from sigiesec/add-monitor-tests
Add first tests for monitor_t and fix monitor_t::abort
2018-06-05 16:39:58 +01:00