mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-29 00:26:36 +08:00
Merge branch 'master' of github.com:zeromq/libzmq
This commit is contained in:
commit
7604e1f7d5
7
.gitignore
vendored
7
.gitignore
vendored
@ -22,6 +22,9 @@ autom4te.cache
|
|||||||
*~
|
*~
|
||||||
.*~
|
.*~
|
||||||
curve_keygen
|
curve_keygen
|
||||||
|
test_heartbeats
|
||||||
|
test_msg_ffn
|
||||||
|
test_socketopt_hwm
|
||||||
test_resource
|
test_resource
|
||||||
test_ipc_wildcard
|
test_ipc_wildcard
|
||||||
test_stream_empty
|
test_stream_empty
|
||||||
@ -52,6 +55,8 @@ test_immediate
|
|||||||
test_term_endpoint
|
test_term_endpoint
|
||||||
test_router_mandatory
|
test_router_mandatory
|
||||||
test_disconnect_inproc
|
test_disconnect_inproc
|
||||||
|
test_unbind_inproc
|
||||||
|
test_unbind_wildcard
|
||||||
test_raw_sock
|
test_raw_sock
|
||||||
test_disconnect_inproc
|
test_disconnect_inproc
|
||||||
test_ctx_options
|
test_ctx_options
|
||||||
@ -74,6 +79,8 @@ test_linger
|
|||||||
test_security_null
|
test_security_null
|
||||||
test_security_plain
|
test_security_plain
|
||||||
test_proxy
|
test_proxy
|
||||||
|
test_proxy_single_socket
|
||||||
|
test_proxy_terminate
|
||||||
test_abstract_ipc
|
test_abstract_ipc
|
||||||
test_filter_ipc
|
test_filter_ipc
|
||||||
test_connect_delay_tipc
|
test_connect_delay_tipc
|
||||||
|
1
AUTHORS
1
AUTHORS
@ -86,6 +86,7 @@ Philip Kovacs
|
|||||||
Pieter Hintjens
|
Pieter Hintjens
|
||||||
Piotr Trojanek
|
Piotr Trojanek
|
||||||
Richard Newton
|
Richard Newton
|
||||||
|
Rik van der Heijden
|
||||||
Robert G. Jakabosky
|
Robert G. Jakabosky
|
||||||
Sebastian Otaegui
|
Sebastian Otaegui
|
||||||
Stefan Radomski
|
Stefan Radomski
|
||||||
|
@ -294,8 +294,8 @@ if(MSVC)
|
|||||||
set(OPENPGM_INCLUDE_DIRS ${OPENPGM_ROOT}/include)
|
set(OPENPGM_INCLUDE_DIRS ${OPENPGM_ROOT}/include)
|
||||||
set(OPENPGM_LIBRARY_DIRS ${OPENPGM_ROOT}/lib)
|
set(OPENPGM_LIBRARY_DIRS ${OPENPGM_ROOT}/lib)
|
||||||
set(OPENPGM_LIBRARIES
|
set(OPENPGM_LIBRARIES
|
||||||
optimized libpgm${_zmq_COMPILER}-mt-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib
|
optimized libpgm-${CMAKE_VS_PLATFORM_TOOLSET}-mt-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib
|
||||||
debug libpgm${_zmq_COMPILER}-mt-gd-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib)
|
debug libpgm-${CMAKE_VS_PLATFORM_TOOLSET}-mt-gd-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if(WITH_OPENPGM)
|
if(WITH_OPENPGM)
|
||||||
@ -435,7 +435,8 @@ set(cxx-sources
|
|||||||
xpub.cpp
|
xpub.cpp
|
||||||
xsub.cpp
|
xsub.cpp
|
||||||
zmq.cpp
|
zmq.cpp
|
||||||
zmq_utils.cpp)
|
zmq_utils.cpp
|
||||||
|
decoder_allocators.cpp)
|
||||||
|
|
||||||
set(rc-sources version.rc)
|
set(rc-sources version.rc)
|
||||||
|
|
||||||
@ -578,15 +579,15 @@ if(MSVC)
|
|||||||
target_link_libraries(libzmq ${OPTIONAL_LIBRARIES})
|
target_link_libraries(libzmq ${OPTIONAL_LIBRARIES})
|
||||||
set_target_properties(libzmq PROPERTIES
|
set_target_properties(libzmq PROPERTIES
|
||||||
PUBLIC_HEADER "${public_headers}"
|
PUBLIC_HEADER "${public_headers}"
|
||||||
RELEASE_POSTFIX "${_zmq_COMPILER}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
RELEASE_POSTFIX "-${CMAKE_VS_PLATFORM_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
||||||
DEBUG_POSTFIX "${_zmq_COMPILER}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
DEBUG_POSTFIX "-${CMAKE_VS_PLATFORM_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
|
||||||
COMPILE_DEFINITIONS "DLL_EXPORT")
|
COMPILE_DEFINITIONS "DLL_EXPORT")
|
||||||
add_library(libzmq-static STATIC ${sources})
|
add_library(libzmq-static STATIC ${sources})
|
||||||
set_target_properties(libzmq-static PROPERTIES
|
set_target_properties(libzmq-static PROPERTIES
|
||||||
PUBLIC_HEADER "${public_headers}"
|
PUBLIC_HEADER "${public_headers}"
|
||||||
RELEASE_POSTFIX "${_zmq_COMPILER}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
RELEASE_POSTFIX "-${CMAKE_VS_PLATFORM_TOOLSET}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
||||||
DEBUG_POSTFIX "${_zmq_COMPILER}-mt-sgd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
DEBUG_POSTFIX "-${CMAKE_VS_PLATFORM_TOOLSET}-mt-sgd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
||||||
COMPILE_FLAGS "/D ZMQ_STATIC"
|
COMPILE_FLAGS "/D ZMQ_STATIC"
|
||||||
OUTPUT_NAME "libzmq")
|
OUTPUT_NAME "libzmq")
|
||||||
else()
|
else()
|
||||||
@ -648,6 +649,12 @@ set(perf-tools local_lat
|
|||||||
inproc_thr)
|
inproc_thr)
|
||||||
|
|
||||||
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") # Why?
|
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") # Why?
|
||||||
|
option(WITH_PERF_TOOL "Build with perf-tools" ON)
|
||||||
|
else()
|
||||||
|
option(WITH_PERF_TOOL "Build with perf-tools" OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_PERF_TOOL)
|
||||||
foreach(perf-tool ${perf-tools})
|
foreach(perf-tool ${perf-tools})
|
||||||
add_executable(${perf-tool} perf/${perf-tool}.cpp)
|
add_executable(${perf-tool} perf/${perf-tool}.cpp)
|
||||||
target_link_libraries(${perf-tool} libzmq)
|
target_link_libraries(${perf-tool} libzmq)
|
||||||
@ -698,7 +705,7 @@ if(MSVC)
|
|||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION lib
|
||||||
PUBLIC_HEADER DESTINATION include
|
PUBLIC_HEADER DESTINATION include
|
||||||
COMPONENT SDK)
|
COMPONENT SDK)
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/libzmq${_zmq_COMPILER}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.pdb DESTINATION lib
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.pdb DESTINATION lib
|
||||||
COMPONENT SDK)
|
COMPONENT SDK)
|
||||||
else()
|
else()
|
||||||
install(TARGETS libzmq
|
install(TARGETS libzmq
|
||||||
|
39
Makefile.am
39
Makefile.am
@ -207,7 +207,10 @@ src_libzmq_la_SOURCES = \
|
|||||||
src/ypipe_conflate.hpp \
|
src/ypipe_conflate.hpp \
|
||||||
src/yqueue.hpp \
|
src/yqueue.hpp \
|
||||||
src/zmq.cpp \
|
src/zmq.cpp \
|
||||||
src/zmq_utils.cpp
|
src/zmq_utils.cpp \
|
||||||
|
src/decoder_allocators.hpp \
|
||||||
|
src/decoder_allocators.cpp
|
||||||
|
|
||||||
|
|
||||||
if ON_MINGW
|
if ON_MINGW
|
||||||
src_libzmq_la_LDFLAGS = \
|
src_libzmq_la_LDFLAGS = \
|
||||||
@ -308,6 +311,7 @@ test_apps = \
|
|||||||
tests/test_sub_forward \
|
tests/test_sub_forward \
|
||||||
tests/test_invalid_rep \
|
tests/test_invalid_rep \
|
||||||
tests/test_msg_flags \
|
tests/test_msg_flags \
|
||||||
|
tests/test_msg_ffn \
|
||||||
tests/test_connect_resolve \
|
tests/test_connect_resolve \
|
||||||
tests/test_immediate \
|
tests/test_immediate \
|
||||||
tests/test_last_endpoint \
|
tests/test_last_endpoint \
|
||||||
@ -323,6 +327,8 @@ test_apps = \
|
|||||||
tests/test_stream_disconnect \
|
tests/test_stream_disconnect \
|
||||||
tests/test_stream_timeout \
|
tests/test_stream_timeout \
|
||||||
tests/test_disconnect_inproc \
|
tests/test_disconnect_inproc \
|
||||||
|
tests/test_unbind_inproc \
|
||||||
|
tests/test_unbind_wildcard \
|
||||||
tests/test_ctx_options \
|
tests/test_ctx_options \
|
||||||
tests/test_ctx_destroy \
|
tests/test_ctx_destroy \
|
||||||
tests/test_security_null \
|
tests/test_security_null \
|
||||||
@ -340,6 +346,8 @@ test_apps = \
|
|||||||
tests/test_inproc_connect \
|
tests/test_inproc_connect \
|
||||||
tests/test_issue_566 \
|
tests/test_issue_566 \
|
||||||
tests/test_proxy \
|
tests/test_proxy \
|
||||||
|
tests/test_proxy_single_socket \
|
||||||
|
tests/test_proxy_terminate \
|
||||||
tests/test_many_sockets \
|
tests/test_many_sockets \
|
||||||
tests/test_ipc_wildcard \
|
tests/test_ipc_wildcard \
|
||||||
tests/test_diffserv \
|
tests/test_diffserv \
|
||||||
@ -354,7 +362,10 @@ test_apps = \
|
|||||||
tests/test_client_server \
|
tests/test_client_server \
|
||||||
tests/test_server_drop_more \
|
tests/test_server_drop_more \
|
||||||
tests/test_client_drop_more \
|
tests/test_client_drop_more \
|
||||||
tests/test_thread_safe
|
tests/test_thread_safe \
|
||||||
|
tests/test_socketopt_hwm \
|
||||||
|
tests/test_heartbeats \
|
||||||
|
tests/test_stream_exceeds_buffer
|
||||||
|
|
||||||
tests_test_system_SOURCES = tests/test_system.cpp
|
tests_test_system_SOURCES = tests/test_system.cpp
|
||||||
tests_test_system_LDADD = src/libzmq.la
|
tests_test_system_LDADD = src/libzmq.la
|
||||||
@ -397,6 +408,9 @@ tests_test_invalid_rep_LDADD = src/libzmq.la
|
|||||||
tests_test_msg_flags_SOURCES = tests/test_msg_flags.cpp
|
tests_test_msg_flags_SOURCES = tests/test_msg_flags.cpp
|
||||||
tests_test_msg_flags_LDADD = src/libzmq.la
|
tests_test_msg_flags_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_msg_ffn_SOURCES = tests/test_msg_ffn.cpp
|
||||||
|
tests_test_msg_ffn_LDADD = src/libzmq.la
|
||||||
|
|
||||||
tests_test_connect_resolve_SOURCES = tests/test_connect_resolve.cpp
|
tests_test_connect_resolve_SOURCES = tests/test_connect_resolve.cpp
|
||||||
tests_test_connect_resolve_LDADD = src/libzmq.la
|
tests_test_connect_resolve_LDADD = src/libzmq.la
|
||||||
|
|
||||||
@ -442,6 +456,12 @@ tests_test_stream_disconnect_LDADD = src/libzmq.la
|
|||||||
tests_test_disconnect_inproc_SOURCES = tests/test_disconnect_inproc.cpp
|
tests_test_disconnect_inproc_SOURCES = tests/test_disconnect_inproc.cpp
|
||||||
tests_test_disconnect_inproc_LDADD = src/libzmq.la
|
tests_test_disconnect_inproc_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_unbind_inproc_SOURCES = tests/test_unbind_inproc.cpp
|
||||||
|
tests_test_unbind_inproc_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_unbind_wildcard_SOURCES = tests/test_unbind_wildcard.cpp
|
||||||
|
tests_test_unbind_wildcard_LDADD = src/libzmq.la
|
||||||
|
|
||||||
tests_test_ctx_options_SOURCES = tests/test_ctx_options.cpp
|
tests_test_ctx_options_SOURCES = tests/test_ctx_options.cpp
|
||||||
tests_test_ctx_options_LDADD = src/libzmq.la
|
tests_test_ctx_options_LDADD = src/libzmq.la
|
||||||
|
|
||||||
@ -493,6 +513,12 @@ tests_test_issue_566_LDADD = src/libzmq.la
|
|||||||
tests_test_proxy_SOURCES = tests/test_proxy.cpp
|
tests_test_proxy_SOURCES = tests/test_proxy.cpp
|
||||||
tests_test_proxy_LDADD = src/libzmq.la
|
tests_test_proxy_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_proxy_single_socket_SOURCES = tests/test_proxy_single_socket.cpp
|
||||||
|
tests_test_proxy_single_socket_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_proxy_terminate_SOURCES = tests/test_proxy_terminate.cpp
|
||||||
|
tests_test_proxy_terminate_LDADD = src/libzmq.la
|
||||||
|
|
||||||
tests_test_many_sockets_SOURCES = tests/test_many_sockets.cpp
|
tests_test_many_sockets_SOURCES = tests/test_many_sockets.cpp
|
||||||
tests_test_many_sockets_LDADD = src/libzmq.la
|
tests_test_many_sockets_LDADD = src/libzmq.la
|
||||||
|
|
||||||
@ -538,7 +564,14 @@ tests_test_client_drop_more_LDADD = src/libzmq.la
|
|||||||
tests_test_thread_safe_SOURCES = tests/test_thread_safe.cpp
|
tests_test_thread_safe_SOURCES = tests/test_thread_safe.cpp
|
||||||
tests_test_thread_safe_LDADD = src/libzmq.la
|
tests_test_thread_safe_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_socketopt_hwm_SOURCES = tests/test_sockopt_hwm.cpp
|
||||||
|
tests_test_socketopt_hwm_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_heartbeats_SOURCES = tests/test_heartbeats.cpp
|
||||||
|
tests_test_heartbeats_LDADD = src/libzmq.la
|
||||||
|
|
||||||
|
tests_test_stream_exceeds_buffer_SOURCES = tests/test_stream_exceeds_buffer.cpp
|
||||||
|
tests_test_stream_exceeds_buffer_LDADD = src/libzmq.la
|
||||||
|
|
||||||
if !ON_MINGW
|
if !ON_MINGW
|
||||||
if !ON_CYGWIN
|
if !ON_CYGWIN
|
||||||
@ -627,7 +660,7 @@ check_PROGRAMS = ${test_apps}
|
|||||||
|
|
||||||
# Run the test cases
|
# Run the test cases
|
||||||
TESTS = $(test_apps)
|
TESTS = $(test_apps)
|
||||||
XFAIL_TESTS =
|
XFAIL_TESTS =
|
||||||
|
|
||||||
if !ON_LINUX
|
if !ON_LINUX
|
||||||
XFAIL_TESTS += tests/test_abstract_ipc
|
XFAIL_TESTS += tests/test_abstract_ipc
|
||||||
|
34
README.md
34
README.md
@ -4,9 +4,9 @@
|
|||||||
|
|
||||||
## Welcome
|
## Welcome
|
||||||
|
|
||||||
The 0MQ lightweight messaging kernel is a library which extends the
|
The ZeroMQ lightweight messaging kernel is a library which extends the
|
||||||
standard socket interfaces with features traditionally provided by
|
standard socket interfaces with features traditionally provided by
|
||||||
specialised messaging middleware products. 0MQ sockets provide an
|
specialised messaging middleware products. ZeroMQ sockets provide an
|
||||||
abstraction of asynchronous message queues, multiple messaging patterns,
|
abstraction of asynchronous message queues, multiple messaging patterns,
|
||||||
message filtering (subscriptions), seamless access to multiple transport
|
message filtering (subscriptions), seamless access to multiple transport
|
||||||
protocols and more.
|
protocols and more.
|
||||||
@ -19,7 +19,7 @@ See the INSTALL file included with the distribution.
|
|||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
Extensive documentation is provided with the distribution. Refer to
|
Extensive documentation is provided with the distribution. Refer to
|
||||||
doc/zmq.html, or "man zmq" after you have installed 0MQ on your system.
|
doc/zmq.html, or "man zmq" after you have installed libzmq on your system.
|
||||||
|
|
||||||
Website: http://www.zeromq.org/
|
Website: http://www.zeromq.org/
|
||||||
|
|
||||||
@ -28,11 +28,29 @@ Announcements mailing list: zeromq-announce@lists.zeromq.org
|
|||||||
|
|
||||||
Git repository: http://github.com/zeromq/libzmq
|
Git repository: http://github.com/zeromq/libzmq
|
||||||
|
|
||||||
0MQ developers can also be found on the IRC channel #zeromq, on the
|
ZeroMQ developers can also be found on the IRC channel #zeromq, on the
|
||||||
Freenode network (irc.freenode.net).
|
Freenode network (irc.freenode.net).
|
||||||
|
|
||||||
## Copying
|
## License
|
||||||
|
|
||||||
Free use of this software is granted under the terms of the GNU Lesser General
|
The project license is specified in COPYING and COPYING.LESSER.
|
||||||
Public License (LGPL). For details see the files `COPYING` and `COPYING.LESSER`
|
|
||||||
included with the 0MQ distribution.
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
As a special exception, the Contributors give you permission to link
|
||||||
|
this library with independent modules to produce an executable,
|
||||||
|
regardless of the license terms of these independent modules, and to
|
||||||
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
10
autogen.sh
10
autogen.sh
@ -20,10 +20,14 @@
|
|||||||
|
|
||||||
# Script to generate all required files from fresh git checkout.
|
# Script to generate all required files from fresh git checkout.
|
||||||
|
|
||||||
command -v libtool >/dev/null 2>&1
|
# Debian and Ubuntu do not shipt libtool anymore, but OSX does not ship libtoolize.
|
||||||
|
command -v libtoolize >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "autogen.sh: error: could not find libtool. libtool is required to run autogen.sh." 1>&2
|
command -v libtool >/dev/null 2>&1
|
||||||
exit 1
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "autogen.sh: error: could not find libtool. libtool is required to run autogen.sh." 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
command -v autoreconf >/dev/null 2>&1
|
command -v autoreconf >/dev/null 2>&1
|
||||||
|
@ -6,13 +6,3 @@ string(REGEX REPLACE ".*#define ZMQ_VERSION_PATCH ([0-9]+).*" "\\1" ZMQ_VERSION_
|
|||||||
set(ZMQ_VERSION "${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}")
|
set(ZMQ_VERSION "${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}")
|
||||||
|
|
||||||
message(STATUS "Detected ZMQ Version - ${ZMQ_VERSION}")
|
message(STATUS "Detected ZMQ Version - ${ZMQ_VERSION}")
|
||||||
|
|
||||||
if(MSVC_VERSION MATCHES "1700")
|
|
||||||
set(_zmq_COMPILER "-v110")
|
|
||||||
elseif(MSVC10)
|
|
||||||
set(_zmq_COMPILER "-v100")
|
|
||||||
elseif(MSVC90)
|
|
||||||
set(_zmq_COMPILER "-v90")
|
|
||||||
else()
|
|
||||||
set(_zmq_COMPILER "")
|
|
||||||
endif()
|
|
||||||
|
@ -86,14 +86,4 @@
|
|||||||
|
|
||||||
#cmakedefine ZMQ_HAVE_WINDOWS
|
#cmakedefine ZMQ_HAVE_WINDOWS
|
||||||
|
|
||||||
#ifdef ZMQ_HAVE_WINDOWS
|
|
||||||
#if defined _WIN32_WINNT && _WIN32_WINNT < 0x0600
|
|
||||||
#undef _WIN32_WINNT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _WIN32_WINNT
|
|
||||||
#define _WIN32_WINNT 0x0600
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -1,18 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2011 iMatix Corporation
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -29,13 +38,4 @@
|
|||||||
|
|
||||||
#define ZMQ_HAVE_WINDOWS
|
#define ZMQ_HAVE_WINDOWS
|
||||||
|
|
||||||
#if defined _WIN32_WINNT && _WIN32_WINNT < 0x0600
|
|
||||||
#undef _WIN32_WINNT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _WIN32_WINNT
|
|
||||||
#define _WIN32_WINNT 0x0600
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,18 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2011 iMatix Corporation
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -29,12 +38,4 @@
|
|||||||
|
|
||||||
#define ZMQ_HAVE_WINDOWS
|
#define ZMQ_HAVE_WINDOWS
|
||||||
|
|
||||||
#if defined _WIN32_WINNT && _WIN32_WINNT < 0x0600
|
|
||||||
#undef _WIN32_WINNT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _WIN32_WINNT
|
|
||||||
#define _WIN32_WINNT 0x0600
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -82,6 +82,7 @@
|
|||||||
<ClInclude Include="..\..\..\..\src\curve_client.hpp" />
|
<ClInclude Include="..\..\..\..\src\curve_client.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\curve_server.hpp" />
|
<ClInclude Include="..\..\..\..\src\curve_server.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\decoder.hpp" />
|
<ClInclude Include="..\..\..\..\src\decoder.hpp" />
|
||||||
|
<ClInclude Include="..\..\..\..\src\decoder_allocators.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\devpoll.hpp" />
|
<ClInclude Include="..\..\..\..\src\devpoll.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\dist.hpp" />
|
<ClInclude Include="..\..\..\..\src\dist.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\encoder.hpp" />
|
<ClInclude Include="..\..\..\..\src\encoder.hpp" />
|
||||||
@ -168,6 +169,7 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\curve_client.cpp" />
|
<ClCompile Include="..\..\..\..\src\curve_client.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\curve_server.cpp" />
|
<ClCompile Include="..\..\..\..\src\curve_server.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\dealer.cpp" />
|
<ClCompile Include="..\..\..\..\src\dealer.cpp" />
|
||||||
|
<ClCompile Include="..\..\..\..\src\decoder_allocators.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\devpoll.cpp" />
|
<ClCompile Include="..\..\..\..\src\devpoll.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\dist.cpp" />
|
<ClCompile Include="..\..\..\..\src\dist.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\epoll.cpp" />
|
<ClCompile Include="..\..\..\..\src\epoll.cpp" />
|
||||||
|
@ -235,6 +235,9 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\mailbox_safe.cpp">
|
<ClCompile Include="..\..\..\..\src\mailbox_safe.cpp">
|
||||||
<Filter>src</Filter>
|
<Filter>src</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\src\decoder_allocators.cpp">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\..\..\include\zmq_utils.h">
|
<ClInclude Include="..\..\..\..\include\zmq_utils.h">
|
||||||
@ -513,6 +516,9 @@
|
|||||||
<ClInclude Include="..\..\..\..\src\condition_variable.hpp">
|
<ClInclude Include="..\..\..\..\src\condition_variable.hpp">
|
||||||
<Filter>src\include</Filter>
|
<Filter>src\include</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\src\decoder_allocators.hpp">
|
||||||
|
<Filter>src\include</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="include">
|
<Filter Include="include">
|
||||||
|
@ -82,6 +82,7 @@
|
|||||||
<ClInclude Include="..\..\..\..\src\curve_client.hpp" />
|
<ClInclude Include="..\..\..\..\src\curve_client.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\curve_server.hpp" />
|
<ClInclude Include="..\..\..\..\src\curve_server.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\decoder.hpp" />
|
<ClInclude Include="..\..\..\..\src\decoder.hpp" />
|
||||||
|
<ClInclude Include="..\..\..\..\src\decoder_allocators.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\devpoll.hpp" />
|
<ClInclude Include="..\..\..\..\src\devpoll.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\dist.hpp" />
|
<ClInclude Include="..\..\..\..\src\dist.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\encoder.hpp" />
|
<ClInclude Include="..\..\..\..\src\encoder.hpp" />
|
||||||
@ -168,6 +169,7 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\curve_client.cpp" />
|
<ClCompile Include="..\..\..\..\src\curve_client.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\curve_server.cpp" />
|
<ClCompile Include="..\..\..\..\src\curve_server.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\dealer.cpp" />
|
<ClCompile Include="..\..\..\..\src\dealer.cpp" />
|
||||||
|
<ClCompile Include="..\..\..\..\src\decoder_allocators.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\devpoll.cpp" />
|
<ClCompile Include="..\..\..\..\src\devpoll.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\dist.cpp" />
|
<ClCompile Include="..\..\..\..\src\dist.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\epoll.cpp" />
|
<ClCompile Include="..\..\..\..\src\epoll.cpp" />
|
||||||
|
@ -235,6 +235,9 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\mailbox_safe.cpp">
|
<ClCompile Include="..\..\..\..\src\mailbox_safe.cpp">
|
||||||
<Filter>src</Filter>
|
<Filter>src</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\src\decoder_allocators.cpp">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\..\..\include\zmq_utils.h">
|
<ClInclude Include="..\..\..\..\include\zmq_utils.h">
|
||||||
@ -513,6 +516,9 @@
|
|||||||
<ClInclude Include="..\..\..\..\src\condition_variable.hpp">
|
<ClInclude Include="..\..\..\..\src\condition_variable.hpp">
|
||||||
<Filter>src\include</Filter>
|
<Filter>src\include</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\src\decoder_allocators.hpp">
|
||||||
|
<Filter>src\include</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="include">
|
<Filter Include="include">
|
||||||
|
@ -82,6 +82,7 @@
|
|||||||
<ClInclude Include="..\..\..\..\src\curve_client.hpp" />
|
<ClInclude Include="..\..\..\..\src\curve_client.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\curve_server.hpp" />
|
<ClInclude Include="..\..\..\..\src\curve_server.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\decoder.hpp" />
|
<ClInclude Include="..\..\..\..\src\decoder.hpp" />
|
||||||
|
<ClInclude Include="..\..\..\..\src\decoder_allocators.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\devpoll.hpp" />
|
<ClInclude Include="..\..\..\..\src\devpoll.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\dist.hpp" />
|
<ClInclude Include="..\..\..\..\src\dist.hpp" />
|
||||||
<ClInclude Include="..\..\..\..\src\encoder.hpp" />
|
<ClInclude Include="..\..\..\..\src\encoder.hpp" />
|
||||||
@ -168,6 +169,7 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\curve_client.cpp" />
|
<ClCompile Include="..\..\..\..\src\curve_client.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\curve_server.cpp" />
|
<ClCompile Include="..\..\..\..\src\curve_server.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\dealer.cpp" />
|
<ClCompile Include="..\..\..\..\src\dealer.cpp" />
|
||||||
|
<ClCompile Include="..\..\..\..\src\decoder_allocators.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\devpoll.cpp" />
|
<ClCompile Include="..\..\..\..\src\devpoll.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\dist.cpp" />
|
<ClCompile Include="..\..\..\..\src\dist.cpp" />
|
||||||
<ClCompile Include="..\..\..\..\src\epoll.cpp" />
|
<ClCompile Include="..\..\..\..\src\epoll.cpp" />
|
||||||
|
@ -235,6 +235,9 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\mailbox_safe.cpp">
|
<ClCompile Include="..\..\..\..\src\mailbox_safe.cpp">
|
||||||
<Filter>src</Filter>
|
<Filter>src</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\src\decoder_allocators.cpp">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\..\..\include\zmq_utils.h">
|
<ClInclude Include="..\..\..\..\include\zmq_utils.h">
|
||||||
@ -513,6 +516,9 @@
|
|||||||
<ClInclude Include="..\..\..\..\src\condition_variable.hpp">
|
<ClInclude Include="..\..\..\..\src\condition_variable.hpp">
|
||||||
<Filter>src\include</Filter>
|
<Filter>src\include</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\src\decoder_allocators.hpp">
|
||||||
|
<Filter>src\include</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="include">
|
<Filter Include="include">
|
||||||
|
@ -26,15 +26,11 @@ if [[ $ANDROID_BUILD_CLEAN ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
##
|
##
|
||||||
# Build libsodium from latest release tarball
|
# Build libsodium from latest master branch
|
||||||
|
|
||||||
(android_build_verify_so "libsodium.so" &> /dev/null) || {
|
(android_build_verify_so "libsodium.so" &> /dev/null) || {
|
||||||
rm -rf "${cache}/libsodium"
|
rm -rf "${cache}/libsodium"
|
||||||
(cd "${cache}" && mkdir libsodium \
|
(cd "${cache}" && git clone git://github.com/jedisct1/libsodium.git) || exit 1
|
||||||
&& wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz\
|
|
||||||
-O "${cache}/libsodium.tar.gz" \
|
|
||||||
&& tar -C libsodium -xf libsodium.tar.gz --strip=1) || exit 1
|
|
||||||
|
|
||||||
(cd "${cache}/libsodium" && ./autogen.sh \
|
(cd "${cache}/libsodium" && ./autogen.sh \
|
||||||
&& ./configure "${ANDROID_BUILD_OPTS[@]}" --disable-soname-versions \
|
&& ./configure "${ANDROID_BUILD_OPTS[@]}" --disable-soname-versions \
|
||||||
&& make \
|
&& make \
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2013 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -30,7 +40,7 @@ int main (void)
|
|||||||
setup_test_environment ();
|
setup_test_environment ();
|
||||||
void *ctx = zmq_ctx_new ();
|
void *ctx = zmq_ctx_new ();
|
||||||
assert (ctx);
|
assert (ctx);
|
||||||
|
|
||||||
// Create and bind pull socket to receive messages
|
// Create and bind pull socket to receive messages
|
||||||
void *pull = zmq_socket (ctx, ZMQ_PULL);
|
void *pull = zmq_socket (ctx, ZMQ_PULL);
|
||||||
assert (pull);
|
assert (pull);
|
||||||
@ -54,11 +64,11 @@ int main (void)
|
|||||||
int count;
|
int count;
|
||||||
for (count = 0; count < NUM_MESSAGES; count++)
|
for (count = 0; count < NUM_MESSAGES; count++)
|
||||||
zmq_send (push, "Hello", 5, 0);
|
zmq_send (push, "Hello", 5, 0);
|
||||||
|
|
||||||
zmq_close (push);
|
zmq_close (push);
|
||||||
zmq_ctx_destroy (child_ctx);
|
zmq_ctx_destroy (child_ctx);
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Parent process
|
// Parent process
|
||||||
alarm(TIMEOUT_SECS); // Set upper limit on runtime
|
alarm(TIMEOUT_SECS); // Set upper limit on runtime
|
||||||
@ -72,7 +82,7 @@ int main (void)
|
|||||||
int child_status;
|
int child_status;
|
||||||
while (true) {
|
while (true) {
|
||||||
rc = waitpid (pid, &child_status, 0);
|
rc = waitpid (pid, &child_status, 0);
|
||||||
if (rc == -1 && errno == EINTR)
|
if (rc == -1 && errno == EINTR)
|
||||||
continue;
|
continue;
|
||||||
assert (rc > 0);
|
assert (rc > 0);
|
||||||
// Verify the status code of the child was zero
|
// Verify the status code of the child was zero
|
||||||
|
10
configure.ac
10
configure.ac
@ -31,9 +31,10 @@ AC_SUBST(PACKAGE_VERSION)
|
|||||||
# ZeroMQ version 3.0: 2:0:0 (ABI version 2)
|
# ZeroMQ version 3.0: 2:0:0 (ABI version 2)
|
||||||
# ZeroMQ version 3.1: 3:0:0 (ABI version 3)
|
# ZeroMQ version 3.1: 3:0:0 (ABI version 3)
|
||||||
# ZeroMQ version 4.0: 4:0:0 (ABI version 4)
|
# ZeroMQ version 4.0: 4:0:0 (ABI version 4)
|
||||||
|
# ZeroMQ version 4.1: 5:0:0 (ABI version 5)
|
||||||
#
|
#
|
||||||
# libzmq -version-info current:revision:age
|
# libzmq -version-info current:revision:age
|
||||||
LTVER="4:0:0"
|
LTVER="5:0:0"
|
||||||
AC_SUBST(LTVER)
|
AC_SUBST(LTVER)
|
||||||
|
|
||||||
# Take a copy of original flags
|
# Take a copy of original flags
|
||||||
@ -225,7 +226,7 @@ case "${host_os}" in
|
|||||||
AC_DEFINE(ZMQ_FORCE_MUTEXES, 1, [Force to use mutexes])
|
AC_DEFINE(ZMQ_FORCE_MUTEXES, 1, [Force to use mutexes])
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*openbsd*)
|
*openbsd*|*bitrig*)
|
||||||
# Define on OpenBSD to enable all library features
|
# Define on OpenBSD to enable all library features
|
||||||
CPPFLAGS="-D_BSD_SOURCE $CPPFLAGS"
|
CPPFLAGS="-D_BSD_SOURCE $CPPFLAGS"
|
||||||
AC_DEFINE(ZMQ_HAVE_OPENBSD, 1, [Have OpenBSD OS])
|
AC_DEFINE(ZMQ_HAVE_OPENBSD, 1, [Have OpenBSD OS])
|
||||||
@ -245,7 +246,7 @@ case "${host_os}" in
|
|||||||
LIBZMQ_CHECK_LANG_FLAG_PREPEND([-Ae])
|
LIBZMQ_CHECK_LANG_FLAG_PREPEND([-Ae])
|
||||||
AC_CHECK_FUNCS(gethrtime)
|
AC_CHECK_FUNCS(gethrtime)
|
||||||
;;
|
;;
|
||||||
*mingw32*)
|
*mingw*)
|
||||||
AC_DEFINE(ZMQ_HAVE_WINDOWS, 1, [Have Windows OS])
|
AC_DEFINE(ZMQ_HAVE_WINDOWS, 1, [Have Windows OS])
|
||||||
AC_DEFINE(ZMQ_HAVE_MINGW32, 1, [Have MinGW32])
|
AC_DEFINE(ZMQ_HAVE_MINGW32, 1, [Have MinGW32])
|
||||||
AC_CHECK_HEADERS(windows.h)
|
AC_CHECK_HEADERS(windows.h)
|
||||||
@ -265,6 +266,9 @@ case "${host_os}" in
|
|||||||
if test "x$enable_static" = "xyes"; then
|
if test "x$enable_static" = "xyes"; then
|
||||||
AC_MSG_ERROR([Building static libraries is not supported under MinGW32])
|
AC_MSG_ERROR([Building static libraries is not supported under MinGW32])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Set FD_SETSIZE to 1024
|
||||||
|
CPPFLAGS=" -DFD_SETSIZE=1024 $CPPFLAGS"
|
||||||
;;
|
;;
|
||||||
*cygwin*)
|
*cygwin*)
|
||||||
# Define on Cygwin to enable all library features
|
# Define on Cygwin to enable all library features
|
||||||
|
@ -32,13 +32,13 @@ MAINTAINERCLEANFILES = $(MAN_DOC) $(MAN_HTML)
|
|||||||
|
|
||||||
EXTRA_DIST = asciidoc.conf $(MAN_TXT)
|
EXTRA_DIST = asciidoc.conf $(MAN_TXT)
|
||||||
|
|
||||||
if BUILD_DOC
|
|
||||||
EXTRA_DIST += $(MAN_HTML)
|
|
||||||
|
|
||||||
if INSTALL_MAN
|
if INSTALL_MAN
|
||||||
dist_man_MANS = $(MAN_DOC)
|
dist_man_MANS = $(MAN_DOC)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if BUILD_DOC
|
||||||
|
EXTRA_DIST += $(MAN_HTML)
|
||||||
|
|
||||||
SUFFIXES=.html .txt .xml .3 .7
|
SUFFIXES=.html .txt .xml .3 .7
|
||||||
|
|
||||||
.txt.html:
|
.txt.html:
|
||||||
|
@ -47,6 +47,28 @@ context.
|
|||||||
[horizontal]
|
[horizontal]
|
||||||
Default value:: 1
|
Default value:: 1
|
||||||
|
|
||||||
|
ZMQ_THREAD_SCHED_POLICY: Set scheduling policy for I/O threads
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The 'ZMQ_THREAD_SCHED_POLICY' argument sets the scheduling policy for
|
||||||
|
internal context's thread pool. This option is not available on windows.
|
||||||
|
Supported values for this option can be found in sched.h file,
|
||||||
|
or at http://man7.org/linux/man-pages/man2/sched_setscheduler.2.html.
|
||||||
|
This option only applies before creating any sockets on the context.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Default value:: -1
|
||||||
|
|
||||||
|
ZMQ_THREAD_PRIORITY: Set scheduling priority for I/O threads
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The 'ZMQ_THREAD_PRIORITY' argument sets scheduling priority for
|
||||||
|
internal context's thread pool. This option is not available on windows.
|
||||||
|
Supported values for this option depend on chosen scheduling policy.
|
||||||
|
Details can be found in sched.h file, or at http://man7.org/linux/man-pages/man2/sched_setscheduler.2.html.
|
||||||
|
This option only applies before creating any sockets on the context.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Default value:: -1
|
||||||
|
|
||||||
ZMQ_MAX_SOCKETS: Set maximum number of sockets
|
ZMQ_MAX_SOCKETS: Set maximum number of sockets
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
The 'ZMQ_MAX_SOCKETS' argument sets the maximum number of sockets allowed
|
The 'ZMQ_MAX_SOCKETS' argument sets the maximum number of sockets allowed
|
||||||
|
@ -450,14 +450,12 @@ Applicable socket types:: all, when using multicast transports
|
|||||||
ZMQ_RCVBUF: Retrieve kernel receive buffer size
|
ZMQ_RCVBUF: Retrieve kernel receive buffer size
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
The 'ZMQ_RCVBUF' option shall retrieve the underlying kernel receive buffer
|
The 'ZMQ_RCVBUF' option shall retrieve the underlying kernel receive buffer
|
||||||
size for the specified 'socket'. A value of zero means that the OS default is
|
size for the specified 'socket'. For details refer to your operating system
|
||||||
in effect. For details refer to your operating system documentation for the
|
documentation for the 'SO_RCVBUF' socket option.
|
||||||
'SO_RCVBUF' socket option.
|
|
||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Option value type:: int
|
Option value type:: int
|
||||||
Option value unit:: bytes
|
Option value unit:: bytes
|
||||||
Default value:: 0
|
|
||||||
Applicable socket types:: all
|
Applicable socket types:: all
|
||||||
|
|
||||||
|
|
||||||
@ -566,14 +564,12 @@ Applicable socket types:: all, when using multicast transports
|
|||||||
ZMQ_SNDBUF: Retrieve kernel transmit buffer size
|
ZMQ_SNDBUF: Retrieve kernel transmit buffer size
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
The 'ZMQ_SNDBUF' option shall retrieve the underlying kernel transmit buffer
|
The 'ZMQ_SNDBUF' option shall retrieve the underlying kernel transmit buffer
|
||||||
size for the specified 'socket'. A value of zero means that the OS default is
|
size for the specified 'socket'. For details refer to your operating system
|
||||||
in effect. For details refer to your operating system documentation for the
|
documentation for the 'SO_SNDBUF' socket option.
|
||||||
'SO_SNDBUF' socket option.
|
|
||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Option value type:: int
|
Option value type:: int
|
||||||
Option value unit:: bytes
|
Option value unit:: bytes
|
||||||
Default value:: 0
|
|
||||||
Applicable socket types:: all
|
Applicable socket types:: all
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,7 +14,8 @@ SYNOPSIS
|
|||||||
|
|
||||||
Caution: All options, with the exception of ZMQ_SUBSCRIBE, ZMQ_UNSUBSCRIBE,
|
Caution: All options, with the exception of ZMQ_SUBSCRIBE, ZMQ_UNSUBSCRIBE,
|
||||||
ZMQ_LINGER, ZMQ_ROUTER_HANDOVER, ZMQ_ROUTER_MANDATORY, ZMQ_PROBE_ROUTER,
|
ZMQ_LINGER, ZMQ_ROUTER_HANDOVER, ZMQ_ROUTER_MANDATORY, ZMQ_PROBE_ROUTER,
|
||||||
ZMQ_XPUB_VERBOSE, ZMQ_REQ_CORRELATE, and ZMQ_REQ_RELAXED, only take effect for
|
ZMQ_XPUB_VERBOSE, ZMQ_XPUB_VERBOSE_UNSUBSCRIBE, ZMQ_REQ_CORRELATE,
|
||||||
|
ZMQ_REQ_RELAXED, ZMQ_SNDHWM and ZMQ_RCVHWM, only take effect for
|
||||||
subsequent socket bind/connects.
|
subsequent socket bind/connects.
|
||||||
|
|
||||||
Specifically, security options take effect for subsequent bind/connect calls,
|
Specifically, security options take effect for subsequent bind/connect calls,
|
||||||
@ -247,6 +248,51 @@ Default value:: 30000
|
|||||||
Applicable socket types:: all but ZMQ_STREAM, only for connection-oriented transports
|
Applicable socket types:: all but ZMQ_STREAM, only for connection-oriented transports
|
||||||
|
|
||||||
|
|
||||||
|
ZMQ_HEARTBEAT_IVL: Set interval between sending ZMTP heartbeats
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The 'ZMQ_HEARTBEAT_IVL' option shall set the interval between sending ZMTP heartbeats
|
||||||
|
for the specified 'socket'. If this option is set and is greater than 0, then a 'PING'
|
||||||
|
ZMTP command will be sent every 'ZMQ_HEARTBEAT_IVL' milliseconds.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Option value type:: int
|
||||||
|
Option value unit:: milliseconds
|
||||||
|
Default value:: 0
|
||||||
|
Applicable socket types:: all, when using connection-oriented transports
|
||||||
|
|
||||||
|
|
||||||
|
ZMQ_HEARTBEAT_TIMEOUT: Set timeout for ZMTP heartbeats
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The 'ZMQ_HEARTBEAT_TIMEOUT' option shall set how long to wait before timing-out a
|
||||||
|
connection after sending a 'PING' ZMTP command and not receiving any traffic. This
|
||||||
|
option is only valid if 'ZMQ_HEARTBEAT_IVL' is also set, and is greater than 0. The
|
||||||
|
connection will time out if there is no traffic received after sending the 'PING'
|
||||||
|
command, but the received traffic does not have to be a 'PONG' command - any received
|
||||||
|
traffic will cancel the timeout.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Option value type:: int
|
||||||
|
Option value unit:: milliseconds
|
||||||
|
Default value:: 0
|
||||||
|
Applicable socket types:: all, when using connection-oriented transports
|
||||||
|
|
||||||
|
|
||||||
|
ZMQ_HEARTBEAT_TTL: Set the TTL value for ZMTP heartbeats
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The 'ZMQ_HEARTBEAT_TTL' option shall set the timeout on the remote peer for ZMTP
|
||||||
|
heartbeats. If this option is greater than 0, the remote side shall time out the
|
||||||
|
connection if it does not receive any more traffic within the TTL period. This option
|
||||||
|
does not have any effect if 'ZMQ_HEARTBEAT_IVL' is not set or is 0. Internally, this
|
||||||
|
value is rounded down to the nearest decisecond, any value less than 100 will have
|
||||||
|
no effect.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Option value type:: int
|
||||||
|
Option value unit:: milliseconds
|
||||||
|
Default value:: 0
|
||||||
|
Applicable socket types:: all, when using connection-oriented transports
|
||||||
|
|
||||||
|
|
||||||
ZMQ_IDENTITY: Set socket identity
|
ZMQ_IDENTITY: Set socket identity
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
The 'ZMQ_IDENTITY' option shall set the identity of the specified 'socket'
|
The 'ZMQ_IDENTITY' option shall set the identity of the specified 'socket'
|
||||||
@ -283,6 +329,28 @@ Default value:: 0 (false)
|
|||||||
Applicable socket types:: all, only for connection-oriented transports.
|
Applicable socket types:: all, only for connection-oriented transports.
|
||||||
|
|
||||||
|
|
||||||
|
ZMQ_INVERT_MATCHING: Invert message filtering
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Reverses the filtering behavior of PUB-SUB sockets, when set to 1.
|
||||||
|
|
||||||
|
On 'PUB' and 'XPUB' sockets, this causes messages to be sent to all
|
||||||
|
connected sockets 'except' those subscribed to a prefix that matches
|
||||||
|
the message. On 'SUB' sockets, this causes only incoming messages that
|
||||||
|
do 'not' match any of the socket's subscriptions to be received by the user.
|
||||||
|
|
||||||
|
Whenever 'ZMQ_INVERT_MATCHING' is set to 1 on a 'PUB' socket, all 'SUB'
|
||||||
|
sockets connecting to it must also have the option set to 1. Failure to
|
||||||
|
do so will have the 'SUB' sockets reject everything the 'PUB' socket sends
|
||||||
|
them. 'XSUB' sockets do not need to do this because they do not filter
|
||||||
|
incoming messages.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Option value type:: int
|
||||||
|
Option value unit:: 0,1
|
||||||
|
Default value:: 0
|
||||||
|
Applicable socket types:: ZMQ_PUB, ZMQ_XPUB, ZMQ_SUB
|
||||||
|
|
||||||
|
|
||||||
ZMQ_IPV6: Enable IPv6 on socket
|
ZMQ_IPV6: Enable IPv6 on socket
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Set the IPv6 option for the socket. A value of `1` means IPv6 is
|
Set the IPv6 option for the socket. A value of `1` means IPv6 is
|
||||||
@ -428,14 +496,14 @@ Applicable socket types:: all, when using multicast transports
|
|||||||
ZMQ_RCVBUF: Set kernel receive buffer size
|
ZMQ_RCVBUF: Set kernel receive buffer size
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
The 'ZMQ_RCVBUF' option shall set the underlying kernel receive buffer size for
|
The 'ZMQ_RCVBUF' option shall set the underlying kernel receive buffer size for
|
||||||
the 'socket' to the specified size in bytes. A value of zero means leave the
|
the 'socket' to the specified size in bytes. A value of -1 means leave the
|
||||||
OS default unchanged. For details refer to your operating system documentation
|
OS default unchanged. For details refer to your operating system documentation
|
||||||
for the 'SO_RCVBUF' socket option.
|
for the 'SO_RCVBUF' socket option.
|
||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Option value type:: int
|
Option value type:: int
|
||||||
Option value unit:: bytes
|
Option value unit:: bytes
|
||||||
Default value:: 0
|
Default value:: -1
|
||||||
Applicable socket types:: all
|
Applicable socket types:: all
|
||||||
|
|
||||||
|
|
||||||
@ -619,14 +687,14 @@ Applicable socket types:: ZMQ_ROUTER
|
|||||||
ZMQ_SNDBUF: Set kernel transmit buffer size
|
ZMQ_SNDBUF: Set kernel transmit buffer size
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
The 'ZMQ_SNDBUF' option shall set the underlying kernel transmit buffer size
|
The 'ZMQ_SNDBUF' option shall set the underlying kernel transmit buffer size
|
||||||
for the 'socket' to the specified size in bytes. A value of zero means leave
|
for the 'socket' to the specified size in bytes. A value of -1 means leave
|
||||||
the OS default unchanged. For details please refer to your operating system
|
the OS default unchanged. For details please refer to your operating system
|
||||||
documentation for the 'SO_SNDBUF' socket option.
|
documentation for the 'SO_SNDBUF' socket option.
|
||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Option value type:: int
|
Option value type:: int
|
||||||
Option value unit:: bytes
|
Option value unit:: bytes
|
||||||
Default value:: 0
|
Default value:: -1
|
||||||
Applicable socket types:: all
|
Applicable socket types:: all
|
||||||
|
|
||||||
|
|
||||||
@ -670,16 +738,16 @@ Default value:: -1 (infinite)
|
|||||||
Applicable socket types:: all
|
Applicable socket types:: all
|
||||||
|
|
||||||
|
|
||||||
ZMQ_STREAM_NOTIFY: send connect notifications
|
ZMQ_STREAM_NOTIFY: send connect and disconnect notifications
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Enables connect notifications on a STREAM socket, when set to 1. By default a
|
Enables connect and disconnect notifications on a STREAM socket, when set
|
||||||
STREAM socket does not notify new connections. When notifications are enabled,
|
to 1. When notifications are enabled, the socket delivers a zero-length
|
||||||
it delivers a zero-length message to signal new client connections.
|
message when a peer connects or disconnects.
|
||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Option value type:: int
|
Option value type:: int
|
||||||
Option value unit:: 0, 1
|
Option value unit:: 0, 1
|
||||||
Default value:: 0
|
Default value:: 1
|
||||||
Applicable socket types:: ZMQ_STREAM
|
Applicable socket types:: ZMQ_STREAM
|
||||||
|
|
||||||
|
|
||||||
@ -726,9 +794,9 @@ Default value:: -1 (leave to OS default)
|
|||||||
Applicable socket types:: all, when using TCP transports.
|
Applicable socket types:: all, when using TCP transports.
|
||||||
|
|
||||||
|
|
||||||
ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT (or TCP_KEEPALIVE on some OS)
|
ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPIDLE (or TCP_KEEPALIVE on some OS)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Override 'TCP_KEEPCNT' (or 'TCP_KEEPALIVE' on some OS) socket option (where
|
Override 'TCP_KEEPIDLE' (or 'TCP_KEEPALIVE' on some OS) socket option (where
|
||||||
supported by OS). The default value of `-1` means to skip any overrides and
|
supported by OS). The default value of `-1` means to skip any overrides and
|
||||||
leave it to OS default.
|
leave it to OS default.
|
||||||
|
|
||||||
@ -793,9 +861,28 @@ Option value unit:: 0, 1
|
|||||||
Default value:: 0
|
Default value:: 0
|
||||||
Applicable socket types:: ZMQ_XPUB
|
Applicable socket types:: ZMQ_XPUB
|
||||||
|
|
||||||
ZMQ_XPUB_MANUAL: change the subscription handling to manual
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
ZMQ_XPUB_VERBOSE_UNSUBSCRIBE: provide all unsubscription messages on XPUB sockets
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Sets the 'XPUB' socket behaviour on new subscriptions and unsubscriptions.
|
||||||
|
A value of '0' is the default and passes only the last unsubscription message to
|
||||||
|
upstream. A value of '1' passes all unsubscription messages upstream.
|
||||||
|
|
||||||
|
This behaviour should be enabled in all the intermediary XPUB sockets if
|
||||||
|
ZMQ_XPUB_VERBOSE is also being used in order to allow the correct forwarding
|
||||||
|
of all the unsubscription messages.
|
||||||
|
|
||||||
|
NOTE: This behaviour only takes effect when ZMQ_XPUB_VERBOSE is also enabled.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Option value type:: int
|
||||||
|
Option value unit:: 0, 1
|
||||||
|
Default value:: 0
|
||||||
|
Applicable socket types:: ZMQ_XPUB
|
||||||
|
|
||||||
|
|
||||||
|
ZMQ_XPUB_MANUAL: change the subscription handling to manual
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Sets the 'XPUB' socket subscription handling mode manual/automatic.
|
Sets the 'XPUB' socket subscription handling mode manual/automatic.
|
||||||
A value of '0' is the default and subscription requests will be handled automatically.
|
A value of '0' is the default and subscription requests will be handled automatically.
|
||||||
A value of '1' will change the subscription requests handling to manual,
|
A value of '1' will change the subscription requests handling to manual,
|
||||||
@ -808,9 +895,25 @@ Option value unit:: 0, 1
|
|||||||
Default value:: 0
|
Default value:: 0
|
||||||
Applicable socket types:: ZMQ_XPUB
|
Applicable socket types:: ZMQ_XPUB
|
||||||
|
|
||||||
ZMQ_WELCOME_MSG: set welcome message that will be received by subscriber when connecting
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
ZMQ_XPUB_NODROP: do not silently drop messages if SENDHWM is reached
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Sets the 'XPUB' socket behaviour to return error EAGAIN if SENDHWM is
|
||||||
|
reached and the message could not be send.
|
||||||
|
|
||||||
|
A value of `0` is the default and drops the message silently when the peers
|
||||||
|
SNDHWM is reached. A value of `1` returns an 'EAGAIN' error code if the
|
||||||
|
SNDHWM is reached and ZMQ_DONTWAIT was used.
|
||||||
|
|
||||||
|
[horizontal]
|
||||||
|
Option value type:: int
|
||||||
|
Option value unit:: 0, 1
|
||||||
|
Default value:: 0
|
||||||
|
Applicable socket types:: ZMQ_XPUB, ZMQ_PUB
|
||||||
|
|
||||||
|
|
||||||
|
ZMQ_XPUB_WELCOME_MSG: set welcome message that will be received by subscriber when connecting
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Sets a welcome message the will be recieved by subscriber when connecting.
|
Sets a welcome message the will be recieved by subscriber when connecting.
|
||||||
Subscriber must subscribe to the Welcome message before connecting.
|
Subscriber must subscribe to the Welcome message before connecting.
|
||||||
Welcome message will also be sent on reconnecting.
|
Welcome message will also be sent on reconnecting.
|
||||||
@ -824,6 +927,7 @@ Option value unit:: N/A
|
|||||||
Default value:: NULL
|
Default value:: NULL
|
||||||
Applicable socket types:: ZMQ_XPUB
|
Applicable socket types:: ZMQ_XPUB
|
||||||
|
|
||||||
|
|
||||||
ZMQ_ZAP_DOMAIN: Set RFC 27 authentication domain
|
ZMQ_ZAP_DOMAIN: Set RFC 27 authentication domain
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Sets the domain for ZAP (ZMQ RFC 27) authentication. For NULL security (the
|
Sets the domain for ZAP (ZMQ RFC 27) authentication. For NULL security (the
|
||||||
@ -938,28 +1042,6 @@ Default value:: 1 (true)
|
|||||||
Applicable socket types:: all, when using TCP transports.
|
Applicable socket types:: all, when using TCP transports.
|
||||||
|
|
||||||
|
|
||||||
ZMQ_INVERT_MATCHING: Invert message filtering
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
Reverses the filtering behavior of PUB-SUB sockets, when set to 1.
|
|
||||||
|
|
||||||
On 'PUB' and 'XPUB' sockets, this causes messages to be sent to all
|
|
||||||
connected sockets 'except' those subscribed to a prefix that matches
|
|
||||||
the message. On 'SUB' sockets, this causes only incoming messages that
|
|
||||||
do 'not' match any of the socket's subscriptions to be received by the user.
|
|
||||||
|
|
||||||
Whenever 'ZMQ_INVERT_MATCHING' is set to 1 on a 'PUB' socket, all 'SUB'
|
|
||||||
sockets connecting to it must also have the option set to 1. Failure to
|
|
||||||
do so will have the 'SUB' sockets reject everything the 'PUB' socket sends
|
|
||||||
them. 'XSUB' sockets do not need to do this because they do not filter
|
|
||||||
incoming messages.
|
|
||||||
|
|
||||||
[horizontal]
|
|
||||||
Option value type:: int
|
|
||||||
Option value unit:: 0,1
|
|
||||||
Default value:: 0
|
|
||||||
Applicable socket types:: ZMQ_PUB, ZMQ_XPUB, ZMQ_SUB
|
|
||||||
|
|
||||||
|
|
||||||
RETURN VALUE
|
RETURN VALUE
|
||||||
------------
|
------------
|
||||||
The _zmq_setsockopt()_ function shall return zero if successful. Otherwise it
|
The _zmq_setsockopt()_ function shall return zero if successful. Otherwise it
|
||||||
|
@ -314,8 +314,7 @@ becomes available for sending; messages are not discarded.
|
|||||||
|
|
||||||
NOTE: 'ZMQ_PAIR' sockets are designed for inter-thread communication across
|
NOTE: 'ZMQ_PAIR' sockets are designed for inter-thread communication across
|
||||||
the linkzmq:zmq_inproc[7] transport and do not implement functionality such
|
the linkzmq:zmq_inproc[7] transport and do not implement functionality such
|
||||||
as auto-reconnection. 'ZMQ_PAIR' sockets are considered experimental and may
|
as auto-reconnection.
|
||||||
have other missing or broken aspects.
|
|
||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
.Summary of ZMQ_PAIR characteristics
|
.Summary of ZMQ_PAIR characteristics
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -306,6 +316,10 @@ ZMQ_EXPORT uint32_t zmq_msg_get_routing_id(zmq_msg_t *msg);
|
|||||||
#define ZMQ_XPUB_WELCOME_MSG 72
|
#define ZMQ_XPUB_WELCOME_MSG 72
|
||||||
#define ZMQ_STREAM_NOTIFY 73
|
#define ZMQ_STREAM_NOTIFY 73
|
||||||
#define ZMQ_INVERT_MATCHING 74
|
#define ZMQ_INVERT_MATCHING 74
|
||||||
|
#define ZMQ_HEARTBEAT_IVL 75
|
||||||
|
#define ZMQ_HEARTBEAT_TTL 76
|
||||||
|
#define ZMQ_HEARTBEAT_TIMEOUT 77
|
||||||
|
#define ZMQ_XPUB_VERBOSE_UNSUBSCRIBE 78
|
||||||
|
|
||||||
/* Message options */
|
/* Message options */
|
||||||
#define ZMQ_MORE 1
|
#define ZMQ_MORE 1
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -3,17 +3,27 @@
|
|||||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||||
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -115,7 +125,7 @@ int main (int argc, char *argv [])
|
|||||||
double megabits;
|
double megabits;
|
||||||
|
|
||||||
if (argc != 3) {
|
if (argc != 3) {
|
||||||
printf ("usage: thread_thr <message-size> <message-count>\n");
|
printf ("usage: inproc_thr <message-size> <message-count>\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -26,7 +36,9 @@
|
|||||||
#if defined ZMQ_FORCE_MUTEXES
|
#if defined ZMQ_FORCE_MUTEXES
|
||||||
#define ZMQ_ATOMIC_COUNTER_MUTEX
|
#define ZMQ_ATOMIC_COUNTER_MUTEX
|
||||||
#elif defined ZMQ_HAVE_ATOMIC_INTRINSICS
|
#elif defined ZMQ_HAVE_ATOMIC_INTRINSICS
|
||||||
#define ZMQ_ATOMIC_INTRINSIC
|
#define ZMQ_ATOMIC_COUNTER_INTRINSIC
|
||||||
|
#elif (defined ZMQ_CXX11 && defined __cplusplus && __cplusplus >= 201103L)
|
||||||
|
#define ZMQ_ATOMIC_COUNTER_CXX11
|
||||||
#elif (defined __i386__ || defined __x86_64__) && defined __GNUC__
|
#elif (defined __i386__ || defined __x86_64__) && defined __GNUC__
|
||||||
#define ZMQ_ATOMIC_COUNTER_X86
|
#define ZMQ_ATOMIC_COUNTER_X86
|
||||||
#elif defined __ARM_ARCH_7A__ && defined __GNUC__
|
#elif defined __ARM_ARCH_7A__ && defined __GNUC__
|
||||||
@ -43,6 +55,8 @@
|
|||||||
|
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
||||||
#include "mutex.hpp"
|
#include "mutex.hpp"
|
||||||
|
#elif defined ZMQ_ATOMIC_COUNTER_CXX11
|
||||||
|
#include <atomic>
|
||||||
#elif defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
#elif defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
||||||
#include "windows.hpp"
|
#include "windows.hpp"
|
||||||
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
||||||
@ -85,8 +99,10 @@ namespace zmq
|
|||||||
|
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
#if defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
||||||
old_value = InterlockedExchangeAdd ((LONG*) &value, increment_);
|
old_value = InterlockedExchangeAdd ((LONG*) &value, increment_);
|
||||||
#elif defined ZMQ_ATOMIC_INTRINSIC
|
#elif defined ZMQ_ATOMIC_COUNTER_INTRINSIC
|
||||||
old_value = __atomic_fetch_add(&value, increment_, __ATOMIC_ACQ_REL);
|
old_value = __atomic_fetch_add(&value, increment_, __ATOMIC_ACQ_REL);
|
||||||
|
#elif defined ZMQ_ATOMIC_COUNTER_CXX11
|
||||||
|
old_value = value.fetch_add(increment_, std::memory_order_acq_rel);
|
||||||
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
||||||
integer_t new_value = atomic_add_32_nv (&value, increment_);
|
integer_t new_value = atomic_add_32_nv (&value, increment_);
|
||||||
old_value = new_value - increment_;
|
old_value = new_value - increment_;
|
||||||
@ -129,9 +145,12 @@ namespace zmq
|
|||||||
LONG delta = - ((LONG) decrement);
|
LONG delta = - ((LONG) decrement);
|
||||||
integer_t old = InterlockedExchangeAdd ((LONG*) &value, delta);
|
integer_t old = InterlockedExchangeAdd ((LONG*) &value, delta);
|
||||||
return old - decrement != 0;
|
return old - decrement != 0;
|
||||||
#elif defined ZMQ_ATOMIC_INTRINSIC
|
#elif defined ZMQ_ATOMIC_COUNTER_INTRINSIC
|
||||||
integer_t nv = __atomic_sub_fetch(&value, decrement, __ATOMIC_ACQ_REL);
|
integer_t nv = __atomic_sub_fetch(&value, decrement, __ATOMIC_ACQ_REL);
|
||||||
return nv != 0;
|
return nv != 0;
|
||||||
|
#elif defined ZMQ_ATOMIC_COUNTER_CXX11
|
||||||
|
integer_t old = value.fetch_sub(decrement, std::memory_order_acq_rel);
|
||||||
|
return old - decrement != 0;
|
||||||
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
||||||
int32_t delta = - ((int32_t) decrement);
|
int32_t delta = - ((int32_t) decrement);
|
||||||
integer_t nv = atomic_add_32_nv (&value, delta);
|
integer_t nv = atomic_add_32_nv (&value, delta);
|
||||||
@ -173,40 +192,39 @@ namespace zmq
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
inline integer_t get ()
|
inline integer_t get () const
|
||||||
{
|
{
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
#if defined ZMQ_ATOMIC_COUNTER_CXX11
|
||||||
|
std::atomic<integer_t> value;
|
||||||
|
#else
|
||||||
volatile integer_t value;
|
volatile integer_t value;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
||||||
mutex_t sync;
|
mutex_t sync;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ! defined ZMQ_ATOMIC_COUNTER_CXX11
|
||||||
atomic_counter_t (const atomic_counter_t&);
|
atomic_counter_t (const atomic_counter_t&);
|
||||||
const atomic_counter_t& operator = (const atomic_counter_t&);
|
const atomic_counter_t& operator = (const atomic_counter_t&);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove macros local to this file.
|
// Remove macros local to this file.
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
|
||||||
#undef ZMQ_ATOMIC_COUNTER_WINDOWS
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
|
||||||
#undef ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_X86
|
|
||||||
#undef ZMQ_ATOMIC_COUNTER_X86
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_ARM
|
|
||||||
#undef ZMQ_ATOMIC_COUNTER_ARM
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
|
||||||
#undef ZMQ_ATOMIC_COUNTER_MUTEX
|
#undef ZMQ_ATOMIC_COUNTER_MUTEX
|
||||||
#endif
|
#undef ZMQ_ATOMIC_COUNTER_INTRINSIC
|
||||||
|
#undef ZMQ_ATOMIC_COUNTER_CXX11
|
||||||
|
#undef ZMQ_ATOMIC_COUNTER_X86
|
||||||
|
#undef ZMQ_ATOMIC_COUNTER_ARM
|
||||||
|
#undef ZMQ_ATOMIC_COUNTER_WINDOWS
|
||||||
|
#undef ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
||||||
|
#undef ZMQ_ATOMIC_COUNTER_TILE
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -26,6 +36,8 @@
|
|||||||
#define ZMQ_ATOMIC_PTR_MUTEX
|
#define ZMQ_ATOMIC_PTR_MUTEX
|
||||||
#elif defined ZMQ_HAVE_ATOMIC_INTRINSICS
|
#elif defined ZMQ_HAVE_ATOMIC_INTRINSICS
|
||||||
#define ZMQ_ATOMIC_PTR_INTRINSIC
|
#define ZMQ_ATOMIC_PTR_INTRINSIC
|
||||||
|
#elif (defined ZMQ_CXX11 && defined __cplusplus && __cplusplus >= 201103L)
|
||||||
|
#define ZMQ_ATOMIC_PTR_CXX11
|
||||||
#elif (defined __i386__ || defined __x86_64__) && defined __GNUC__
|
#elif (defined __i386__ || defined __x86_64__) && defined __GNUC__
|
||||||
#define ZMQ_ATOMIC_PTR_X86
|
#define ZMQ_ATOMIC_PTR_X86
|
||||||
#elif defined __ARM_ARCH_7A__ && defined __GNUC__
|
#elif defined __ARM_ARCH_7A__ && defined __GNUC__
|
||||||
@ -42,6 +54,8 @@
|
|||||||
|
|
||||||
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
||||||
#include "mutex.hpp"
|
#include "mutex.hpp"
|
||||||
|
#elif defined ZMQ_ATOMIC_PTR_CXX11
|
||||||
|
#include <atomic>
|
||||||
#elif defined ZMQ_ATOMIC_PTR_WINDOWS
|
#elif defined ZMQ_ATOMIC_PTR_WINDOWS
|
||||||
#include "windows.hpp"
|
#include "windows.hpp"
|
||||||
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
||||||
@ -86,6 +100,8 @@ namespace zmq
|
|||||||
return (T*) InterlockedExchangePointer ((PVOID*) &ptr, val_);
|
return (T*) InterlockedExchangePointer ((PVOID*) &ptr, val_);
|
||||||
#elif defined ZMQ_ATOMIC_PTR_INTRINSIC
|
#elif defined ZMQ_ATOMIC_PTR_INTRINSIC
|
||||||
return (T*) __atomic_exchange_n (&ptr, val_, __ATOMIC_ACQ_REL);
|
return (T*) __atomic_exchange_n (&ptr, val_, __ATOMIC_ACQ_REL);
|
||||||
|
#elif defined ZMQ_ATOMIC_PTR_CXX11
|
||||||
|
return ptr.exchange(val_, std::memory_order_acq_rel);
|
||||||
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
||||||
return (T*) atomic_swap_ptr (&ptr, val_);
|
return (T*) atomic_swap_ptr (&ptr, val_);
|
||||||
#elif defined ZMQ_ATOMIC_PTR_TILE
|
#elif defined ZMQ_ATOMIC_PTR_TILE
|
||||||
@ -136,6 +152,9 @@ namespace zmq
|
|||||||
__atomic_compare_exchange_n (&ptr, (volatile T**) &old, val_, false,
|
__atomic_compare_exchange_n (&ptr, (volatile T**) &old, val_, false,
|
||||||
__ATOMIC_RELEASE, __ATOMIC_ACQUIRE);
|
__ATOMIC_RELEASE, __ATOMIC_ACQUIRE);
|
||||||
return old;
|
return old;
|
||||||
|
#elif defined ZMQ_ATOMIC_PTR_CXX11
|
||||||
|
ptr.compare_exchange_strong(cmp_, val_, std::memory_order_acq_rel);
|
||||||
|
return cmp_;
|
||||||
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
||||||
return (T*) atomic_cas_ptr (&ptr, cmp_, val_);
|
return (T*) atomic_cas_ptr (&ptr, cmp_, val_);
|
||||||
#elif defined ZMQ_ATOMIC_PTR_TILE
|
#elif defined ZMQ_ATOMIC_PTR_TILE
|
||||||
@ -179,33 +198,32 @@ namespace zmq
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
#if defined ZMQ_ATOMIC_PTR_CXX11
|
||||||
|
std::atomic<T*> ptr;
|
||||||
|
#else
|
||||||
volatile T *ptr;
|
volatile T *ptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
||||||
mutex_t sync;
|
mutex_t sync;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ! defined ZMQ_ATOMIC_PTR_CXX11
|
||||||
atomic_ptr_t (const atomic_ptr_t&);
|
atomic_ptr_t (const atomic_ptr_t&);
|
||||||
const atomic_ptr_t &operator = (const atomic_ptr_t&);
|
const atomic_ptr_t &operator = (const atomic_ptr_t&);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove macros local to this file.
|
// Remove macros local to this file.
|
||||||
#if defined ZMQ_ATOMIC_PTR_WINDOWS
|
|
||||||
#undef ZMQ_ATOMIC_PTR_WINDOWS
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
|
||||||
#undef ZMQ_ATOMIC_PTR_ATOMIC_H
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_PTR_X86
|
|
||||||
#undef ZMQ_ATOMIC_PTR_X86
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_PTR_ARM
|
|
||||||
#undef ZMQ_ATOMIC_PTR_ARM
|
|
||||||
#endif
|
|
||||||
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
|
||||||
#undef ZMQ_ATOMIC_PTR_MUTEX
|
#undef ZMQ_ATOMIC_PTR_MUTEX
|
||||||
#endif
|
#undef ZMQ_ATOMIC_PTR_INTRINSIC
|
||||||
|
#undef ZMQ_ATOMIC_PTR_CXX11
|
||||||
|
#undef ZMQ_ATOMIC_PTR_X86
|
||||||
|
#undef ZMQ_ATOMIC_PTR_ARM
|
||||||
|
#undef ZMQ_ATOMIC_PTR_TILE
|
||||||
|
#undef ZMQ_ATOMIC_PTR_WINDOWS
|
||||||
|
#undef ZMQ_ATOMIC_PTR_ATOMIC_H
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
26
src/blob.hpp
26
src/blob.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -31,6 +41,47 @@
|
|||||||
|
|
||||||
#include "windows.hpp"
|
#include "windows.hpp"
|
||||||
|
|
||||||
|
// Condition variable is supported from Windows Vista only, to use condition variable define _WIN32_WINNT to 0x0600
|
||||||
|
#if _WIN32_WINNT < 0x0600
|
||||||
|
|
||||||
|
namespace zmq
|
||||||
|
{
|
||||||
|
|
||||||
|
class condition_variable_t
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
inline condition_variable_t ()
|
||||||
|
{
|
||||||
|
zmq_assert(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline ~condition_variable_t ()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int wait (mutex_t* mutex_, int timeout_ )
|
||||||
|
{
|
||||||
|
zmq_assert(false);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void broadcast ()
|
||||||
|
{
|
||||||
|
zmq_assert(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
// Disable copy construction and assignment.
|
||||||
|
condition_variable_t (const condition_variable_t&);
|
||||||
|
void operator = (const condition_variable_t&);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
namespace zmq
|
namespace zmq
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -79,6 +130,8 @@ namespace zmq
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
49
src/ctx.cpp
49
src/ctx.cpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -519,15 +529,6 @@ void zmq::ctx_t::connect_inproc_sockets (zmq::socket_base_t *bind_socket_,
|
|||||||
errno_assert (rc == 0);
|
errno_assert (rc == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int sndhwm = 0;
|
|
||||||
if (pending_connection_.endpoint.options.sndhwm != 0 && bind_options.rcvhwm != 0)
|
|
||||||
sndhwm = pending_connection_.endpoint.options.sndhwm + bind_options.rcvhwm;
|
|
||||||
|
|
||||||
int rcvhwm = 0;
|
|
||||||
if (pending_connection_.endpoint.options.rcvhwm != 0 && bind_options.sndhwm != 0)
|
|
||||||
rcvhwm = pending_connection_.endpoint.options.rcvhwm + bind_options.sndhwm;
|
|
||||||
|
|
||||||
bool conflate = pending_connection_.endpoint.options.conflate &&
|
bool conflate = pending_connection_.endpoint.options.conflate &&
|
||||||
(pending_connection_.endpoint.options.type == ZMQ_DEALER ||
|
(pending_connection_.endpoint.options.type == ZMQ_DEALER ||
|
||||||
pending_connection_.endpoint.options.type == ZMQ_PULL ||
|
pending_connection_.endpoint.options.type == ZMQ_PULL ||
|
||||||
@ -535,9 +536,17 @@ void zmq::ctx_t::connect_inproc_sockets (zmq::socket_base_t *bind_socket_,
|
|||||||
pending_connection_.endpoint.options.type == ZMQ_PUB ||
|
pending_connection_.endpoint.options.type == ZMQ_PUB ||
|
||||||
pending_connection_.endpoint.options.type == ZMQ_SUB);
|
pending_connection_.endpoint.options.type == ZMQ_SUB);
|
||||||
|
|
||||||
int hwms [2] = {conflate? -1 : sndhwm, conflate? -1 : rcvhwm};
|
if (!conflate) {
|
||||||
pending_connection_.connect_pipe->set_hwms(hwms [1], hwms [0]);
|
pending_connection_.connect_pipe->set_hwms_boost(bind_options.sndhwm, bind_options.rcvhwm);
|
||||||
pending_connection_.bind_pipe->set_hwms(hwms [0], hwms [1]);
|
pending_connection_.bind_pipe->set_hwms_boost(pending_connection_.endpoint.options.sndhwm, pending_connection_.endpoint.options.rcvhwm);
|
||||||
|
|
||||||
|
pending_connection_.connect_pipe->set_hwms(pending_connection_.endpoint.options.rcvhwm, pending_connection_.endpoint.options.sndhwm);
|
||||||
|
pending_connection_.bind_pipe->set_hwms(bind_options.rcvhwm, bind_options.sndhwm);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pending_connection_.connect_pipe->set_hwms(-1, -1);
|
||||||
|
pending_connection_.bind_pipe->set_hwms(-1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
if (side_ == bind_side) {
|
if (side_ == bind_side) {
|
||||||
command_t cmd;
|
command_t cmd;
|
||||||
|
26
src/ctx.hpp
26
src/ctx.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -120,6 +130,8 @@ int zmq::curve_client_t::encode (msg_t *msg_)
|
|||||||
uint8_t flags = 0;
|
uint8_t flags = 0;
|
||||||
if (msg_->flags () & msg_t::more)
|
if (msg_->flags () & msg_t::more)
|
||||||
flags |= 0x01;
|
flags |= 0x01;
|
||||||
|
if (msg_->flags () & msg_t::command)
|
||||||
|
flags |= 0x02;
|
||||||
|
|
||||||
uint8_t message_nonce [crypto_box_NONCEBYTES];
|
uint8_t message_nonce [crypto_box_NONCEBYTES];
|
||||||
memcpy (message_nonce, "CurveZMQMESSAGEC", 16);
|
memcpy (message_nonce, "CurveZMQMESSAGEC", 16);
|
||||||
@ -213,6 +225,8 @@ int zmq::curve_client_t::decode (msg_t *msg_)
|
|||||||
const uint8_t flags = message_plaintext [crypto_box_ZEROBYTES];
|
const uint8_t flags = message_plaintext [crypto_box_ZEROBYTES];
|
||||||
if (flags & 0x01)
|
if (flags & 0x01)
|
||||||
msg_->set_flags (msg_t::more);
|
msg_->set_flags (msg_t::more);
|
||||||
|
if (flags & 0x02)
|
||||||
|
msg_->set_flags (msg_t::command);
|
||||||
|
|
||||||
memcpy (msg_->data (),
|
memcpy (msg_->data (),
|
||||||
message_plaintext + crypto_box_ZEROBYTES + 1,
|
message_plaintext + crypto_box_ZEROBYTES + 1,
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -132,6 +142,8 @@ int zmq::curve_server_t::encode (msg_t *msg_)
|
|||||||
uint8_t flags = 0;
|
uint8_t flags = 0;
|
||||||
if (msg_->flags () & msg_t::more)
|
if (msg_->flags () & msg_t::more)
|
||||||
flags |= 0x01;
|
flags |= 0x01;
|
||||||
|
if (msg_->flags () & msg_t::command)
|
||||||
|
flags |= 0x02;
|
||||||
|
|
||||||
uint8_t *message_plaintext = static_cast <uint8_t *> (malloc (mlen));
|
uint8_t *message_plaintext = static_cast <uint8_t *> (malloc (mlen));
|
||||||
alloc_assert (message_plaintext);
|
alloc_assert (message_plaintext);
|
||||||
@ -222,6 +234,8 @@ int zmq::curve_server_t::decode (msg_t *msg_)
|
|||||||
const uint8_t flags = message_plaintext [crypto_box_ZEROBYTES];
|
const uint8_t flags = message_plaintext [crypto_box_ZEROBYTES];
|
||||||
if (flags & 0x01)
|
if (flags & 0x01)
|
||||||
msg_->set_flags (msg_t::more);
|
msg_->set_flags (msg_t::more);
|
||||||
|
if (flags & 0x02)
|
||||||
|
msg_->set_flags (msg_t::command);
|
||||||
|
|
||||||
memcpy (msg_->data (),
|
memcpy (msg_->data (),
|
||||||
message_plaintext + crypto_box_ZEROBYTES + 1,
|
message_plaintext + crypto_box_ZEROBYTES + 1,
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -20,14 +30,14 @@
|
|||||||
#ifndef __ZMQ_DECODER_HPP_INCLUDED__
|
#ifndef __ZMQ_DECODER_HPP_INCLUDED__
|
||||||
#define __ZMQ_DECODER_HPP_INCLUDED__
|
#define __ZMQ_DECODER_HPP_INCLUDED__
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
#include "decoder_allocators.hpp"
|
||||||
#include "err.hpp"
|
#include "err.hpp"
|
||||||
#include "msg.hpp"
|
|
||||||
#include "i_decoder.hpp"
|
#include "i_decoder.hpp"
|
||||||
|
#include "msg.hpp"
|
||||||
#include "stdint.hpp"
|
#include "stdint.hpp"
|
||||||
|
|
||||||
namespace zmq
|
namespace zmq
|
||||||
@ -42,31 +52,34 @@ namespace zmq
|
|||||||
//
|
//
|
||||||
// This class implements the state machine that parses the incoming buffer.
|
// This class implements the state machine that parses the incoming buffer.
|
||||||
// Derived class should implement individual state machine actions.
|
// Derived class should implement individual state machine actions.
|
||||||
|
//
|
||||||
template <typename T> class decoder_base_t : public i_decoder
|
// Buffer managment is done by an allocator policy.
|
||||||
|
template <typename T, typename A = c_single_allocator>
|
||||||
|
class decoder_base_t : public i_decoder
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
inline decoder_base_t (size_t bufsize_) :
|
explicit decoder_base_t (A *allocator_) :
|
||||||
next (NULL),
|
next (NULL),
|
||||||
read_pos (NULL),
|
read_pos (NULL),
|
||||||
to_read (0),
|
to_read (0),
|
||||||
bufsize (bufsize_)
|
allocator(allocator_)
|
||||||
{
|
{
|
||||||
buf = (unsigned char*) malloc (bufsize_);
|
buf = allocator->allocate ();
|
||||||
alloc_assert (buf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// The destructor doesn't have to be virtual. It is mad virtual
|
// The destructor doesn't have to be virtual. It is made virtual
|
||||||
// just to keep ICC and code checking tools from complaining.
|
// just to keep ICC and code checking tools from complaining.
|
||||||
inline virtual ~decoder_base_t ()
|
virtual ~decoder_base_t ()
|
||||||
{
|
{
|
||||||
free (buf);
|
allocator->deallocate ();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns a buffer to be filled with binary data.
|
// Returns a buffer to be filled with binary data.
|
||||||
inline void get_buffer (unsigned char **data_, size_t *size_)
|
void get_buffer (unsigned char **data_, std::size_t *size_)
|
||||||
{
|
{
|
||||||
|
buf = allocator->allocate ();
|
||||||
|
|
||||||
// If we are expected to read large message, we'll opt for zero-
|
// If we are expected to read large message, we'll opt for zero-
|
||||||
// copy, i.e. we'll ask caller to fill the data directly to the
|
// copy, i.e. we'll ask caller to fill the data directly to the
|
||||||
// message. Note that subsequent read(s) are non-blocking, thus
|
// message. Note that subsequent read(s) are non-blocking, thus
|
||||||
@ -75,14 +88,14 @@ namespace zmq
|
|||||||
// As a consequence, large messages being received won't block
|
// As a consequence, large messages being received won't block
|
||||||
// other engines running in the same I/O thread for excessive
|
// other engines running in the same I/O thread for excessive
|
||||||
// amounts of time.
|
// amounts of time.
|
||||||
if (to_read >= bufsize) {
|
if (to_read >= allocator->size ()) {
|
||||||
*data_ = read_pos;
|
*data_ = read_pos;
|
||||||
*size_ = to_read;
|
*size_ = to_read;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
*data_ = buf;
|
*data_ = buf;
|
||||||
*size_ = bufsize;
|
*size_ = allocator->size ();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Processes the data in the buffer previously allocated using
|
// Processes the data in the buffer previously allocated using
|
||||||
@ -91,8 +104,8 @@ namespace zmq
|
|||||||
// whole message was decoded or 0 when more data is required.
|
// whole message was decoded or 0 when more data is required.
|
||||||
// On error, -1 is returned and errno set accordingly.
|
// On error, -1 is returned and errno set accordingly.
|
||||||
// Number of bytes processed is returned in byts_used_.
|
// Number of bytes processed is returned in byts_used_.
|
||||||
inline int decode (const unsigned char *data_, size_t size_,
|
int decode (const unsigned char *data_, std::size_t size_,
|
||||||
size_t &bytes_used_)
|
std::size_t &bytes_used_)
|
||||||
{
|
{
|
||||||
bytes_used_ = 0;
|
bytes_used_ = 0;
|
||||||
|
|
||||||
@ -106,7 +119,7 @@ namespace zmq
|
|||||||
bytes_used_ = size_;
|
bytes_used_ = size_;
|
||||||
|
|
||||||
while (!to_read) {
|
while (!to_read) {
|
||||||
const int rc = (static_cast <T*> (this)->*next) ();
|
const int rc = (static_cast <T *> (this)->*next) (data_ + bytes_used_);
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -115,15 +128,21 @@ namespace zmq
|
|||||||
|
|
||||||
while (bytes_used_ < size_) {
|
while (bytes_used_ < size_) {
|
||||||
// Copy the data from buffer to the message.
|
// Copy the data from buffer to the message.
|
||||||
const size_t to_copy = std::min (to_read, size_ - bytes_used_);
|
const std::size_t to_copy = std::min (to_read, size_ - bytes_used_);
|
||||||
memcpy (read_pos, data_ + bytes_used_, to_copy);
|
// only copy when the destination address is different from the
|
||||||
|
// current address in the buffer
|
||||||
|
if (read_pos != data_ + bytes_used_) {
|
||||||
|
std::memcpy (read_pos, data_ + bytes_used_, to_copy);
|
||||||
|
}
|
||||||
|
|
||||||
read_pos += to_copy;
|
read_pos += to_copy;
|
||||||
to_read -= to_copy;
|
to_read -= to_copy;
|
||||||
bytes_used_ += to_copy;
|
bytes_used_ += to_copy;
|
||||||
// Try to get more space in the message to fill in.
|
// Try to get more space in the message to fill in.
|
||||||
// If none is available, return.
|
// If none is available, return.
|
||||||
while (to_read == 0) {
|
while (to_read == 0) {
|
||||||
const int rc = (static_cast <T*> (this)->*next) ();
|
// pass current address in the buffer
|
||||||
|
const int rc = (static_cast <T *> (this)->*next) (data_ + bytes_used_);
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -132,17 +151,22 @@ namespace zmq
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void resize_buffer (std::size_t new_size)
|
||||||
|
{
|
||||||
|
allocator->resize (new_size);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Prototype of state machine action. Action should return false if
|
// Prototype of state machine action. Action should return false if
|
||||||
// it is unable to push the data to the system.
|
// it is unable to push the data to the system.
|
||||||
typedef int (T::*step_t) ();
|
typedef int (T:: *step_t) (unsigned char const *);
|
||||||
|
|
||||||
// This function should be called from derived class to read data
|
// This function should be called from derived class to read data
|
||||||
// from the buffer and schedule next state machine action.
|
// from the buffer and schedule next state machine action.
|
||||||
inline void next_step (void *read_pos_, size_t to_read_, step_t next_)
|
void next_step (void *read_pos_, std::size_t to_read_, step_t next_)
|
||||||
{
|
{
|
||||||
read_pos = (unsigned char*) read_pos_;
|
read_pos = static_cast <unsigned char*> (read_pos_);
|
||||||
to_read = to_read_;
|
to_read = to_read_;
|
||||||
next = next_;
|
next = next_;
|
||||||
}
|
}
|
||||||
@ -158,16 +182,15 @@ namespace zmq
|
|||||||
unsigned char *read_pos;
|
unsigned char *read_pos;
|
||||||
|
|
||||||
// How much data to read before taking next step.
|
// How much data to read before taking next step.
|
||||||
size_t to_read;
|
std::size_t to_read;
|
||||||
|
|
||||||
// The duffer for data to decode.
|
// The duffer for data to decode.
|
||||||
size_t bufsize;
|
A *allocator;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
|
|
||||||
decoder_base_t (const decoder_base_t&);
|
decoder_base_t (const decoder_base_t &);
|
||||||
const decoder_base_t &operator = (const decoder_base_t&);
|
const decoder_base_t &operator = (const decoder_base_t &);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
142
src/decoder_allocators.cpp
Normal file
142
src/decoder_allocators.cpp
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
/*
|
||||||
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
As a special exception, the Contributors give you permission to link
|
||||||
|
this library with independent modules to produce an executable,
|
||||||
|
regardless of the license terms of these independent modules, and to
|
||||||
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "decoder_allocators.hpp"
|
||||||
|
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
|
#include "msg.hpp"
|
||||||
|
|
||||||
|
zmq::shared_message_memory_allocator::shared_message_memory_allocator (std::size_t bufsize_) :
|
||||||
|
buf(NULL),
|
||||||
|
bufsize(0),
|
||||||
|
max_size(bufsize_),
|
||||||
|
msg_refcnt(NULL),
|
||||||
|
maxCounters (static_cast <size_t> (std::ceil (static_cast <double> (max_size) / static_cast <double> (msg_t::max_vsm_size))))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
zmq::shared_message_memory_allocator::shared_message_memory_allocator (std::size_t bufsize_, std::size_t maxMessages) :
|
||||||
|
buf(NULL),
|
||||||
|
bufsize(0),
|
||||||
|
max_size(bufsize_),
|
||||||
|
msg_refcnt(NULL),
|
||||||
|
maxCounters(maxMessages)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
zmq::shared_message_memory_allocator::~shared_message_memory_allocator ()
|
||||||
|
{
|
||||||
|
deallocate();
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char* zmq::shared_message_memory_allocator::allocate ()
|
||||||
|
{
|
||||||
|
if (buf) {
|
||||||
|
// release reference count to couple lifetime to messages
|
||||||
|
zmq::atomic_counter_t* c = reinterpret_cast<zmq::atomic_counter_t* >(buf);
|
||||||
|
|
||||||
|
// if refcnt drops to 0, there are no message using the buffer
|
||||||
|
// because either all messages have been closed or only vsm-messages
|
||||||
|
// were created
|
||||||
|
if (c->sub (1)) {
|
||||||
|
// buffer is still in use as message data. "Release" it and create a new one
|
||||||
|
// release pointer because we are going to create a new buffer
|
||||||
|
release ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if buf != NULL it is not used by any message so we can re-use it for the next run
|
||||||
|
if (!buf) {
|
||||||
|
// allocate memory for reference counters together with reception buffer
|
||||||
|
std::size_t const allocationsize =
|
||||||
|
max_size + sizeof (zmq::atomic_counter_t) +
|
||||||
|
maxCounters * sizeof (zmq::atomic_counter_t);
|
||||||
|
|
||||||
|
buf = static_cast <unsigned char *> (std::malloc (allocationsize));
|
||||||
|
alloc_assert (buf);
|
||||||
|
|
||||||
|
new (buf) atomic_counter_t (1);
|
||||||
|
} else {
|
||||||
|
// release reference count to couple lifetime to messages
|
||||||
|
zmq::atomic_counter_t *c = reinterpret_cast <zmq::atomic_counter_t *> (buf);
|
||||||
|
c->set (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bufsize = max_size;
|
||||||
|
msg_refcnt = reinterpret_cast <zmq::atomic_counter_t*> (buf + sizeof (atomic_counter_t) + max_size);
|
||||||
|
return buf + sizeof (zmq::atomic_counter_t);
|
||||||
|
}
|
||||||
|
|
||||||
|
void zmq::shared_message_memory_allocator::deallocate ()
|
||||||
|
{
|
||||||
|
std::free (buf);
|
||||||
|
buf = NULL;
|
||||||
|
bufsize = 0;
|
||||||
|
msg_refcnt = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char* zmq::shared_message_memory_allocator::release ()
|
||||||
|
{
|
||||||
|
unsigned char* b = buf;
|
||||||
|
buf = NULL;
|
||||||
|
bufsize = 0;
|
||||||
|
msg_refcnt = NULL;
|
||||||
|
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
void zmq::shared_message_memory_allocator::inc_ref ()
|
||||||
|
{
|
||||||
|
(reinterpret_cast <zmq::atomic_counter_t*> (buf))->add (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void zmq::shared_message_memory_allocator::call_dec_ref(void*, void* hint)
|
||||||
|
{
|
||||||
|
zmq_assert (hint);
|
||||||
|
unsigned char* buf = static_cast <unsigned char*> (hint);
|
||||||
|
zmq::atomic_counter_t* c = reinterpret_cast <zmq::atomic_counter_t*> (buf);
|
||||||
|
|
||||||
|
if (!c->sub (1)) {
|
||||||
|
c->~atomic_counter_t ();
|
||||||
|
std::free (buf);
|
||||||
|
buf = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::size_t zmq::shared_message_memory_allocator::size () const
|
||||||
|
{
|
||||||
|
return bufsize;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char* zmq::shared_message_memory_allocator::data ()
|
||||||
|
{
|
||||||
|
return buf + sizeof (zmq::atomic_counter_t);
|
||||||
|
}
|
154
src/decoder_allocators.hpp
Normal file
154
src/decoder_allocators.hpp
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
/*
|
||||||
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
As a special exception, the Contributors give you permission to link
|
||||||
|
this library with independent modules to produce an executable,
|
||||||
|
regardless of the license terms of these independent modules, and to
|
||||||
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __ZMQ_DECODER_ALLOCATORS_HPP_INCLUDED__
|
||||||
|
#define __ZMQ_DECODER_ALLOCATORS_HPP_INCLUDED__
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
|
#include "atomic_counter.hpp"
|
||||||
|
#include "err.hpp"
|
||||||
|
|
||||||
|
namespace zmq
|
||||||
|
{
|
||||||
|
// Static buffer policy.
|
||||||
|
class c_single_allocator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit c_single_allocator (std::size_t bufsize_) :
|
||||||
|
bufsize(bufsize_),
|
||||||
|
buf(static_cast <unsigned char*> (std::malloc (bufsize)))
|
||||||
|
{
|
||||||
|
alloc_assert (buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
~c_single_allocator ()
|
||||||
|
{
|
||||||
|
std::free (buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char* allocate ()
|
||||||
|
{
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
void deallocate ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
std::size_t size () const
|
||||||
|
{
|
||||||
|
return bufsize;
|
||||||
|
}
|
||||||
|
|
||||||
|
void resize (std::size_t new_size)
|
||||||
|
{
|
||||||
|
bufsize = new_size;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
std::size_t bufsize;
|
||||||
|
unsigned char* buf;
|
||||||
|
|
||||||
|
c_single_allocator (c_single_allocator const&);
|
||||||
|
c_single_allocator& operator = (c_single_allocator const&);
|
||||||
|
};
|
||||||
|
|
||||||
|
// This allocater allocates a reference counted buffer which is used by v2_decoder_t
|
||||||
|
// to use zero-copy msg::init_data to create messages with memory from this buffer as
|
||||||
|
// data storage.
|
||||||
|
//
|
||||||
|
// The buffer is allocated with a reference count of 1 to make sure that is is alive while
|
||||||
|
// decoding messages. Otherwise, it is possible that e.g. the first message increases the count
|
||||||
|
// from zero to one, gets passed to the user application, processed in the user thread and deleted
|
||||||
|
// which would then deallocate the buffer. The drawback is that the buffer may be allocated longer
|
||||||
|
// than necessary because it is only deleted when allocate is called the next time.
|
||||||
|
class shared_message_memory_allocator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit shared_message_memory_allocator (std::size_t bufsize_);
|
||||||
|
|
||||||
|
// Create an allocator for a maximum number of messages
|
||||||
|
shared_message_memory_allocator (std::size_t bufsize_, std::size_t maxMessages);
|
||||||
|
|
||||||
|
~shared_message_memory_allocator ();
|
||||||
|
|
||||||
|
// Allocate a new buffer
|
||||||
|
//
|
||||||
|
// This releases the current buffer to be bound to the lifetime of the messages
|
||||||
|
// created on this bufer.
|
||||||
|
unsigned char* allocate ();
|
||||||
|
|
||||||
|
// force deallocation of buffer.
|
||||||
|
void deallocate ();
|
||||||
|
|
||||||
|
// Give up ownership of the buffer. The buffer's lifetime is now coupled to
|
||||||
|
// the messages constructed on top of it.
|
||||||
|
unsigned char* release ();
|
||||||
|
|
||||||
|
void inc_ref ();
|
||||||
|
|
||||||
|
static void call_dec_ref (void*, void* buffer);
|
||||||
|
|
||||||
|
std::size_t size () const;
|
||||||
|
|
||||||
|
// Return pointer to the first message data byte.
|
||||||
|
unsigned char* data ();
|
||||||
|
|
||||||
|
// Return pointer to the first byte of the buffer.
|
||||||
|
unsigned char* buffer ()
|
||||||
|
{
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
void resize (std::size_t new_size)
|
||||||
|
{
|
||||||
|
bufsize = new_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
zmq::atomic_counter_t* provide_refcnt ()
|
||||||
|
{
|
||||||
|
return msg_refcnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
void advance_refcnt ()
|
||||||
|
{
|
||||||
|
msg_refcnt++;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
unsigned char* buf;
|
||||||
|
std::size_t bufsize;
|
||||||
|
std::size_t max_size;
|
||||||
|
zmq::atomic_counter_t* msg_refcnt;
|
||||||
|
std::size_t maxCounters;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/dist.cpp
26
src/dist.cpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/dist.hpp
26
src/dist.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
32
src/err.cpp
32
src/err.cpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -202,13 +212,13 @@ void zmq::win_error (char *buffer_, size_t buffer_size_)
|
|||||||
{
|
{
|
||||||
DWORD errcode = GetLastError ();
|
DWORD errcode = GetLastError ();
|
||||||
#if defined _WIN32_WCE
|
#if defined _WIN32_WCE
|
||||||
DWORD rc = FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM |
|
DWORD rc = FormatMessageW (FORMAT_MESSAGE_FROM_SYSTEM |
|
||||||
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errcode, MAKELANGID(LANG_NEUTRAL,
|
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errcode, MAKELANGID(LANG_NEUTRAL,
|
||||||
SUBLANG_DEFAULT), (LPWSTR)buffer_, buffer_size_ / sizeof(wchar_t), NULL );
|
SUBLANG_DEFAULT), (LPWSTR)buffer_, buffer_size_ / sizeof(wchar_t), NULL);
|
||||||
#else
|
#else
|
||||||
DWORD rc = FormatMessageA (FORMAT_MESSAGE_FROM_SYSTEM |
|
DWORD rc = FormatMessageA (FORMAT_MESSAGE_FROM_SYSTEM |
|
||||||
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errcode, MAKELANGID(LANG_NEUTRAL,
|
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errcode, MAKELANGID(LANG_NEUTRAL,
|
||||||
SUBLANG_DEFAULT), buffer_, (DWORD) buffer_size_, NULL );
|
SUBLANG_DEFAULT), buffer_, (DWORD) buffer_size_, NULL);
|
||||||
#endif
|
#endif
|
||||||
zmq_assert (rc);
|
zmq_assert (rc);
|
||||||
}
|
}
|
||||||
|
26
src/err.hpp
26
src/err.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/fd.hpp
26
src/fd.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/fq.cpp
26
src/fq.cpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/fq.hpp
26
src/fq.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -70,6 +80,8 @@ int zmq::gssapi_mechanism_base_t::encode_message (msg_t *msg_)
|
|||||||
uint8_t flags = 0;
|
uint8_t flags = 0;
|
||||||
if (msg_->flags () & msg_t::more)
|
if (msg_->flags () & msg_t::more)
|
||||||
flags |= 0x01;
|
flags |= 0x01;
|
||||||
|
if (msg ->flags () & msg_t::command)
|
||||||
|
flags |= 0x02;
|
||||||
|
|
||||||
uint8_t *plaintext_buffer = static_cast <uint8_t *>(malloc(msg_->size ()+1));
|
uint8_t *plaintext_buffer = static_cast <uint8_t *>(malloc(msg_->size ()+1));
|
||||||
plaintext_buffer[0] = flags;
|
plaintext_buffer[0] = flags;
|
||||||
@ -167,6 +179,8 @@ int zmq::gssapi_mechanism_base_t::decode_message (msg_t *msg_)
|
|||||||
const uint8_t flags = static_cast <char *> (plaintext.value)[0];
|
const uint8_t flags = static_cast <char *> (plaintext.value)[0];
|
||||||
if (flags & 0x01)
|
if (flags & 0x01)
|
||||||
msg_->set_flags (msg_t::more);
|
msg_->set_flags (msg_t::more);
|
||||||
|
if (flags & 0x02)
|
||||||
|
msg_->set_flags (msg_t::command);
|
||||||
|
|
||||||
memcpy (msg_->data (), static_cast <char *> (plaintext.value)+1, plaintext.length-1);
|
memcpy (msg_->data (), static_cast <char *> (plaintext.value)+1, plaintext.length-1);
|
||||||
|
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -36,6 +46,7 @@ namespace zmq
|
|||||||
|
|
||||||
virtual void get_buffer (unsigned char **data_, size_t *size_) = 0;
|
virtual void get_buffer (unsigned char **data_, size_t *size_) = 0;
|
||||||
|
|
||||||
|
virtual void resize_buffer(size_t) = 0;
|
||||||
// Decodes data pointed to by data_.
|
// Decodes data pointed to by data_.
|
||||||
// When a message is decoded, 1 is returned.
|
// When a message is decoded, 1 is returned.
|
||||||
// When the decoder needs more data, 0 is returnd.
|
// When the decoder needs more data, 0 is returnd.
|
||||||
@ -44,6 +55,8 @@ namespace zmq
|
|||||||
size_t &processed) = 0;
|
size_t &processed) = 0;
|
||||||
|
|
||||||
virtual msg_t *msg () = 0;
|
virtual msg_t *msg () = 0;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,20 +1,30 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __ZMQ_I_POLL_EVENTS_HPP_INCLUDED__
|
#ifndef __ZMQ_I_POLL_EVENTS_HPP_INCLUDED__
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/ip.cpp
26
src/ip.cpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/ip.hpp
26
src/ip.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/lb.cpp
26
src/lb.cpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
26
src/lb.hpp
26
src/lb.hpp
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -7,4 +7,5 @@ Name: libzmq
|
|||||||
Description: 0MQ c++ library
|
Description: 0MQ c++ library
|
||||||
Version: @ZMQ_VERSION_MAJOR@.@ZMQ_VERSION_MINOR@.@ZMQ_VERSION_PATCH@
|
Version: @ZMQ_VERSION_MAJOR@.@ZMQ_VERSION_MINOR@.@ZMQ_VERSION_PATCH@
|
||||||
Libs: -L${libdir} -lzmq
|
Libs: -L${libdir} -lzmq
|
||||||
|
Libs.private: -lstdc++
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
@ -7,4 +7,5 @@ Name: libzmq
|
|||||||
Description: 0MQ c++ library
|
Description: 0MQ c++ library
|
||||||
Version: @VERSION@
|
Version: @VERSION@
|
||||||
Libs: -L${libdir} -lzmq
|
Libs: -L${libdir} -lzmq
|
||||||
|
Libs.private: -lstdc++
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
|
||||||
|
|
||||||
This file is part of 0MQ.
|
This file is part of libzmq, the ZeroMQ core engine in C++.
|
||||||
|
|
||||||
0MQ is free software; you can redistribute it and/or modify it under
|
libzmq is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the GNU Lesser General Public License as published by
|
the terms of the GNU Lesser General Public License (LGPL) as published
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
by the Free Software Foundation; either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
0MQ is distributed in the hope that it will be useful,
|
As a special exception, the Contributors give you permission to link
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
this library with independent modules to produce an executable,
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
regardless of the license terms of these independent modules, and to
|
||||||
GNU Lesser General Public License for more details.
|
copy and distribute the resulting executable under terms of your choice,
|
||||||
|
provided that you also meet, for each linked independent module, the
|
||||||
|
terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library.
|
||||||
|
If you modify this library, you must extend this exception to your
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user