Commit Graph

537 Commits

Author SHA1 Message Date
Gudmundur Adalsteinsson
ae570b0835 Apply clang-format 2020-09-07 21:37:44 +00:00
Gudmundur Adalsteinsson
1897488a28 Problem: message_t ctor string inconsistency
Solution: Constuctor taking generic ranges including
string literals includes the null terminated char in
the message. Deprecate function and add overloads
for strings.
2020-09-07 21:37:01 +00:00
Simon Giesecke
7efc9b153f
Merge pull request #432 from or17191/bugfix/socket-move-assignment-not-initializing-ctxptr
Bugfix: socket_t move assignment doesn't initialize ctxptr
2020-09-04 11:33:41 +02:00
serg06
12c3003aa2
Add an example (#423)
I had a really tough time figuring out how to do simple pub-sub with cppzmq; I finally figured it out so I'd like to add it.
2020-09-04 11:23:56 +02:00
Simon Giesecke
4ceb2c8722
Merge pull request #395 from franzhollerer/Issue_#394_fix_cmake_library_dependency
[#394] fixes dependency on libzmq libraries
2020-09-04 11:15:03 +02:00
Franz Hollerer
96ce61fab7 [#394] fixes dependency on libzmq libraries
simplified logic according @tau-mask suggestion
2020-09-04 10:13:17 +02:00
or17191
37e6334d5f Bugfix: socket_t move assignment doesn't initialize ctxptr
Until now, we only assigned the _handle on
`zmq::socket_t::operator=(socket_t&&)`. This manifests when trying to
monitor a socket initialized by that constructor.

To avoid changing the public interface of the socket_t class, we tested
for the specific monitor usecase, since it's the only class accessing
zmq::socke_t::ctxptr.

NOTE: When running the new unit-test without the fix, it might hang on
`zmq_socket_monitor(socket_, NULL, 0)`. We haven't figured out the cause
for that, but we deemed it unimportant (or at least out of scope).
2020-07-18 19:17:19 +03:00
Simon Giesecke
89f4d1b187
Merge pull request #408 from gummif/gfa/ctx-handle
Problem: implicit conversion operators in context
2020-06-19 18:10:38 +02:00
Simon Giesecke
452f736fb7
Merge pull request #416 from gummif/gfa/macro-doc
Problem: Feature checking inconsistencies
2020-06-19 18:02:51 +02:00
Gudmundur Adalsteinsson
1fc3a9a873 Document macro usage and simplify code 2020-05-24 21:34:42 +00:00
Simon Giesecke
c4d4cf75dd
Merge pull request #417 from gummif/gfa/pre-refactoring
Problem: Warnings and duplication
2020-05-22 10:12:44 +02:00
Gudmundur Adalsteinsson
76e6bacc80 Move string literal into variable 2020-05-16 13:22:52 +00:00
Gudmundur Adalsteinsson
6143343edf Fix nodiscard warning 2020-05-16 13:20:48 +00:00
Gudmundur Adalsteinsson
6d71b9b541 Replace checks for C++17 with string view macro 2020-05-16 12:39:54 +00:00
Gudmundur Adalsteinsson
5a3dee082e Problem: implicit conversion operators in context
Solution: add handle() and mark operators as deprecated
2020-05-15 20:38:05 +00:00
Simon Giesecke
a2ef92ef57
Merge pull request #415 from sigiesec/poll-array
Add poll overload accepting std::array
2020-05-15 13:09:57 +02:00
Critical2104
b0e72439bd Deprecate poll overload accepting a long timeout value 2020-05-15 12:58:51 +02:00
Critical2104
8d35b8c934 Added poll() overload accepting std::array 2020-05-15 12:50:22 +02:00
Simon Giesecke
b495021ac8
Merge pull request #404 from gummif/gfa/encoding-endian
Problem: No endian check in encoding
2020-05-15 11:58:04 +02:00
Simon Giesecke
9b824dd36f
Merge pull request #407 from jcfr/fix-macos-10.11.6-default-init-error
Fix error: default initialization of an object of const type
2020-05-14 12:32:05 +02:00
Simon Giesecke
bb321ee46f
Merge pull request #413 from Magikhead/fix-grammatical-error-in-multipart_t-str
Address Grammatical Error in multipart_t:str()
2020-05-14 12:05:14 +02:00
Simon Giesecke
a6ca65cbfc
Merge pull request #401 from gummif/gfa/msg-ub
Problem: UB in message_t constructor
2020-05-14 12:04:22 +02:00
Collin H. Reed
0bba33d91c Address Grammatical Error in multipart_t:str()
Fixes grammatical error in multipart_t:str() function.
2020-05-11 13:20:06 +00:00
Jean-Christophe Fillion-Robin
5e2862320d
Fix error: default initialization of an object of const type
This commit fixes a regression introduced in a3e5b54c3 (Problem: Socket
options lack type-safety (#393)).

It addresses the following error reported when building the project
on macOS 10.11.6.

Errors like the following:

  cppzmq/zmq.hpp:1325:39: error: default initialization of an object of const type 'const affinity_t' (aka 'const integral_option<4, unsigned long long, false>') without a user-provided default constructor

Compiler version:

  Apple LLVM version 8.0.0 (clang-800.0.42.1)
  Target: x86_64-apple-darwin15.6.0
  Thread model: posix
  InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Similar issues:

 * https://github.com/tensorflow/tensorflow/issues/28839
  error: default initialization of an object of const type 'const Subgraph::Identity' without a user-provided default constructor

 * https://bugzilla.mozilla.org/show_bug.cgi?id=1451088
   Clang 3.8: error: default initialization of an object of const type 'const js::jit::ArithPolicy' without a user-provided default constructor

 * https://github.com/googleapis/google-cloud-cpp/issues/1593
   [osx] error: default initialization of an object of const type

Co-authored-by: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
2020-05-05 17:54:34 -04:00
Simon Giesecke
3746e5c2d5
Merge pull request #406 from gummif/gfa/rfc-mme
Problem: Missing reference to rfc
2020-04-25 12:54:37 +02:00
Gudmundur Adalsteinsson
acd7104992 Problem: Missing reference to rfc
Solution: Add link
2020-04-24 20:27:28 +00:00
Gudmundur Adalsteinsson
4784b74c37 Problem: No endian check in encoding
Solution: Always write message part sizes
using network order.
2020-04-18 13:59:42 +00:00
Gudmundur Adalsteinsson
1793a5b586 Problem: UB in message_t constructor
Solution: Add check to guard against passing null to memcpy
2020-04-05 20:25:00 +00:00
Gudmundur Adalsteinsson
a3e5b54c3c
Problem: Socket options lack type-safety (#393)
Solution: Implement a type for each socket option.

Each option has an associated type, therefore they
can't be simply defined as an enum class.

Use new sockopt getter in test util

Add socket option get function for strings and tests
2020-03-24 09:33:50 +01:00
Brett Viren
10431084bb
Problem: lack conversion message_t and multipart_t (#391)
Solution: add encode/decode methods to multipart_t giving a codec compatible with the CZMQ equivalent.
2020-03-20 10:59:15 +01:00
Simon Giesecke
2f1ab4c2a7
Merge pull request #390 from gummif/gfa/multipart-cpp11
Problem: send_multipart fails on old gcc versions
2020-03-07 15:55:57 +01:00
Simon Giesecke
c7766c083a
Merge pull request #389 from SylvainCorlay/wrap-find-package-zeromq
Wraping calls to find_package
2020-03-07 15:04:22 +01:00
Gudmundur Adalsteinsson
5ecbf86bcf Problem: send_multipart fails on old gcc versions
Solution: remove template type checks if there is only partial C++11 support
2020-03-07 13:22:01 +00:00
Sylvain Corlay
9cb042e711 Also skip if libzmq-static is defined 2020-03-05 13:59:45 +01:00
Sylvain Corlay
8d731ea900 Wrap find_package 2020-03-05 12:26:15 +01:00
Gudmundur Adalsteinsson
5999e5adc7
Problem: Macros not defined in older versions (#386)
* Problem: Macros not defined in older versions

Solution: Guard usage of libzmq macros

* Test older version of libzmq with C++11 or later

* Use a slightly newer libzmq version
2020-02-21 11:29:12 +01:00
Gudmundur Adalsteinsson
324b11f239
Problem: Context lacks typesafe options
Solution: Define an enum class for the context options

Co-Authored-By: Simon Giesecke <simon.giesecke@gmail.com>

Co-authored-by: Simon Giesecke <simon.giesecke@gmail.com>
2020-02-07 15:39:58 +01:00
Luca Boccassi
4bd01bc0ef
Merge pull request #380 from zeromq/reformat
Reformat all files with clang-format
2020-01-28 10:37:30 +00:00
Simon Giesecke
b6c79eb0c8 Reformat all files with clang-format 2020-01-28 11:11:31 +01:00
Gudmundur Adalsteinsson
47969cfdcf Problem: shutdown() missing for context_t (#377)
Solution: Add shutdown(). This function is required
for clean termination of the zmq context in multi-threaded
applications where sockets are used in threads. In particular
if blocking operation are used and if sockets can be created
at any time.

* Improve tests and documentation
2020-01-27 08:31:46 +01:00
Simon Giesecke
70d059bd0a
Increase version number to 4.7.0 after release to prepare for next development iteration 2020-01-17 17:32:09 +01:00
Simon Giesecke
8d5c9a8898
Merge pull request #374 from gummif/patch-2
Problem: Invalid 32bit issues when using Conan
2020-01-16 09:30:11 +01:00
Gudmundur Adalsteinsson
ff994d9676 Improved comment on workaround 2020-01-15 18:14:26 +00:00
Gudmundur Adalsteinsson
615380b485
Problem: Invalid 32bit issues when using Conan
Solution: Remove architechture checks from cmake version file

Since this is a header only library there is no need to check for 32 vs 64bits.

See similar problem: https://github.com/onqtam/doctest/pull/225
2020-01-15 10:34:48 +00:00
Simon Giesecke
bd27f24960
Merge pull request #373 from gummif/gfa/tostring
Problem: message_t to string is hard
2020-01-09 14:33:13 +01:00
Gudmundur Adalsteinsson
4f9c2ea519 Problem: message_t to string is hard
Solution: add to_string() function.
2020-01-07 19:54:47 +00:00
Simon Giesecke
de07119a92
Merge pull request #370 from gummif/gfa/multipartn
Problem: Missing recv multipart to fixed buffers
2019-12-07 13:55:52 +01:00
Gudmundur Adalsteinsson
30fdfe0287 Simplify code by trusting the compiler 2019-12-07 12:06:15 +00:00
Simon Giesecke
0f8601c9eb
Merge pull request #371 from gummif/gfa/move-ctors
Problem: Move assigned objects still alive
2019-12-07 10:59:18 +01:00
Gudmundur Adalsteinsson
d3abe06ba3 Problem: Move assigned objects still alive
Solution: Close context/socket if move assigned to
2019-12-05 20:17:43 +00:00