Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bringing master branch to 4.2 #202

Merged
merged 332 commits into from
Nov 2, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
332 commits
Select commit Hold shift + click to select a range
0e585fc
stopped using build vars for build numerics
Aug 12, 2014
c0aa362
reduce large message size to speed tests, still 1gb
Aug 12, 2014
1ff6db4
Merge pull request #2 from datasift/develop
benjamg Aug 12, 2014
cdc31eb
Beautification to remove MSVC warning 4800 'int' : forcing value to b…
mfsv Aug 13, 2014
50c7d2b
Merge pull request #59 from mfsv/develop
benjamg Aug 13, 2014
d50e40f
Merge branch 'develop' of github.com:zeromq/zmqpp into develop
Aug 13, 2014
ba1b9bd
new 4.0 socket/context options, breaking change of add -> add_raw, ad…
Aug 13, 2014
bfd3331
Added basic monitoring support for sockets. Fixes #4
Aug 13, 2014
7649a28
added basic curve wrappers
Aug 13, 2014
2b2ede2
Changes for 4.1
benjamg Aug 13, 2014
11fd1cc
Update CHANGES.md
benjamg Aug 13, 2014
6b22c50
Add wrapper around zmq_z85_decode and zmq_z85_encode
xaqq Aug 13, 2014
ed4b9bf
Add documentation to zmqpp::z85
xaqq Aug 13, 2014
0250339
Merge pull request #61 from xaqq/z85
hintjens Aug 14, 2014
5f5a1b0
Merge branch 'develop' of github.com:zeromq/zmqpp into develop
Aug 20, 2014
c7c978c
updated to use alternative x85 implemention
Aug 20, 2014
5427ffa
Merge remote-tracking branch 'origin/develop' into develop
Aug 20, 2014
263ca4b
Merge pull request #60 from benjamg/develop
hintjens Aug 20, 2014
ccc0dfa
This fixes the build against ZMQ 3.2. It also make Travis test the bu…
xaqq Sep 11, 2014
786b087
Merge pull request #63 from xaqq/fix_build_3.2
hintjens Sep 11, 2014
1c7a09c
Fix compilation with gcc < 4.4
jerome-pouiller Sep 19, 2014
2f3310e
Merge pull request #64 from jerome-pouiller/develop
hintjens Sep 19, 2014
425c0a5
Fix the build error created by #64 because of a missing header inclusion
xaqq Sep 21, 2014
9c2010e
Merge pull request #65 from xaqq/fix_build_enum
hintjens Sep 21, 2014
5dde070
Add move semantic to the zmqpp::actor class
xaqq Sep 27, 2014
b15631f
Add reactor and actor to zmqpp.hpp ; Update actor test
xaqq Sep 27, 2014
0ecf5c3
Merge pull request #67 from xaqq/actor_move
hintjens Sep 27, 2014
f3f295f
Added CMakeLists.txt to use with CMake builds.
gyulalaszlo Oct 2, 2014
53a9ff8
CMakeLists.txt typo fix: properly use LIBZMQPP_SOURCES to build the s…
gyulalaszlo Oct 2, 2014
3b58eb5
CMakeLists.txt fix: fix includes
gyulalaszlo Oct 2, 2014
7e7220c
Merge pull request #68 from gyulalaszlo/build_with_cmake
xaqq Oct 3, 2014
e3dfdaa
Few small changes:
xaqq Oct 5, 2014
674fc23
Merge pull request #70 from xaqq/cleanup_pr
hintjens Oct 5, 2014
a430d80
Expose the read_cursor for zmqpp::message.
gyulalaszlo Oct 9, 2014
9082ab8
Merge pull request #71 from gyulalaszlo/expose-message-read-cursor
hintjens Oct 9, 2014
542f1dd
Add test to zmqpp::message move constructor/assignment operator.
xaqq Oct 17, 2014
662feac
Problem: zmqpp::message move-constructor and operator= misbehave.
xaqq Oct 17, 2014
78f070b
Merge pull request #74 from xaqq/message_move
hintjens Oct 17, 2014
2a48f38
Fix compilation issue against libzmq master.
xaqq Oct 17, 2014
2c5e2b6
Add support for new ZMQ_POLLPRI flag.
xaqq Oct 17, 2014
3da880e
Merge pull request #75 from xaqq/pollpri
hintjens Oct 17, 2014
b0c89dd
Added lpthread in TEST_LIBS
pin3da Oct 27, 2014
18c4e5f
Merge pull request #76 from pin3da/develop
hintjens Oct 27, 2014
0b2ca56
Rename htonll/ntohll so zmqpp can build in Yosemite.
crheckman Nov 3, 2014
1ffa00f
Merge pull request #77 from crheckman/develop
hintjens Nov 4, 2014
9ba540c
Yosemite build alternative fix.
xaqq Nov 5, 2014
7dd3568
Merge pull request #78 from xaqq/yosemite-fix
hintjens Nov 5, 2014
d1d59a0
Create zap_request.hpp
meprem Nov 26, 2014
f8fd003
Create zap_request.cpp
meprem Nov 26, 2014
a7f9288
Create auth.hpp
meprem Nov 26, 2014
fd3df1a
Create auth.cpp
meprem Nov 26, 2014
2f561f1
Create test_auth.cpp
meprem Nov 26, 2014
f7b0d8d
Added support for CURVE security examples
meprem Nov 26, 2014
3fc03a7
The Grasslands Pattern
meprem Nov 26, 2014
e33f676
The Strawhouse Pattern.
meprem Nov 26, 2014
725ab98
The Woodhouse Pattern
meprem Nov 26, 2014
35a4ad9
The Stonehouse Pattern
meprem Nov 26, 2014
2f2f2d1
The Ironhouse Pattern
meprem Nov 26, 2014
7e3e6a9
The Ironhouse2 Pattern
meprem Nov 26, 2014
0f70920
Update AUTHORS
meprem Nov 26, 2014
456cea8
Added ZMQPP security
meprem Nov 26, 2014
9e679d1
Added support for CURVE security
meprem Nov 26, 2014
cd29ec0
Update auth.hpp
meprem Nov 26, 2014
d3a8dd7
Update zap_request.hpp
meprem Nov 26, 2014
a9522de
Travis build error fix.
meprem Nov 26, 2014
4b78926
Travis build error fix.
meprem Nov 26, 2014
6b99361
Travis build error fix.
meprem Nov 26, 2014
876ae58
Update ironhouse2.cpp
meprem Nov 26, 2014
495c1e6
Travis build error fix.
meprem Nov 26, 2014
6534a87
Travis build error fix.
meprem Nov 26, 2014
5d14894
Travis build error fix.
meprem Nov 26, 2014
aa8d50f
Travis build error fix.
meprem Nov 26, 2014
27911e3
Merge pull request #80 from meprem/develop
hintjens Nov 26, 2014
3ad6882
Added libsodium installation
meprem Nov 27, 2014
a2e9e87
libsodium
meprem Nov 27, 2014
f0f7f1f
Merge pull request #81 from meprem/patch-1
hintjens Nov 27, 2014
56f178b
Problem: libsodium installation required for security is missing
meprem Nov 27, 2014
1f8ca24
Problem: BOOST_CHECK_EQUAL("Hello", response.get(0)); failing.
meprem Nov 27, 2014
ac7b201
Merge pull request #83 from meprem/develop
hintjens Nov 27, 2014
b0dc853
Problem: Extra libsodium build instruction in install section
meprem Nov 28, 2014
af1835c
Problem: Makefile issue with lsodium
meprem Nov 28, 2014
e0b5235
Problem: Makefile issue with lsodium
meprem Nov 28, 2014
9df5737
Merge pull request #84 from meprem/patch-3
hintjens Nov 28, 2014
006b85f
Merge pull request #86 from meprem/develop
hintjens Nov 28, 2014
eb0428e
Problem: Patch-5 is corrupted
meprem Nov 28, 2014
ba6941a
Problem: Patch-5 is corrupted
meprem Nov 28, 2014
63df2aa
Merge pull request #89 from meprem/patch-6
hintjens Nov 28, 2014
cdabbb8
Formatting.
xaqq Nov 28, 2014
8022976
Re-enable regression testing against libzmq 3.2
xaqq Nov 28, 2014
90c8590
Check for curve capability at runtime to skip tests if needed.
xaqq Nov 28, 2014
f471c32
Disable test_auth against libzmq < 4
xaqq Nov 28, 2014
d5aee3b
Remove method comments from .cpp.
xaqq Nov 28, 2014
ee40dae
Fix use of uninitialized value.
xaqq Nov 28, 2014
195cde9
disable zap/auth stuff for libzmq < 4
xaqq Nov 28, 2014
81e7e8c
Fix zap_requests's accessors.
xaqq Nov 28, 2014
902e900
Doxygen config update (and file renaming).
xaqq Nov 28, 2014
4a41c02
Merge pull request #90 from xaqq/regression-test
hintjens Nov 28, 2014
b71bbbc
Prevent use of uninitialized variable.
xaqq Nov 29, 2014
ac91149
Merge pull request #92 from zeromq/uninit-var
hintjens Nov 29, 2014
05d8f77
CMake can depend on libzmq cmake.
xaqq Dec 15, 2014
2571b51
Edit link library.
xaqq Dec 16, 2014
1215790
Merge pull request #94 from xaqq/update-cmake
hintjens Dec 16, 2014
821a066
Fix build in some rare case.
xaqq Dec 17, 2014
7164dc1
Merge pull request #95 from xaqq/build-fix
hintjens Dec 17, 2014
14ba51d
Merge pull request #96 from xaqq/develop
hintjens Dec 17, 2014
8f09c8e
Doxygen configuration
xaqq Dec 17, 2014
fadf649
Use `const std::string &` instead of std::string to avoid copying
xaqq Dec 17, 2014
09e8ad7
Rework travis build script to take advantage of env
xaqq Dec 17, 2014
edf09b4
better probing of static libzmq
xaqq Dec 18, 2014
aa215c9
Merge pull request #97 from xaqq/travis
hintjens Dec 21, 2014
640f1e7
Add a message::get_property() method to retrieve metadata.
xaqq Jan 11, 2015
4437c9f
Switch to MPLv2 license.
xaqq Jan 11, 2015
2f00129
Merge pull request #102 from xaqq/mpl2
hintjens Jan 11, 2015
82820df
zmqpp::auth will now set the user-id in PLAIN and CURVE mode.
xaqq Jan 11, 2015
ef0d3db
Remove support for ZMQ_IDENTITY_FD.
xaqq Jan 11, 2015
cfa9067
Prevent use of unitilized variable + rename to more explicit name
xaqq Jan 11, 2015
f64cb64
Merge pull request #101 from xaqq/zap_improv
hintjens Jan 12, 2015
b77a8c5
Add support for building and installing appriately named libraries on…
dmbryson Jan 15, 2015
e4c517c
Merge pull request #103 from brysonda/develop
hintjens Jan 15, 2015
260a930
Compilation fix for zmqpp-client on Mac OS X 10.10
Jan 18, 2015
cd36cdb
Merge pull request #104 from radupopescu/develop
hintjens Jan 18, 2015
752ae26
Update requirements.
xaqq Feb 8, 2015
4cd96c5
Merge pull request #106 from xaqq/requirements
hintjens Feb 8, 2015
9b32fea
add -> add_raw in the client to avoid corruption
benjamg Mar 30, 2015
ced816d
add cstdlib header to ensure EXIT_FAILURE presence
chickenkiller May 15, 2015
72668f6
Merge pull request #109 from chickenkiller/develop
benjamg May 15, 2015
55553a6
VC2013 compile fix (no support for constexpr).
rcane May 24, 2015
f55ef56
Merge pull request #110 from rcane/develop
xaqq May 25, 2015
9256117
Improved the api dealing with file descriptors.
rcane May 25, 2015
140f542
Merge pull request #112 from rcane/develop
xaqq May 25, 2015
4224451
Removed code duplication in poller.
rcane May 26, 2015
5d7ae8b
poller::add() takes a const reference now.
rcane May 26, 2015
405af97
Merge pull request #113 from rcane/develop
hintjens May 26, 2015
4c1e075
Moved some consts to improve consistency.
rcane May 26, 2015
61bdc1d
Merge pull request #114 from rcane/develop
hintjens May 26, 2015
dcf3cb8
Silenced some VC++ compiler warnings.
rcane May 26, 2015
11fe597
Merge pull request #115 from rcane/develop
xaqq May 26, 2015
859f7a3
Fix error in test.
xaqq Jun 1, 2015
c126ead
Merge pull request #117 from xaqq/fix_test
benjamg Jun 2, 2015
a2a9fef
Fixes #119 (VS build problem)
xaqq Jun 17, 2015
1b2ebef
Merge pull request #120 from xaqq/fix_119
hintjens Jun 17, 2015
9af5490
Doxygen mainpage + comment formatting update
xaqq Dec 27, 2014
b7cb846
Version 4.1.2
xaqq Jun 17, 2015
4784589
Merge pull request #122 from xaqq/doxygen
hintjens Jun 17, 2015
3322139
Problem: No Copy behavior could be improved.
xaqq Jun 18, 2015
20ba11b
Deprecated macros + bugfix add_nocopy.
xaqq Jun 21, 2015
af0036d
Merge pull request #124 from xaqq/nocopy
hintjens Jun 22, 2015
b26f47f
Added socket option for router_handover.
djelenc Jul 31, 2015
9131734
Merge pull request #126 from djelenc/develop
xaqq Jul 31, 2015
acb5671
Reformat actor code.
xaqq Aug 6, 2015
0da2b5f
Better handling of exception in actor code.
xaqq Aug 6, 2015
ef35a1e
Merge pull request #127 from xaqq/develop
benjamg Aug 6, 2015
a6f3056
Add zmqpp::proxy, a wrapper around zmq_proxy
xaqq Aug 25, 2015
4e9f5ce
Fix test against zeromq3.2
xaqq Aug 25, 2015
dcc4ef1
Merge pull request #130 from xaqq/develop
hintjens Aug 26, 2015
f57fd10
Added socket option for XPUB_MANUAL.
djelenc Sep 1, 2015
1a1e975
Merge pull request #132 from djelenc/sockopt_xpub_manual
xaqq Sep 1, 2015
76118b9
Added ZMQ_XPUB_VERBOSE_UNSUBSCRIBE socket option.
djelenc Sep 2, 2015
a9ef7b9
Merge pull request #133 from djelenc/sockopt_xpub_verbose_unsubscribe
hintjens Sep 2, 2015
533c810
Fix a low probability bug in ::send()
daveab Sep 14, 2015
2f5fbbe
Merge pull request #134 from datasift/feature/bug-fixes
benjamg Sep 14, 2015
c35c984
Add missing include to inet.hpp
xaqq Sep 24, 2015
846a90a
Merge pull request #136 from xaqq/develop
benjamg Sep 24, 2015
8c55902
Added publish_doc scritp.
pin3da Oct 7, 2015
b10bc8e
Merge pull request #137 from pin3da/develop
hintjens Oct 7, 2015
d2f8dab
Add implementation for message::remove
Jan 5, 2016
db5cfc2
Merge pull request #140 from arbishop/impl_remove
c-rack Jan 5, 2016
8680eba
Matching ZMQ option name changes (fixed #141)
benjamg Feb 18, 2016
5eca145
update renamed option
Feb 18, 2016
9fac09b
Merge pull request #143 from benjamg/develop
hintjens Feb 18, 2016
6d47499
Removes libsodim dependency from tests
djelenc Feb 19, 2016
4d28522
Merge pull request #145 from djelenc/develop
benjamg Feb 19, 2016
e278c58
Avoid terminating NUL in socket::get(..., string&)
tlbtlbtlb Feb 25, 2016
2452dd4
Merge pull request #148 from tlbtlbtlb/tlbtlbtlb-socket-get-string
hintjens Feb 25, 2016
4e778f0
Fix version printing
tatraian Mar 3, 2016
f0fd690
Merge pull request #149 from tatraian/develop
benjamg Mar 11, 2016
653f849
Problem: Small issue with msvc not being able to find context.hpp in …
sunkin351 Apr 14, 2016
a13e701
Merge pull request #155 from sunkin351/develop
c-rack Apr 14, 2016
af77f7a
Export several classes in Windows
tatraian May 4, 2016
1533c4a
Merge branch 'tatraian/orig_windows_dll' into feature/orig_windows_dll
May 4, 2016
108a172
switch to including export via compat layer and limiting to windows (…
May 5, 2016
823fca0
very hacky use of annoymous enum to avoid windows dll issue without b…
May 5, 2016
c527fea
update travis file to use the correct version of cmake (2.8.12 or later)
May 5, 2016
acaff82
Merge pull request #157 from benjamg/feature/orig_windows_dll_enum
xaqq May 6, 2016
c81e440
Problem: Metadata in ZAP responses is unused
djelenc May 8, 2016
480b0b4
Merge pull request #159 from djelenc/metadata_zap
c-rack May 8, 2016
0f32a70
moving to bool as default type, keeping depreacted int fallback
May 12, 2016
ace04ef
Merge pull request #161 from benjamg/feature/boolblock
xaqq May 12, 2016
d2d04e5
Correct mistakes in send/receive documentation
Takenbacon Jul 28, 2016
a9573fb
Merge pull request #165 from Takenbacon/typo-fix
benjamg Jul 29, 2016
5fc86b6
Support use_fd option.
stolowski Aug 11, 2016
17f3e50
Ouch... the 'set' code should go to int variant of set, not bool..
stolowski Aug 11, 2016
b266afa
Added test for use_fd option.
stolowski Aug 11, 2016
bfc9698
Simplify get and set.
stolowski Aug 11, 2016
cf572b1
Merge pull request #167 from stolowski/develop
c-rack Aug 11, 2016
94efe25
Fix compilation error with boost >= 1.60 - BOOST_CHECKPOINT has been …
sil2100 Aug 12, 2016
39a4430
Merge pull request #168 from sil2100/develop
c-rack Aug 12, 2016
db70f0d
Support "thread_priority" and "thread_sched_policy" context options
gasuketsu Aug 13, 2016
c9064c2
add zmq version check for context options
gasuketsu Aug 14, 2016
c53bb90
Merge pull request #169 from gasuketsu/feature/context-opts
benjamg Aug 15, 2016
07aa563
Removed -Wextra to make windows happy (Fixes #171)
benjamg Sep 26, 2016
4c42c29
Use on compilers that aren't MSVC
danielunderwood Sep 26, 2016
c7cef0d
CMake strings aren't lists, so reset the C++ flags string instead of …
danielunderwood Sep 26, 2016
94798f3
Merge pull request #173 from danielunderwood/hotfix/wextra-compiler-s…
c-rack Sep 26, 2016
f736525
Add cross-platform byte ordering from host to big endian for 32 bit i…
danielunderwood Sep 27, 2016
a524594
Use portable endianness conversion in zap_request.cpp
danielunderwood Sep 27, 2016
b584b10
Link to ws2_32 for byte ordering implementations on Windows
danielunderwood Sep 27, 2016
f37c42a
Merge pull request #174 from danielunderwood/hotfix/cross-platform-by…
benjamg Sep 28, 2016
b339033
Merge pull request #172 from zeromq/benjamg-patch-1
benjamg Sep 28, 2016
3983425
Respect the passed in length to socket::receive_raw
Oct 5, 2016
09ef3ae
Merge pull request #176 from mm120/fixes-from-mm120-4.1.2
benjamg Oct 6, 2016
52a79b5
Add monitor event zmqpp::event::monitor_stopped, binded to ZMQ_EVENT_…
Oct 17, 2016
349dfe4
Merge pull request #178 from pinchal/develop
xaqq Oct 17, 2016
ca04e9b
This change eliminates the inclusion of "netinet/in.h" on Windows, wh…
boinst Oct 18, 2016
60b2c08
Remove non existing parameters from unmonitor description, fix
Oct 18, 2016
a75ed63
ZMQPP_BUILD_EXAMPLES now build all examples.
Oct 21, 2016
8996d34
The Strawhouse example now realy use zap auth
Oct 21, 2016
2e80165
Merge pull request #179 from boinst/develop
xaqq Oct 25, 2016
1a7d8fe
Merge pull request #180 from pinchal/develop
xaqq Oct 25, 2016
62fce80
change template method message::get(n) to const
gasuketsu Feb 20, 2017
32722d4
Merge pull request #183 from gasuketsu/feature/const-get
c-rack Feb 20, 2017
d3aa61d
Add loop behaviour (similar to zloop from czmq)
piskorzj Mar 27, 2017
a44b502
Add tests for loop class.
piskorzj Mar 27, 2017
b6d7d49
Add loop and loop tests to CMakeLists.
piskorzj Mar 27, 2017
7e82c46
Update AUTHORS.
piskorzj Mar 27, 2017
1d1b955
Merge pull request #187 from piskorzj/feature/loop
bluca Mar 30, 2017
580d3ba
Update documentation of socket send / receive
odeits Apr 7, 2017
63c5648
Merge pull request #188 from odeits/patch-1
bluca Apr 7, 2017
74c4eb5
change template method message::extract() to const
gasuketsu Apr 18, 2017
1ea21e3
Merge pull request #190 from gasuketsu/feature/const-extract
bluca Apr 18, 2017
8fcf3f7
Add wrapper for zmq_proxy_steerable (#191)
indiosmo Apr 28, 2017
15f2a9f
[Issue #192] Fixed.
Smasherr May 3, 2017
a848672
Merge pull request #193 from Smasherr/patch-1
bluca May 3, 2017
9a783d0
shift tests onto unique port numbers, hopefully fixes #175 and #146
benjamg May 26, 2017
047c092
added 4.2.2 flags in prep to fix #184
benjamg May 26, 2017
af11119
Merge pull request #195 from benjamg/develop
bluca May 27, 2017
a901351
Update README.md
WRidder Jun 1, 2017
4933240
Merge pull request #196 from WRidder/patch-1
c-rack Jun 1, 2017
a4ffa29
Minor - clone zmqpp
Jul 6, 2017
581ba8b
Merge pull request #197 from silentquasar/patch-2
bluca Jul 6, 2017
503fed5
Do not use commas to separate statements
ivan-cukic Sep 23, 2017
e2cdf94
Merge pull request #198 from ivan-cukic/patch-1
c-rack Sep 23, 2017
ad7b343
Added pkg-config generation to project, make only.
peoplestom Oct 4, 2017
89dc262
Merge pull request #199 from peoplestom/develop
bluca Oct 4, 2017
f619a54
Flip the order of _msg and _sent in zmq::frame
zavorka Oct 5, 2017
0285fae
Merge pull request #200 from zavorka/zmq-msg-t-alignment
bluca Oct 5, 2017
372dc94
xpub welcome message is not a boolean
benjamg May 27, 2017
99fbd3a
support and wrappers for zmq_has 4.1 function
Nov 1, 2017
585178f
version 4.2 changes, I need to get better at recording these ongoing …
Nov 1, 2017
f8ff127
Merge pull request #201 from benjamg/develop
bluca Nov 1, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
build
docs
.cproject
.project
.settings
31 changes: 31 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Zmqpp

language: cpp

env:
- ZMQ_REPO=zeromq3-x BUILD_TYPE=default
- ZMQ_REPO=zeromq4-x BUILD_TYPE=default WITH_LIBSODIUM=1
- ZMQ_REPO=zeromq4-1 BUILD_TYPE=default WITH_LIBSODIUM=1
- ZMQ_REPO=libzmq BUILD_TYPE=default WITH_LIBSODIUM=1

- ZMQ_REPO=zeromq3-x BUILD_TYPE=cmake
- ZMQ_REPO=zeromq4-x BUILD_TYPE=cmake WITH_LIBSODIUM=1
- ZMQ_REPO=zeromq4-1 BUILD_TYPE=cmake WITH_LIBSODIUM=1
- ZMQ_REPO=libzmq BUILD_TYPE=cmake WITH_LIBSODIUM=1

before_install:
- if [ "$CXX" == "g++" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
- sudo add-apt-repository -y ppa:smspillaz/cmake-2.8.12
- sudo apt-get update

install:
# g++4.8.1
- if [ "$CXX" = "g++" ]; then sudo apt-get install -q -y g++-4.8; fi
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8"; fi
# cmake (2.8.12 or higher)
- sudo apt-get install -q -y cmake-data cmake
# Requirements
- sudo apt-get install -q -y libboost-all-dev

script:
- ./travis.sh
15 changes: 15 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Individual Contributors
=======================

Author: Ben Gray <[email protected]>
Author: Dmitry Odzerikho <[email protected]>
Author: Michi Henning <[email protected]>
Author: Pieter Hintjens <[email protected]>
Author: Rob Hubbard <[email protected]>
Author: Dinka Ranns <[email protected]>
Author: Olaf Lenz <[email protected]>
Author: Krzysztof Rapacki <[email protected]>
Author: Prem Shankar Kumar <[email protected]>
Author: Arnaud Kapp <[email protected]>
Author: Lionel Orry <[email protected]>
Author: Jakub Piskorz <[email protected]>
87 changes: 85 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,94 @@
Development
===========

Version 4.2.0

* New add_nocopy and add_ncopy_const functions for messages to allow better raw
data handling.
* Actor execption handling propergation fixed.
* Support for 0mq 4.1 and 4.2 stable socket options and context options
* Removed libsodium dependency for test code as it is no longer required for
0mq itself.
* Fixed NUL from permaturely terminating a string value socket option response.
* Support for removing parts of zmqpp::messages.
* Better support for msvc and avoiding windows dll issues.
* Non blocking functions default to bool type rather than integer flags.
* Cross platform endianness conversion.
* Code examples.

Version 4.1.2
=============

* Fix a compilation bug (#119)
* Improve documentation

Version 4.1.1
=============

Breaking
--------

* Removed message::add(pointer, size_t) as there were situations it conflicts
with the new easier to use templated add. This has been replaced with a
message::add_raw(pointer, size_t) method.

Other changes
-------------

* Added options to pop from/push to front of a message, this adds a new frame
before the current ones.
* Added matching but redundant pop from/push to the end of the message.
* Support for remaining 0mq 3.2 and 4.0 socket options.
* socket_option::conflate keep only one message in queues, ignores high water
mark options. Only supports single part messages.
* socket_option::curve_public_key set curve long term public key. This must
be set on CURVE client sockets. You can provide the key as 32 binary bytes,
or as a 40-character string encoded in the Z85 encoding format.
* socket_option::curve_secret_key set curve long term secret key. This must
be set on both CURVE client and server sockets. You can provide the key as
32 binary bytes, or as a 40-character string encoded in the Z85 encoding
format.
* socket_option::curve_server_key set the long term server key. This must
be set on CURVE client sockets. You can provide the key as 32 binary bytes,
or as a 40-character string encoded in the Z85 encoding format.
* socket_option::curve_server defines if the socket will at as a server for
CURVE security.
* socket_option::ipv6 replacing the now deprecated ipv4only option, enables
support for ipv6.
* socket_option::mechanism query the socket to find the current security
mechanism, if any.
* socket_option::plain_password Sets the password for outgoing connections
over TCP or IPC.
* socket_option::plain_server defines whether the socket will act as server
for PLAIN security.
* socket_option::plain_username Sets the username for outgoing connections
over TCP or IPC.
* socket_option::probe_router Tell a router to automatically end an empty
message when a new connection is made or accepted. You may set this on REQ,
DEALER, or ROUTER sockets connected to a ROUTER socket.
* socket_option::request_correlate Tell a REQ socket to prefix outgoing
messages with an extra frame containing a request id.
* socket_option::request_relaxed trigger reconnect on send instead of forcing
a wait for previous reply.
* socket_option::router_raw Don't apply 0mq framing to message, allowing talk
to non-0mq sockets.
* socket_option::zap_domain Domain value for ZAP (ZMQ RFC 27) authentication.
* Support for 4.0 context option.
* context_option::ipv6 replacing the now deprecated ipv4only option, enables
support for ipv6.
* Basic wrapper of socket monitor, socket class now has a monitor function that
setups the inproc monitor socket against it.
* Basic curve support. Allowing generation of keys via more c++ style interfaces
as well as decoding and encoding z85 formatted data.

Version 3.2.0
=============

* Reworked client application, this is techically breaking but its only the
* Reworked client application, this is technically breaking but its only the
the client so noone should care. Multipart support that works with linux
pipes is now the default.
* Added a new -d detailed verbose option, the only reason it is not -vv is
lack of boost option support. This provides diagnostic infomation.
lack of boost option support. This provides diagnostic information.
* Added -s to support single part messages, incase anyone actually used that.

Version 3.1.0
Expand Down
242 changes: 242 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
# ZMQPP Cmake build description.
# ==============================
#
# CMake should find the zmq libraries / headers automatically if they are
# installed system-wide. If CMake cannot find them not, or you would like to
# use custom built ones, set these variables:
#
# - ZEROMQ_LIB_DIR to the directory where libzmq / libzmq-shared is located
#
# - ZEROMQ_INCLUDE_DIR to the directory where zmq.h is located
#


cmake_minimum_required(VERSION 2.8.12)
enable_testing()

# prepare C++11
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")

# show all warnings
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic")

# Set compiler flags that don't work on Windows
if(NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
endif()


# Set a consistent MACOSX_RPATH default across all CMake versions. When CMake
# 2.8.12 is required, change this default to 1. When CMake 3.0.0 is required,
# remove this block (see CMP0042).
#
# TODO: verify correctness of this flag
if(NOT DEFINED CMAKE_MACOSX_RPATH)
set(CMAKE_MACOSX_RPATH 0)
endif()

# If libzmq is build in the same cmake global project and we want to
# depends on it instead of searching for libzmq in the system, we set this to true
set( ZMQPP_LIBZMQ_CMAKE false CACHE BOOL "libzmq is build through cmake too" )


set( ZMQPP_BUILD_STATIC true CACHE BOOL "Build the ZMQPP static library" )
set( ZMQPP_BUILD_SHARED true CACHE BOOL "Build the ZMQPP dynamic library" )

set( ZMQPP_BUILD_EXAMPLES false CACHE BOOL "Build the ZMQPP examples" )
set( ZMQPP_BUILD_CLIENT false CACHE BOOL "Build the ZMQPP client" )
set( ZMQPP_BUILD_TESTS false CACHE BOOL "Build the ZMQPP tests" )


# Since the current CMake build of ZMQ does not work for generating a dynamic libzmq,
# give a chance for users to update which ZMQ library to link to

# zmq-static is the name of the static target in libzmq's CMakeLists.txt
set( ZMQPP_LIBZMQ_NAME_STATIC "zmq-static" CACHE STRING "The ZMQ library to link the static ZMQPP. (if built)" )
set( ZMQPP_LIBZMQ_NAME_SHARED "zmq" CACHE STRING "The ZMQ library to link the dynamic ZMQPP. (if built)" )

# Paths to set to look for zmq
set( ZEROMQ_LIB_DIR "" CACHE PATH "The library directory for libzmq" )
set( ZEROMQ_INCLUDE_DIR "" CACHE PATH "The include directory for ZMQ" )

# Build flags
set( IS_TRAVIS_CI_BUILD true CACHE bool "Defines TRAVIS_CI_BUILD - Should the tests avoid running cases where memory is scarce." )

# Find zmq.h and add its dir to the includes
find_path(ZEROMQ_INCLUDE zmq.h PATHS ${ZEROMQ_INCLUDE_DIR})
include_directories(${ZEROMQ_INCLUDE_DIR} ${ZEROMQ_INCLUDE} ${CMAKE_CURRENT_SOURCE_DIR}/src )

# Do not run some tests when building on travis-ci (this cause oom error and kill the test
# process)
# These tests seem to be:
# - sending_large_messages_string
if (IS_TRAVIS_CI_BUILD)
add_definitions( -DTRAVIS_CI_BUILD)
endif()

set( INSTALL_TARGET_LIST )

# The library to link with the examples and the tests.
# Because we may or may not build shared/static libs, this needs to
# be dynamic
set( LIB_TO_LINK_TO_EXAMPLES )


# libzmqpp
# --------

set( LIBZMQPP_SOURCES
src/zmqpp/actor.cpp
src/zmqpp/context.cpp
src/zmqpp/curve.cpp
src/zmqpp/frame.cpp
src/zmqpp/loop.cpp
src/zmqpp/message.cpp
src/zmqpp/poller.cpp
src/zmqpp/reactor.cpp
src/zmqpp/signal.cpp
src/zmqpp/socket.cpp
src/zmqpp/z85.cpp
src/zmqpp/zap_request.cpp
src/zmqpp/auth.cpp
src/zmqpp/zmqpp.cpp
src/zmqpp/proxy.cpp
src/zmqpp/proxy_steerable.cpp
)

# Staticlib
if (ZMQPP_BUILD_STATIC)
add_library( zmqpp-static STATIC ${LIBZMQPP_SOURCES})
target_compile_definitions(zmqpp-static PUBLIC ZMQ_STATIC ZMQPP_STATIC_DEFINE)
if (NOT ZMQPP_LIBZMQ_CMAKE)
find_library(ZEROMQ_LIBRARY_STATIC ${ZMQPP_LIBZMQ_NAME_STATIC} PATHS ${ZEROMQ_LIB_DIR})
if (NOT ZEROMQ_LIBRARY_STATIC)
# If libzmq was not installed through CMake, the static binary is libzmq.a not libzmq-static.a
find_library(ZEROMQ_LIBRARY_STATIC libzmq.a PATHS ${ZEROMQ_LIB_DIR})
endif()
target_link_libraries( zmqpp-static ${ZEROMQ_LIBRARY_STATIC})
else()
# libzmq-static is the name of the target from
# libzmq's CMake
target_link_libraries(zmqpp-static libzmq-static)
endif()
list( APPEND INSTALL_TARGET_LIST zmqpp-static)
set( LIB_TO_LINK_TO_EXAMPLES zmqpp-static )
endif() # ZMQPP_BUILD_STATIC

# Shared lib
if (ZMQPP_BUILD_SHARED)
add_library( zmqpp SHARED ${LIBZMQPP_SOURCES})
if (NOT ZMQPP_LIBZMQ_CMAKE)
find_library(ZEROMQ_LIBRARY_SHARED ${ZMQPP_LIBZMQ_NAME_SHARED} PATHS ${ZEROMQ_LIB_DIR})
target_link_libraries( zmqpp ${ZEROMQ_LIBRARY_SHARED} )
else()
# libzmq is the name of the target from
# libzmq's CMake
target_link_libraries(zmqpp libzmq)
endif()
list( APPEND INSTALL_TARGET_LIST zmqpp)
set( LIB_TO_LINK_TO_EXAMPLES zmqpp )
endif() # ZMQPP_BUILD_SHARED

# We need to link zmqpp to ws2_32 on windows for the implementation of winsock2.h
if(WIN32)
target_link_libraries(zmqpp ws2_32)
endif() # WIN32

include(GenerateExportHeader)
generate_export_header(zmqpp)
include_directories(${CMAKE_CURRENT_BINARY_DIR})

# Examples
# --------

if(ZMQPP_BUILD_EXAMPLES)
find_package(Threads REQUIRED)

set (ZMQPP_EXAMPLES
simple_server
simple_client
grasslands
strawhouse
woodhouse
ironhouse
ironhouse2)

foreach( ZMQPP_EXAMPLE ${ZMQPP_EXAMPLES} )
add_executable( zmqpp-example-${ZMQPP_EXAMPLE} examples/${ZMQPP_EXAMPLE}.cpp )
target_link_libraries( zmqpp-example-${ZMQPP_EXAMPLE} ${LIB_TO_LINK_TO_EXAMPLES} ${CMAKE_THREAD_LIBS_INIT})
list( APPEND INSTALL_TARGET_LIST zmqpp-example-${ZMQPP_EXAMPLE} )
endforeach()
endif()



# Client
# ------

if( ZMQPP_BUILD_CLIENT )
# Boost
# -----
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost REQUIRED COMPONENTS program_options )
include_directories( ${Boost_INCLUDE_DIRS} )

add_executable( zmqpp-client
src/client/main.cpp
src/client/options.cpp
)
target_link_libraries( zmqpp-client ${LIB_TO_LINK_TO_EXAMPLES} ${Boost_LIBRARIES} )
list( APPEND INSTALL_TARGET_LIST zmqpp-client )
endif()

# Tests
# -----

if( ZMQPP_BUILD_TESTS )
#
# Boost
# -----
set(Boost_USE_STATIC_LIBS OFF) # only find static libs
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost REQUIRED COMPONENTS thread system unit_test_framework)
include_directories( ${Boost_INCLUDE_DIRS} )

add_executable( zmqpp-test-runner
src/tests/test_actor.cpp
src/tests/test_context.cpp
src/tests/test_inet.cpp
src/tests/test_load.cpp
src/tests/test_message.cpp
src/tests/test_message_stream.cpp
src/tests/test_poller.cpp
src/tests/test_reactor.cpp
src/tests/test_loop.cpp
src/tests/test_sanity.cpp
src/tests/test_socket.cpp
src/tests/test_socket_options.cpp
src/tests/test_z85.cpp
src/tests/test_auth.cpp
src/tests/test_proxy.cpp
)
target_link_libraries( zmqpp-test-runner ${LIB_TO_LINK_TO_EXAMPLES} ${Boost_LIBRARIES})
add_test( zmqpp-test zmqpp-test-runner --log-level=test-suite )
endif()


# Install
# -------
install(TARGETS ${INSTALL_TARGET_LIST}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)

install(DIRECTORY src/zmqpp DESTINATION include/
FILES_MATCHING PATTERN "*.hpp")

install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/zmqpp_export.h"
DESTINATION "include")
Loading