mirror of
https://github.com/zeromq/libzmq.git
synced 2025-04-02 17:18:10 +00:00
Compare commits
53 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
34f7fa2202 | ||
|
a23330dbe2 | ||
|
60899603a4 | ||
|
90b4f410a0 | ||
|
64db7d28fe | ||
|
1f4dd54f94 | ||
|
0ed7a08cd9 | ||
|
5f408ba371 | ||
|
4c6cff6391 | ||
|
b71434140e | ||
|
6aaafe0135 | ||
|
ce17349f8b | ||
|
aa77c03a37 | ||
|
b95d94935e | ||
|
59c91227b4 | ||
|
ee29bcd64a | ||
|
d203ad2b7a | ||
|
de290e91e3 | ||
|
c2fae81460 | ||
|
0a1aa1e4a7 | ||
|
43a8b3c6c8 | ||
|
aa885c5a15 | ||
|
2a75ef07be | ||
|
4a5ece54b8 | ||
|
45b2924a0a | ||
|
481cc3fa2c | ||
|
ff231d2673 | ||
|
3b264019a2 | ||
|
959a133520 | ||
|
86a42e1e43 | ||
|
665d1d4657 | ||
|
2622e618f0 | ||
|
b268effd88 | ||
|
814dab58a4 | ||
|
61050beca6 | ||
|
481d536713 | ||
|
3e08ecc012 | ||
|
267e856494 | ||
|
aa9a2c8429 | ||
|
05c2025412 | ||
|
f0c471aaab | ||
|
b6ca9b2983 | ||
|
cd991c72c8 | ||
|
aa3e097996 | ||
|
a6039d8716 | ||
|
95caddb9a1 | ||
|
b30a19ebde | ||
|
77303a1926 | ||
|
6b80df14f4 | ||
|
058ad60b9a | ||
|
f8b3cc8108 | ||
|
9d31965548 | ||
|
dbb7e3dc01 |
16
.github/workflows/CI.yaml
vendored
16
.github/workflows/CI.yaml
vendored
@ -25,7 +25,7 @@ jobs:
|
||||
ENABLE_DRAFTS: ON
|
||||
- os: ubuntu-latest
|
||||
BUILD_TYPE: default
|
||||
PACKAGES: asciidoc xmlto
|
||||
PACKAGES: asciidoctor
|
||||
DRAFT: disabled
|
||||
POLLER: select
|
||||
- os: ubuntu-latest
|
||||
@ -34,6 +34,7 @@ jobs:
|
||||
POLLER: poll
|
||||
- os: ubuntu-latest
|
||||
BUILD_TYPE: android
|
||||
NDK_VERSION: android-ndk-r25
|
||||
DRAFT: disabled
|
||||
- os: ubuntu-latest
|
||||
BUILD_TYPE: coverage
|
||||
@ -55,6 +56,13 @@ jobs:
|
||||
DRAFT: enabled
|
||||
PACKAGES: cmake libsodium-dev
|
||||
TLS: enabled
|
||||
- os: ubuntu-latest
|
||||
BUILD_TYPE: cmake
|
||||
CURVE: libsodium
|
||||
DRAFT: enabled
|
||||
GSSAPI: enabled
|
||||
PACKAGES: cmake libsodium-dev libkrb5-dev
|
||||
TLS: enabled
|
||||
- os: ubuntu-latest
|
||||
BUILD_TYPE: cmake
|
||||
DRAFT: enabled
|
||||
@ -105,11 +113,11 @@ jobs:
|
||||
CXX: clang++
|
||||
- os: macos-latest
|
||||
BUILD_TYPE: default
|
||||
PACKAGES: automake autoconf
|
||||
PACKAGES: automake autoconf libtool
|
||||
DRAFT: enabled
|
||||
- os: macos-latest
|
||||
BUILD_TYPE: default
|
||||
PACKAGES: automake autoconf libsodium
|
||||
PACKAGES: automake autoconf libtool libsodium
|
||||
CURVE: libsodium
|
||||
DRAFT: disabled
|
||||
env:
|
||||
@ -141,6 +149,8 @@ jobs:
|
||||
USE_NSS: ${{ matrix.USE_NSS }}
|
||||
VMCI: ${{ matrix.VMCI }}
|
||||
POLLER: ${{ matrix.POLLER }}
|
||||
NDK_VERSION: ${{ matrix.NDK_VERSION }}
|
||||
ANDROID_NDK_ROOT: /tmp/${{ matrix.NDK_VERSION }}
|
||||
steps:
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
|
50
.github/workflows/Docs.yaml
vendored
Normal file
50
.github/workflows/Docs.yaml
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
# Simple workflow for deploying static content to GitHub Pages
|
||||
name: Deploy API docs content to Pages
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the default branch
|
||||
push:
|
||||
branches: ["master"]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
# Single deploy job since we're just deploying
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
## libzmq-specific CI/CD ##
|
||||
- name: Install AsciiDoctor
|
||||
run: sudo apt install -y asciidoctor
|
||||
- name: Convert AsciiDoc with AsciiDoctor into HTML
|
||||
run: ./autogen.sh && ./configure && make --directory=doc
|
||||
|
||||
## boilerplate steps to publish github Pages ##
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v3
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v2
|
||||
with:
|
||||
path: 'doc/'
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v2
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,6 +6,7 @@ syntax: glob # for hg-git users
|
||||
builds/Makefile
|
||||
builds/deprecated-msvc/Makefile
|
||||
doc/Makefile
|
||||
doc/__pagelist
|
||||
libtool
|
||||
### automake
|
||||
Makefile.in
|
||||
|
38
.readthedocs.yaml
Normal file
38
.readthedocs.yaml
Normal file
@ -0,0 +1,38 @@
|
||||
#
|
||||
# libzmq readthedocs.io integration
|
||||
#
|
||||
# This configuration file is processed by readthedocs.io to rebuild the
|
||||
# libzmq documentation using Asciidoctor, see
|
||||
# https://docs.readthedocs.io/en/stable/build-customization.html#asciidoc
|
||||
|
||||
version: "2"
|
||||
|
||||
formats:
|
||||
- htmlzip
|
||||
|
||||
build:
|
||||
os: "ubuntu-22.04"
|
||||
tools:
|
||||
nodejs: "20"
|
||||
# NOTE: as of Nov 2023, build.apt_packages is NOT considered when using build.commands
|
||||
#apt_packages:
|
||||
# - automake
|
||||
# - autoconf
|
||||
# - cmake
|
||||
# - libtool
|
||||
commands:
|
||||
# install required tools
|
||||
- npm install -g asciidoctor
|
||||
|
||||
# HTML docs
|
||||
# ---------
|
||||
- doc/create_page_list.sh "$(pwd)/doc/__pagelist" "$(pwd)/doc"
|
||||
- asciidoctor --backend html --destination-dir $READTHEDOCS_OUTPUT/html --attribute stylesheet=asciidoctor.css --attribute zmq_version='4.3.6' --attribute zmq_pagelist_dir=$(pwd)/doc doc/*.adoc
|
||||
|
||||
# HTMLZIP docs
|
||||
# ------------
|
||||
# Note that for usability we make sure zip will create a zipfile containing just a flat list of HTML files;
|
||||
# to achieve that it's important to avoid storing absolute paths when invoking "zip", thus we use -j
|
||||
# Also note that the archive name should match exactly the project slug, "libzmq" in this case.
|
||||
- mkdir -p $READTHEDOCS_OUTPUT/htmlzip/
|
||||
- cd $READTHEDOCS_OUTPUT/html && zip -j ../htmlzip/libzmq.zip *.html
|
1
AUTHORS
1
AUTHORS
@ -120,6 +120,7 @@ Toralf Wittner
|
||||
Tore Halvorsen
|
||||
Trevor Bernard
|
||||
Vitaly Mayatskikh
|
||||
Yacheng Zhou
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
110
CMakeLists.txt
110
CMakeLists.txt
@ -1,12 +1,13 @@
|
||||
# CMake build script for ZeroMQ
|
||||
project(ZeroMQ)
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin)
|
||||
if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL Darwin)
|
||||
cmake_minimum_required(VERSION 3.0.2)
|
||||
else()
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
endif()
|
||||
|
||||
project(ZeroMQ)
|
||||
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
@ -122,7 +123,7 @@ if (NOT MSVC)
|
||||
if(NOT CMAKE_C_FLAGS MATCHES "-std=" AND NOT C_STANDARD AND NOT CMAKE_C_STANDARD)
|
||||
check_c_compiler_flag("-std=c11" COMPILER_SUPPORTS_C11)
|
||||
if(COMPILER_SUPPORTS_C11)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_DEFAULT_SOURCE -std=c11")
|
||||
else()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
endif()
|
||||
@ -234,7 +235,7 @@ if(NOT ZMQ_USE_GNUTLS)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(NOT ZMQ_USE_NSS)
|
||||
if(ENABLE_WS AND NOT ZMQ_USE_NSS)
|
||||
list(APPEND sources ${CMAKE_CURRENT_SOURCE_DIR}/external/sha1/sha1.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/external/sha1/sha1.h)
|
||||
message(STATUS "Using builtin sha1")
|
||||
@ -258,12 +259,13 @@ endif()
|
||||
# Select curve encryption library, defaults to disabled To use libsodium instead, use --with-libsodium(must be
|
||||
# installed) To disable curve, use --disable-curve
|
||||
|
||||
option(WITH_LIBSODIUM "Use libsodium" OFF)
|
||||
option(WITH_LIBSODIUM "Use libsodium (required with ENABLE_CURVE)" OFF)
|
||||
option(WITH_LIBSODIUM_STATIC "Use static libsodium library" OFF)
|
||||
option(ENABLE_LIBSODIUM_RANDOMBYTES_CLOSE "Automatically close libsodium randombytes. Not threadsafe without getrandom()" ON)
|
||||
option(ENABLE_CURVE "Enable CURVE security" OFF)
|
||||
|
||||
if(ENABLE_CURVE)
|
||||
# libsodium is currently the only CURVE provider
|
||||
if(WITH_LIBSODIUM)
|
||||
find_package("sodium")
|
||||
if(SODIUM_FOUND)
|
||||
@ -280,15 +282,30 @@ if(ENABLE_CURVE)
|
||||
endif()
|
||||
else()
|
||||
message(
|
||||
ERROR
|
||||
"libsodium not installed, you may want to install libsodium and run cmake again"
|
||||
FATAL_ERROR
|
||||
"libsodium requested but not found, you may want to install libsodium and run cmake again"
|
||||
)
|
||||
endif()
|
||||
else() # WITH_LIBSODIUM
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"ENABLE_CURVE set, but not WITH_LIBSODIUM. No CURVE provider found."
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
else() # ENABLE_CURVE
|
||||
message(STATUS "CURVE security is disabled")
|
||||
endif()
|
||||
|
||||
option(WITH_GSSAPI_KRB5 "Use libgssapi_krb5" OFF)
|
||||
if(WITH_GSSAPI_KRB5)
|
||||
find_package("gssapi_krb5" REQUIRED)
|
||||
message(STATUS "Using GSSAPI_KRB5")
|
||||
include_directories(${GSSAPI_KRB5_INCLUDE_DIRS})
|
||||
link_directories(${GSSAPI_KRB5_LIBRARY_DIRS})
|
||||
set(HAVE_LIBGSSAPI_KRB5 1)
|
||||
endif()
|
||||
|
||||
|
||||
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
option(WITH_MILITANT "Enable militant assertions" OFF)
|
||||
@ -380,7 +397,7 @@ endif(WIN32)
|
||||
|
||||
if(NOT MSVC)
|
||||
if(POLLER STREQUAL "")
|
||||
check_cxx_symbol_exists(kqueue sys/event.h HAVE_KQUEUE)
|
||||
check_cxx_symbol_exists(kqueue "sys/types.h;sys/event.h;sys/time.h" HAVE_KQUEUE)
|
||||
if(HAVE_KQUEUE)
|
||||
set(POLLER "kqueue")
|
||||
endif()
|
||||
@ -476,7 +493,7 @@ execute_process(
|
||||
if(CACHELINE_SIZE STREQUAL ""
|
||||
OR CACHELINE_SIZE EQUAL 0
|
||||
OR CACHELINE_SIZE EQUAL -1
|
||||
OR CACHELINE_SIZE EQUAL "undefined")
|
||||
OR CACHELINE_SIZE STREQUAL "undefined")
|
||||
set(ZMQ_CACHELINE_SIZE 64)
|
||||
else()
|
||||
set(ZMQ_CACHELINE_SIZE ${CACHELINE_SIZE})
|
||||
@ -551,12 +568,18 @@ if(ZMQ_HAVE_WINDOWS)
|
||||
# Cannot use check_library_exists because the symbol is always declared as char(*)(void)
|
||||
set(CMAKE_REQUIRED_LIBRARIES "ws2_32.lib")
|
||||
check_cxx_symbol_exists(WSAStartup "winsock2.h" HAVE_WS2_32)
|
||||
if(HAVE_WS2_32)
|
||||
set(pkg_config_libs_private "${pkg_config_libs_private} -lws2_32")
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES "rpcrt4.lib")
|
||||
check_cxx_symbol_exists(UuidCreateSequential "rpc.h" HAVE_RPCRT4)
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES "iphlpapi.lib")
|
||||
check_cxx_symbol_exists(GetAdaptersAddresses "winsock2.h;iphlpapi.h" HAVE_IPHLAPI)
|
||||
if(HAVE_IPHLAPI)
|
||||
set(pkg_config_libs_private "${pkg_config_libs_private} -liphlpapi")
|
||||
endif()
|
||||
check_cxx_symbol_exists(if_nametoindex "iphlpapi.h" HAVE_IF_NAMETOINDEX)
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES "")
|
||||
@ -573,6 +596,12 @@ if(NOT MINGW)
|
||||
find_library(RT_LIBRARY rt)
|
||||
if(RT_LIBRARY)
|
||||
set(pkg_config_libs_private "${pkg_config_libs_private} -lrt")
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES rt)
|
||||
check_cxx_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
else()
|
||||
check_cxx_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -593,13 +622,9 @@ if(WIN32 AND NOT CYGWIN)
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
set(CMAKE_REQUIRED_LIBRARIES rt)
|
||||
check_cxx_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
check_cxx_symbol_exists(fork unistd.h HAVE_FORK)
|
||||
check_cxx_symbol_exists(gethrtime sys/time.h HAVE_GETHRTIME)
|
||||
check_cxx_symbol_exists(mkdtemp stdlib.h HAVE_MKDTEMP)
|
||||
check_cxx_symbol_exists(mkdtemp "stdlib.h;unistd.h" HAVE_MKDTEMP)
|
||||
check_cxx_symbol_exists(accept4 sys/socket.h HAVE_ACCEPT4)
|
||||
check_cxx_symbol_exists(strnlen string.h HAVE_STRNLEN)
|
||||
else()
|
||||
@ -689,7 +714,7 @@ if(LIBZMQ_WERROR)
|
||||
zmq_check_cxx_flag_prepend("/WX")
|
||||
else()
|
||||
zmq_check_cxx_flag_prepend("-Werror")
|
||||
if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
if(${CMAKE_CXX_COMPILER_ID} MATCHES "SunPro")
|
||||
zmq_check_cxx_flag_prepend("-errwarn=%all")
|
||||
endif()
|
||||
endif()
|
||||
@ -770,7 +795,7 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
add_definitions(-D_DARWIN_C_SOURCE)
|
||||
endif()
|
||||
|
||||
find_package(AsciiDoc)
|
||||
find_package(AsciiDoctor)
|
||||
|
||||
cmake_dependent_option(WITH_DOC "Build Reference Guide documentation(requires DocBook)" ON "ASCIIDOC_FOUND;NOT WIN32"
|
||||
OFF) # Do not build docs on Windows due to issues with symlinks
|
||||
@ -1212,6 +1237,10 @@ if(ZMQ_HAVE_TIPC)
|
||||
list(APPEND cxx-sources tipc_address.cpp tipc_connecter.cpp tipc_listener.cpp)
|
||||
endif()
|
||||
|
||||
if(WITH_GSSAPI_KRB5)
|
||||
list(APPEND cxx-sources gssapi_client.cpp gssapi_mechanism_base.cpp gssapi_server.cpp)
|
||||
endif()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# source generators
|
||||
|
||||
@ -1228,9 +1257,9 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/builds/cmake/platform.hpp.in ${CMAKE_
|
||||
list(APPEND sources ${CMAKE_CURRENT_BINARY_DIR}/platform.hpp)
|
||||
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set(exec_prefix ${prefix})
|
||||
set(libdir ${prefix}/${CMAKE_INSTALL_LIBDIR})
|
||||
set(includedir ${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
|
||||
set(exec_prefix "\${prefix}")
|
||||
set(libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||
set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set(VERSION ${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH})
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/libzmq.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libzmq.pc @ONLY)
|
||||
set(zmq-pkgconfig ${CMAKE_CURRENT_BINARY_DIR}/libzmq.pc)
|
||||
@ -1256,25 +1285,16 @@ option(WITH_DOCS "Build html docs" ON)
|
||||
if(WITH_DOCS)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc)
|
||||
file(
|
||||
GLOB docs
|
||||
GLOB asciidoc_files
|
||||
RELATIVE ${CMAKE_CURRENT_BINARY_DIR}/
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/doc/*.txt")
|
||||
set(html-docs)
|
||||
foreach(txt ${docs})
|
||||
string(REGEX REPLACE ".*/(.*)\\.txt" "\\1.html" html ${txt})
|
||||
set(src ${txt})
|
||||
set(dst doc/${html})
|
||||
if(WITH_DOC)
|
||||
add_custom_command(
|
||||
OUTPUT ${dst}
|
||||
COMMAND ${ASCIIDOC_EXECUTABLE} -d manpage -b xhtml11 -f ${CMAKE_CURRENT_SOURCE_DIR}/doc/asciidoc.conf
|
||||
-azmq_version=${ZMQ_VERSION} -o ${dst} ${src}
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${src}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating ${html}")
|
||||
list(APPEND html-docs ${CMAKE_CURRENT_BINARY_DIR}/${dst})
|
||||
endif()
|
||||
endforeach()
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/doc/*.adoc")
|
||||
string(REPLACE ".txt" ".html" html_files ${asciidoc_files})
|
||||
add_custom_command(
|
||||
OUTPUT ${html_files}
|
||||
COMMAND asciidoctor -b html -azmq_version=${ZMQ_VERSION} *.adoc
|
||||
DEPENDS ${asciidoc_files}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating ${html}")
|
||||
endif()
|
||||
|
||||
if(ZMQ_BUILD_FRAMEWORK)
|
||||
@ -1402,7 +1422,7 @@ else()
|
||||
# NOTE: the SOVERSION and VERSION MUST be the same as the one generated by libtool! It is NOT the same as the
|
||||
# version of the package.
|
||||
set_target_properties(
|
||||
libzmq PROPERTIES COMPILE_DEFINITIONS "DLL_EXPORT" PUBLIC_HEADER "${public_headers}" VERSION "5.2.5"
|
||||
libzmq PROPERTIES COMPILE_DEFINITIONS "DLL_EXPORT" PUBLIC_HEADER "${public_headers}" VERSION "5.2.6"
|
||||
SOVERSION "5" OUTPUT_NAME "${ZMQ_OUTPUT_BASENAME}" PREFIX "lib")
|
||||
if(ZMQ_BUILD_FRAMEWORK)
|
||||
set_target_properties(
|
||||
@ -1494,6 +1514,10 @@ if(BUILD_SHARED)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GSSAPI_KRB5)
|
||||
target_link_libraries(libzmq ${GSSAPI_KRB5_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(HAVE_WS2_32)
|
||||
target_link_libraries(libzmq ws2_32)
|
||||
elseif(HAVE_WS2)
|
||||
@ -1544,6 +1568,10 @@ if(BUILD_STATIC)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GSSAPI_KRB5)
|
||||
target_link_libraries(libzmq-static ${GSSAPI_KRB5_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(HAVE_WS2_32)
|
||||
target_link_libraries(libzmq-static ws2_32)
|
||||
elseif(HAVE_WS2)
|
||||
@ -1613,6 +1641,10 @@ if(BUILD_SHARED)
|
||||
target_link_libraries(${perf-tool} ${SODIUM_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(WITH_GSSAPI_KRB5)
|
||||
target_link_libraries(${perf-tool} ${GSSAPI_KRB5_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(ZMQ_BUILD_FRAMEWORK)
|
||||
# Copy perf-tools binaries into Framework
|
||||
add_custom_command(
|
||||
|
@ -1418,6 +1418,11 @@ unittests_unittest_curve_encoding_LDADD = \
|
||||
$(top_builddir)/src/.libs/libzmq.a \
|
||||
${src_libzmq_la_LIBADD} \
|
||||
$(CODE_COVERAGE_LDFLAGS)
|
||||
|
||||
if USE_LIBSODIUM
|
||||
unittests_unittest_curve_encoding_CPPFLAGS += ${sodium_CFLAGS}
|
||||
unittests_unittest_curve_encoding_LDADD += ${sodium_LIBS}
|
||||
endif
|
||||
endif
|
||||
|
||||
check_PROGRAMS = ${test_apps}
|
||||
|
@ -89,7 +89,7 @@ dnl # Check whether to build documentation and install man-pages
|
||||
dnl ##############################################################################
|
||||
AC_DEFUN([LIBZMQ_CHECK_DOC_BUILD], [{
|
||||
|
||||
# Man pages are built/installed if asciidoc and xmlto are present
|
||||
# Man pages are built/installed if asciidoctor and xmlto are present
|
||||
# --with-docs=no overrides this
|
||||
AC_ARG_WITH([docs],
|
||||
AS_HELP_STRING([--without-docs],
|
||||
@ -109,14 +109,13 @@ AC_DEFUN([LIBZMQ_CHECK_DOC_BUILD], [{
|
||||
libzmq_build_doc="yes"
|
||||
libzmq_install_man="yes"
|
||||
# Check for asciidoc and xmlto and don't build the docs if these are not installed.
|
||||
AC_CHECK_PROG(libzmq_have_asciidoc, asciidoc, yes, no)
|
||||
AC_CHECK_PROG(libzmq_have_xmlto, xmlto, yes, no)
|
||||
if test "x$libzmq_have_asciidoc" = "xno" -o "x$libzmq_have_xmlto" = "xno"; then
|
||||
AC_CHECK_PROG(libzmq_have_asciidoctor, asciidoctor, yes, no)
|
||||
if test "x$libzmq_have_asciidoctor" = "xno"; then
|
||||
libzmq_build_doc="no"
|
||||
# Tarballs built with 'make dist' ship with prebuilt documentation.
|
||||
if ! test -f doc/zmq.7; then
|
||||
libzmq_install_man="no"
|
||||
AC_MSG_WARN([You are building an unreleased version of 0MQ and asciidoc or xmlto are not installed.])
|
||||
AC_MSG_WARN([You are building an unreleased version of 0MQ and asciidoctor is not installed.])
|
||||
AC_MSG_WARN([Documentation will not be built and manual pages will not be installed.])
|
||||
fi
|
||||
fi
|
||||
|
@ -1,26 +0,0 @@
|
||||
# - Find Asciidoc
|
||||
# this module looks for asciidoc and a2x
|
||||
#
|
||||
# ASCIIDOC_EXECUTABLE - the full path to asciidoc
|
||||
# ASCIIDOC_FOUND - If false, don't attempt to use asciidoc.
|
||||
# A2X_EXECUTABLE - the full path to a2x
|
||||
# A2X_FOUND - If false, don't attempt to use a2x.
|
||||
|
||||
set (PROGRAMFILESX86 "PROGRAMFILES(X86)")
|
||||
|
||||
find_program(ASCIIDOC_EXECUTABLE asciidoc asciidoc.py
|
||||
PATHS "$ENV{ASCIIDOC_ROOT}"
|
||||
"$ENV{PROGRAMW6432}/asciidoc"
|
||||
"$ENV{PROGRAMFILES}/asciidoc"
|
||||
"$ENV{${PROGRAMFILESX86}}/asciidoc")
|
||||
|
||||
find_program(A2X_EXECUTABLE a2x
|
||||
PATHS "$ENV{ASCIIDOC_ROOT}"
|
||||
"$ENV{PROGRAMW6432}/asciidoc"
|
||||
"$ENV{PROGRAMFILES}/asciidoc"
|
||||
"$ENV{${PROGRAMFILESX86}}/asciidoc")
|
||||
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_ARGS(AsciiDoc REQUIRED_VARS ASCIIDOC_EXECUTABLE)
|
||||
mark_as_advanced(ASCIIDOC_EXECUTABLE A2X_EXECUTABLE)
|
23
builds/cmake/Modules/FindAsciiDoctor.cmake
Normal file
23
builds/cmake/Modules/FindAsciiDoctor.cmake
Normal file
@ -0,0 +1,23 @@
|
||||
# - Find Asciidoctor
|
||||
# this module looks for asciidoctor
|
||||
#
|
||||
# ASCIIDOCTOR_EXECUTABLE - the full path to asciidoc
|
||||
# ASCIIDOCTOR_FOUND - If false, don't attempt to use asciidoc.
|
||||
set (PROGRAMFILESX86 "PROGRAMFILES(X86)")
|
||||
|
||||
find_program(ASCIIDOCTOR_EXECUTABLE asciidoctor asciidoctor
|
||||
PATHS "$ENV{ASCIIDOCTOR_ROOT}"
|
||||
"$ENV{PROGRAMW6432}/asciidoctor"
|
||||
"$ENV{PROGRAMFILES}/asciidoctor"
|
||||
"$ENV{${PROGRAMFILESX86}}/asciidoctor")
|
||||
|
||||
find_program(A2X_EXECUTABLE a2x
|
||||
PATHS "$ENV{ASCIIDOCTOR_ROOT}"
|
||||
"$ENV{PROGRAMW6432}/asciidoctor"
|
||||
"$ENV{PROGRAMFILES}/asciidoctor"
|
||||
"$ENV{${PROGRAMFILESX86}}/asciidoctor")
|
||||
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_ARGS(AsciiDoctor REQUIRED_VARS ASCIIDOCTOR_EXECUTABLE)
|
||||
mark_as_advanced(ASCIIDOCTOR_EXECUTABLE)
|
45
builds/cmake/Modules/Findgssapi_krb5.cmake
Normal file
45
builds/cmake/Modules/Findgssapi_krb5.cmake
Normal file
@ -0,0 +1,45 @@
|
||||
if (NOT MSVC)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(PC_GSSAPI_KRB5 "libgssapi_krb5")
|
||||
if (PC_GSSAPI_KRB5_FOUND)
|
||||
set(pkg_config_names_private "${pkg_config_names_private} libgssapi_krb5")
|
||||
endif()
|
||||
if (NOT PC_GSSAPI_KRB5_FOUND)
|
||||
pkg_check_modules(PC_GSSAPI_KRB5 "gssapi_krb5")
|
||||
if (PC_GSSAPI_KRB5_FOUND)
|
||||
set(pkg_config_names_private "${pkg_config_names_private} gssapi_krb5")
|
||||
endif()
|
||||
endif (NOT PC_GSSAPI_KRB5_FOUND)
|
||||
if (PC_GSSAPI_KRB5_FOUND)
|
||||
set(GSSAPI_KRB5_INCLUDE_HINTS ${PC_GSSAPI_KRB5_INCLUDE_DIRS} ${PC_GSSAPI_KRB5_INCLUDE_DIRS}/*)
|
||||
set(GSSAPI_KRB5_LIBRARY_HINTS ${PC_GSSAPI_KRB5_LIBRARY_DIRS} ${PC_GSSAPI_KRB5_LIBRARY_DIRS}/*)
|
||||
else()
|
||||
set(pkg_config_libs_private "${pkg_config_libs_private} -lgssapi_krb5")
|
||||
endif()
|
||||
endif (NOT MSVC)
|
||||
|
||||
# some libraries install the headers is a subdirectory of the include dir
|
||||
# returned by pkg-config, so use a wildcard match to improve chances of finding
|
||||
# headers and libraries.
|
||||
find_path(
|
||||
GSSAPI_KRB5_INCLUDE_DIRS
|
||||
NAMES gssapi/gssapi_krb5.h
|
||||
HINTS ${GSSAPI_KRB5_INCLUDE_HINTS}
|
||||
)
|
||||
|
||||
set (GSSAPI_NAMES libgssapi_krb5 gssapi_krb5)
|
||||
if (${CMAKE_SIZEOF_VOID_P} STREQUAL 8)
|
||||
set (GSSAPI_NAMES ${GSSAPI_NAMES} gssapi64)
|
||||
elseif (${CMAKE_SIZEOF_VOID_P} STREQUAL 4)
|
||||
set (GSSAPI_NAMES ${GSSAPI_NAMES} gssapi32)
|
||||
endif()
|
||||
|
||||
find_library(
|
||||
GSSAPI_KRB5_LIBRARIES
|
||||
NAMES ${GSSAPI_NAMES}
|
||||
HINTS ${GSSAPI_KRB5_LIBRARY_HINTS}
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(gssapi_krb5 DEFAULT_MSG GSSAPI_KRB5_LIBRARIES GSSAPI_KRB5_INCLUDE_DIRS)
|
||||
mark_as_advanced(GSSAPI_KRB5_FOUND GSSAPI_KRB5_LIBRARIES GSSAPI_KRB5_INCLUDE_DIRS)
|
@ -49,6 +49,10 @@ elif [ $CURVE == "libsodium" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$GSSAPI" == "enabled" ]; then
|
||||
CMAKE_OPTS+=("-DWITH_GSSAPI_KRB5=ON")
|
||||
fi
|
||||
|
||||
CMAKE_PREFIXES=()
|
||||
MAKE_PREFIXES=()
|
||||
PARALLEL_MAKE_OPT="-j5"
|
||||
|
@ -77,6 +77,7 @@
|
||||
#cmakedefine ZMQ_HAVE_CURVE
|
||||
#cmakedefine ZMQ_USE_LIBSODIUM
|
||||
#cmakedefine SODIUM_STATIC
|
||||
#cmakedefine HAVE_LIBGSSAPI_KRB5
|
||||
#cmakedefine ZMQ_USE_GNUTLS
|
||||
#cmakedefine ZMQ_USE_RADIX_TREE
|
||||
#cmakedefine HAVE_IF_NAMETOINDEX
|
||||
|
25
configure.ac
25
configure.ac
@ -53,9 +53,10 @@ AC_SUBST(PACKAGE_VERSION)
|
||||
# ZeroMQ version 4.3.3: 7:3:2 (ABI version 5)
|
||||
# ZeroMQ version 4.3.4: 7:4:2 (ABI version 5)
|
||||
# ZeroMQ version 4.3.5: 7:5:2 (ABI version 5)
|
||||
# ZeroMQ version 4.3.6: 7:6:2 (ABI version 5)
|
||||
#
|
||||
# libzmq -version-info current:revision:age
|
||||
LTVER="7:5:2"
|
||||
LTVER="7:6:2"
|
||||
AC_SUBST(LTVER)
|
||||
|
||||
# Take a copy of original flags
|
||||
@ -65,7 +66,7 @@ ZMQ_ORIG_CXXFLAGS="${CXXFLAGS:-none}"
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS+=" -std=c11"], [AC_PROG_CC_C99])
|
||||
AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS="${CFLAGS} -std=c11 -D_DEFAULT_SOURCE"], [AC_PROG_CC_C99])
|
||||
AC_PROG_CXX
|
||||
AX_CODE_COVERAGE
|
||||
AM_PROG_CC_C_O
|
||||
@ -75,10 +76,6 @@ PKG_PROG_PKG_CONFIG
|
||||
m4_pattern_forbid([^PKG_[A-Z_]+$], [missing some pkg-config macros (pkg-config package)])
|
||||
|
||||
# Libtool configuration for different targets. See acinclude.m4
|
||||
AC_ARG_VAR([XMLTO], [path to xmlto command])
|
||||
AC_PATH_PROG([XMLTO], [xmlto])
|
||||
AC_ARG_VAR([ASCIIDOC], [path to asciidoc command])
|
||||
AC_PATH_PROG([ASCIIDOC], [asciidoc])
|
||||
LIBZMQ_CONFIG_LIBTOOL
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
AC_PROG_LIBTOOL
|
||||
@ -90,8 +87,8 @@ AC_ARG_ENABLE([force-CXX98-compat],
|
||||
[AS_HELP_STRING([--enable-force-CXX98-compat], [force C++98 build [default=disabled]])])
|
||||
if test "x$enable_force_CXX98_compat" = "xyes"; then
|
||||
AC_LANG_PUSH([C++])
|
||||
AX_CHECK_COMPILE_FLAG([-std=gnu++98], [CXXFLAGS+=" -std=gnu++98"], [])
|
||||
AX_CHECK_COMPILE_FLAG([-Wc++98-compat -Wc++98-compat-pedantic], [CXXFLAGS+=" -Wc++98-compat"], [])
|
||||
AX_CHECK_COMPILE_FLAG([-std=gnu++98], [CXXFLAGS="${CXXFLAGS} -std=gnu++98"], [])
|
||||
AX_CHECK_COMPILE_FLAG([-Wc++98-compat -Wc++98-compat-pedantic], [CXXFLAGS="${CXXFLAGS} -Wc++98-compat"], [])
|
||||
AC_LANG_POP([C++])
|
||||
else
|
||||
AX_CXX_COMPILE_STDCXX_11([ext], [optional])
|
||||
@ -365,7 +362,7 @@ case "${host_os}" in
|
||||
|
||||
if test "x$enable_static" = "xyes"; then
|
||||
CPPFLAGS="-DZMQ_STATIC $CPPFLAGS"
|
||||
PKGCFG_LIBS_PRIVATE="$PKGCFG_LIBS_PRIVATE -liphlpapi"
|
||||
PKGCFG_LIBS_PRIVATE="$PKGCFG_LIBS_PRIVATE -liphlpapi -lws2_32"
|
||||
fi
|
||||
# Set FD_SETSIZE to 16384
|
||||
CPPFLAGS=" -DFD_SETSIZE=16384 $CPPFLAGS"
|
||||
@ -802,7 +799,7 @@ AM_CONDITIONAL(ON_GNU, test "x$libzmq_on_gnu" = "xyes")
|
||||
# Check for __atomic_Xxx compiler intrinsics
|
||||
AC_LANG_PUSH([C++])
|
||||
AX_CHECK_COMPILE_FLAG([-Watomic-alignment],
|
||||
[CXXFLAGS+=" -Wno-atomic-alignment"],
|
||||
[CXXFLAGS="${CXXFLAGS} -Wno-atomic-alignment"],
|
||||
[],
|
||||
[-Werror])
|
||||
LIBZMQ_CHECK_ATOMIC_INTRINSICS([
|
||||
@ -1140,12 +1137,12 @@ AM_CONDITIONAL(FUZZING_ENGINE_LIB, test "x$FUZZING_ENGINE_LIB" != "x")
|
||||
# clang 6 has a warning that does not make sense on multi-platform code
|
||||
AC_LANG_PUSH([C])
|
||||
AX_CHECK_COMPILE_FLAG([-Wtautological-constant-compare],
|
||||
[CFLAGS+=" -Wno-tautological-constant-compare"],
|
||||
[CFLAGS="${CFLAGS} -Wno-tautological-constant-compare"],
|
||||
[],
|
||||
[-Werror])
|
||||
AC_LANG_POP([C])
|
||||
AX_CHECK_COMPILE_FLAG([-Wtautological-constant-compare],
|
||||
[CXXFLAGS+=" -Wno-tautological-constant-compare"],
|
||||
[CXXFLAGS="${CXXFLAGS} -Wno-tautological-constant-compare"],
|
||||
[],
|
||||
[-Werror])
|
||||
|
||||
@ -1154,12 +1151,12 @@ AX_CHECK_COMPILE_FLAG([-Wtautological-constant-compare],
|
||||
# E: lto-no-text-in-archive
|
||||
AC_LANG_PUSH([C])
|
||||
AX_CHECK_COMPILE_FLAG([-ffat-lto-objects],
|
||||
[CFLAGS+=" -ffat-lto-objects"],
|
||||
[CFLAGS="${CFLAGS} -ffat-lto-objects"],
|
||||
[],
|
||||
[-Werror])
|
||||
AC_LANG_POP([C])
|
||||
AX_CHECK_COMPILE_FLAG([-ffat-lto-objects],
|
||||
[CXXFLAGS+=" -ffat-lto-objects"],
|
||||
[CXXFLAGS="${CXXFLAGS} -ffat-lto-objects"],
|
||||
[],
|
||||
[-Werror])
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
#
|
||||
# documentation
|
||||
#
|
||||
MAN3 = zmq_bind.3 zmq_unbind.3 zmq_connect.3 zmq_connect_peer.3 zmq_disconnect.3 zmq_close.3 \
|
||||
MAN3 = \
|
||||
zmq_bind.3 zmq_unbind.3 zmq_connect.3 zmq_connect_peer.3 zmq_disconnect.3 zmq_close.3 \
|
||||
zmq_ctx_new.3 zmq_ctx_term.3 zmq_ctx_get.3 zmq_ctx_set.3 zmq_ctx_shutdown.3 \
|
||||
zmq_msg_init.3 zmq_msg_init_data.3 zmq_msg_init_size.3 zmq_msg_init_buffer.3 \
|
||||
zmq_msg_move.3 zmq_msg_copy.3 zmq_msg_size.3 zmq_msg_data.3 zmq_msg_close.3 \
|
||||
@ -22,45 +23,70 @@ MAN3 = zmq_bind.3 zmq_unbind.3 zmq_connect.3 zmq_connect_peer.3 zmq_disconnect.3
|
||||
zmq_atomic_counter_inc.3 zmq_atomic_counter_dec.3 \
|
||||
zmq_atomic_counter_value.3 zmq_atomic_counter_destroy.3
|
||||
|
||||
MAN7 = zmq.7 zmq_tcp.7 zmq_pgm.7 zmq_inproc.7 zmq_ipc.7 \
|
||||
MAN7 = \
|
||||
zmq.7 zmq_tcp.7 zmq_pgm.7 zmq_inproc.7 zmq_ipc.7 \
|
||||
zmq_null.7 zmq_plain.7 zmq_curve.7 zmq_tipc.7 zmq_vmci.7 zmq_udp.7 \
|
||||
zmq_gssapi.7
|
||||
|
||||
MAN_DOC =
|
||||
# ASCIIDOC_DOC_WITHOUT_INDEX contains all the Asciidoc files checked into the git repo, except for index.adoc
|
||||
ASCIIDOC_DOC_WITHOUT_INDEX = $(MAN3:%.3=%.adoc) $(MAN7:%.7=%.adoc)
|
||||
|
||||
MAN_TXT = $(MAN3:%.3=%.txt)
|
||||
MAN_TXT += $(MAN7:%.7=%.txt)
|
||||
MAN_HTML =
|
||||
# MAN_DOC contains all the MANPAGE documentation (generated from asciidoc files)
|
||||
MAN_DOC = $(MAN3) $(MAN7)
|
||||
|
||||
# HTML_DOC contains all the HTML documentation (generated from asciidoc files)
|
||||
HTML_DOC = index.html $(ASCIIDOC_DOC_WITHOUT_INDEX:%.adoc=%.html)
|
||||
|
||||
MAINTAINERCLEANFILES =
|
||||
EXTRA_DIST = $(ASCIIDOC_DOC_WITHOUT_INDEX)
|
||||
|
||||
EXTRA_DIST = asciidoc.conf $(MAN_TXT)
|
||||
|
||||
if INSTALL_MAN
|
||||
MAN_DOC += $(MAN1) $(MAN3) $(MAN7)
|
||||
dist_man_MANS = $(MAN_DOC)
|
||||
MAINTAINERCLEANFILES += $(MAN_DOC)
|
||||
endif
|
||||
|
||||
#
|
||||
# BUILD_DOC is set when Asciidoctor has been found
|
||||
# Declare here all the rules to produce documentation from .adoc files
|
||||
#
|
||||
if BUILD_DOC
|
||||
MAN_HTML += $(MAN_TXT:%.txt=%.html)
|
||||
EXTRA_DIST += $(MAN_HTML)
|
||||
MAINTAINERCLEANFILES += $(MAN_HTML)
|
||||
|
||||
SUFFIXES=.html .txt .xml .3 .7
|
||||
EXTRA_DIST += $(HTML_DOC) $(MAN_DOC)
|
||||
MAINTAINERCLEANFILES += $(HTML_DOC) $(MAN_DOC)
|
||||
SUFFIXES=.html .adoc .3 .7
|
||||
|
||||
.adoc.html:
|
||||
asciidoctor --backend html --attribute stylesheet=asciidoctor.css --attribute zmq_version=@PACKAGE_VERSION@ $<
|
||||
.adoc.3:
|
||||
asciidoctor --backend manpage --attribute zmq_version=@PACKAGE_VERSION@ $<
|
||||
.adoc.7:
|
||||
asciidoctor --backend manpage --attribute zmq_version=@PACKAGE_VERSION@ $<
|
||||
|
||||
dist-hook : $(MAN_DOC) $(HTML_DOC)
|
||||
|
||||
# the following Bash snippet is used to automatically generate an alphabetical list included by index.adoc:
|
||||
$(builddir)/__pagelist:
|
||||
$(srcdir)/create_page_list.sh "$@" "$(abs_srcdir)"
|
||||
|
||||
# there are a number of constraints in auto-generating files for Asciidoctor:
|
||||
# - out-of-tree builds
|
||||
# - read-only source tree
|
||||
# - target being invoked into RPM buildroot
|
||||
# etc, so we have special rules to build the index.html page, which requires auto-generated list of doc pages
|
||||
index.html:
|
||||
$(MAKE) $(builddir)/__pagelist
|
||||
asciidoctor --backend html \
|
||||
--attribute zmq_version=@PACKAGE_VERSION@ --attribute zmq_pagelist_dir=$(abs_builddir) --attribute stylesheet=asciidoctor.css \
|
||||
$(srcdir)/index.adoc
|
||||
|
||||
all-local : $(MAN_DOC) $(HTML_DOC)
|
||||
|
||||
clean-local :
|
||||
rm -f $(MAN_DOC) $(HTML_DOC) $(builddir)/__pagelist
|
||||
|
||||
.txt.html:
|
||||
asciidoc -d manpage -b xhtml11 -f $(srcdir)/asciidoc.conf \
|
||||
-azmq_version=@PACKAGE_VERSION@ -o$@ $<
|
||||
.txt.xml:
|
||||
asciidoc -d manpage -b docbook -f $(srcdir)/asciidoc.conf \
|
||||
-azmq_version=@PACKAGE_VERSION@ -o$@ $<
|
||||
.xml.1:
|
||||
xmlto man $<
|
||||
.xml.3:
|
||||
xmlto man $<
|
||||
.xml.7:
|
||||
xmlto man $<
|
||||
endif
|
||||
|
||||
dist-hook : $(MAN_DOC) $(MAN_HTML)
|
||||
|
||||
|
||||
#
|
||||
# INSTALL_MAN is set when BUILD_DOC was set and additionally the manpages need to be installed
|
||||
#
|
||||
if INSTALL_MAN
|
||||
dist_man_MANS = $(MAN_DOC)
|
||||
endif
|
||||
|
@ -1,56 +0,0 @@
|
||||
[paradef-default]
|
||||
literal-style=template="literalparagraph"
|
||||
|
||||
[macros]
|
||||
(?su)[\\]?(?P<name>linkzmq):(?P<target>\S*?)\[(?P<attrlist>.*?)\]=
|
||||
|
||||
ifdef::backend-docbook[]
|
||||
[linkzmq-inlinemacro]
|
||||
{0%{target}}
|
||||
{0#<citerefentry>}
|
||||
{0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>}
|
||||
{0#</citerefentry>}
|
||||
endif::backend-docbook[]
|
||||
|
||||
ifdef::backend-xhtml11[]
|
||||
[linkzmq-inlinemacro]
|
||||
<a href="{target}.html">{target}{0?({0})}</a>
|
||||
endif::backend-xhtml11[]
|
||||
|
||||
ifdef::doctype-manpage[]
|
||||
ifdef::backend-docbook[]
|
||||
[header]
|
||||
template::[header-declarations]
|
||||
<refentry>
|
||||
<refmeta>
|
||||
<refentrytitle>{mantitle}</refentrytitle>
|
||||
<manvolnum>{manvolnum}</manvolnum>
|
||||
<refmiscinfo class="source">0MQ</refmiscinfo>
|
||||
<refmiscinfo class="version">{zmq_version}</refmiscinfo>
|
||||
<refmiscinfo class="manual">0MQ Manual</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>{manname}</refname>
|
||||
<refpurpose>{manpurpose}</refpurpose>
|
||||
</refnamediv>
|
||||
endif::backend-docbook[]
|
||||
endif::doctype-manpage[]
|
||||
|
||||
ifdef::backend-xhtml11[]
|
||||
[footer]
|
||||
</div>
|
||||
{disable-javascript%<div id="footnotes"><hr /></div>}
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
ØMQ {zmq_version}<br />
|
||||
Last updated {docdate} {doctime}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
endif::backend-xhtml11[]
|
||||
|
||||
[replacements]
|
||||
ifdef::backend-xhtml11[]
|
||||
0MQ=ØMQ
|
||||
endif::backend-xhtml11[]
|
16
doc/asciidoctor.css
Normal file
16
doc/asciidoctor.css
Normal file
@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: MPL-2.0 */
|
||||
|
||||
/*
|
||||
CSS file for Asciidoctor HTML documentation
|
||||
See https://docs.asciidoctor.org/asciidoctor/latest/html-backend/default-stylesheet/#customize-extend
|
||||
See also https://github.com/darshandsoni/asciidoctor-skins/ for custom "skins"
|
||||
|
||||
/* import the default Asciidoctor CSS file */
|
||||
@import "https://cdn.jsdelivr.net/gh/asciidoctor/asciidoctor@2.0/data/stylesheets/asciidoctor-default.css";
|
||||
|
||||
/* just make the default HTML list more compact: */
|
||||
.ulist p {
|
||||
padding: 0;
|
||||
margin-right: -4px;
|
||||
margin-bottom: -4px;
|
||||
}
|
20
doc/create_page_list.sh
Executable file
20
doc/create_page_list.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This Bash snippet is used to automatically generate an alphabetical list included by index.adoc
|
||||
# It's invoked by at least 2 callers:
|
||||
# - the Makefile[.am] for automake builds
|
||||
# - the ReadTheDocs pipeline, see .readthedocs.yaml
|
||||
|
||||
OUTPUT_FILE="$1"
|
||||
ASCIIDOC_DIR="$2"
|
||||
|
||||
echo >$OUTPUT_FILE
|
||||
for adocfile in $(ls ${ASCIIDOC_DIR}/*.adoc); do
|
||||
adocfile_basename=$(basename ${adocfile})
|
||||
|
||||
# this script is used to produce an Asciidoc snippet that goes inside index.adoc... avoid listing index.adoc itself!
|
||||
if [ "${adocfile_basename}" != "index.adoc" ]; then
|
||||
adocfile_basename_noext=${adocfile_basename//.adoc/}
|
||||
echo "* xref:${adocfile_basename}[${adocfile_basename_noext}]" >>$OUTPUT_FILE
|
||||
fi
|
||||
done
|
9
doc/index.adoc
Normal file
9
doc/index.adoc
Normal file
@ -0,0 +1,9 @@
|
||||
= ZMQ API reference
|
||||
|
||||
This documentation is for libzmq {zmq_version}.
|
||||
|
||||
A suggested start to understand 0MQ (also written as ZMQ or ZeroMQ) is the xref:zmq.adoc[zmq] manpage.
|
||||
|
||||
== Alphabetic list of documentation pages
|
||||
|
||||
include::{zmq_pagelist_dir}/__pagelist[]
|
@ -1,21 +1,17 @@
|
||||
zmq(7)
|
||||
======
|
||||
= zmq(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq - 0MQ lightweight messaging kernel
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*#include <zmq.h>*
|
||||
|
||||
*cc* ['flags'] 'files' *-lzmq* ['libraries']
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The 0MQ lightweight messaging kernel is a library which extends the standard
|
||||
socket interfaces with features traditionally provided by specialised
|
||||
_messaging middleware_ products. 0MQ sockets provide an abstraction of
|
||||
@ -38,15 +34,15 @@ you exit your application you must destroy the 'context'. These functions let
|
||||
you work with 'contexts':
|
||||
|
||||
Create a new 0MQ context::
|
||||
linkzmq:zmq_ctx_new[3]
|
||||
* xref:zmq_ctx_new.adoc[zmq_ctx_new]
|
||||
|
||||
Work with context properties::
|
||||
linkzmq:zmq_ctx_set[3]
|
||||
linkzmq:zmq_ctx_get[3]
|
||||
* xref:zmq_ctx_set.adoc[zmq_ctx_set]
|
||||
* xref:zmq_ctx_get.adoc[zmq_ctx_get]
|
||||
|
||||
Destroy a 0MQ context::
|
||||
linkzmq:zmq_ctx_shutdown[3]
|
||||
linkzmq:zmq_ctx_term[3]
|
||||
* xref:zmq_ctx_shutdown.adoc[zmq_ctx_shutdown]
|
||||
* xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
|
||||
Thread safety
|
||||
^^^^^^^^^^^^^
|
||||
@ -80,73 +76,73 @@ data.
|
||||
The following functions are provided to work with messages:
|
||||
|
||||
Initialise a message::
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
|
||||
Sending and receiving a message::
|
||||
linkzmq:zmq_msg_send[3]
|
||||
linkzmq:zmq_msg_recv[3]
|
||||
* xref:zmq_msg_send.adoc[zmq_msg_send]
|
||||
* xref:zmq_msg_recv.adoc[zmq_msg_recv]
|
||||
|
||||
Release a message::
|
||||
linkzmq:zmq_msg_close[3]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
|
||||
Access message content::
|
||||
linkzmq:zmq_msg_data[3]
|
||||
linkzmq:zmq_msg_size[3]
|
||||
linkzmq:zmq_msg_more[3]
|
||||
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
||||
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
||||
* xref:zmq_msg_more.adoc[zmq_msg_more]
|
||||
|
||||
Work with message properties::
|
||||
linkzmq:zmq_msg_gets[3]
|
||||
linkzmq:zmq_msg_get[3]
|
||||
linkzmq:zmq_msg_set[3]
|
||||
* xref:zmq_msg_gets.adoc[zmq_msg_gets]
|
||||
* xref:zmq_msg_get.adoc[zmq_msg_get]
|
||||
* xref:zmq_msg_set.adoc[zmq_msg_set]
|
||||
|
||||
Message manipulation::
|
||||
linkzmq:zmq_msg_copy[3]
|
||||
linkzmq:zmq_msg_move[3]
|
||||
* xref:zmq_msg_copy.adoc[zmq_msg_copy]
|
||||
* xref:zmq_msg_move.adoc[zmq_msg_move]
|
||||
|
||||
|
||||
Sockets
|
||||
~~~~~~~
|
||||
0MQ sockets present an abstraction of an asynchronous _message queue_, with the
|
||||
exact queueing semantics depending on the socket type in use. See
|
||||
linkzmq:zmq_socket[3] for the socket types provided.
|
||||
xref:zmq_socket.adoc[zmq_socket] for the socket types provided.
|
||||
|
||||
The following functions are provided to work with sockets:
|
||||
|
||||
Creating a socket::
|
||||
linkzmq:zmq_socket[3]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
|
||||
Closing a socket::
|
||||
linkzmq:zmq_close[3]
|
||||
* xref:zmq_close.adoc[zmq_close]
|
||||
|
||||
Manipulating socket options::
|
||||
linkzmq:zmq_getsockopt[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
* xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
|
||||
Establishing a message flow::
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
|
||||
Sending and receiving messages::
|
||||
linkzmq:zmq_msg_send[3]
|
||||
linkzmq:zmq_msg_recv[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_send_const[3]
|
||||
* xref:zmq_msg_send.adoc[zmq_msg_send]
|
||||
* xref:zmq_msg_recv.adoc[zmq_msg_recv]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_send_const.adoc[zmq_send_const]
|
||||
|
||||
Monitoring socket events::
|
||||
linkzmq:zmq_socket_monitor[3]
|
||||
* xref:zmq_socket_monitor.adoc[zmq_socket_monitor]
|
||||
|
||||
.Input/output multiplexing
|
||||
0MQ provides a mechanism for applications to multiplex input/output events over
|
||||
a set containing both 0MQ sockets and standard sockets. This mechanism mirrors
|
||||
the standard _poll()_ system call, and is described in detail in
|
||||
linkzmq:zmq_poll[3]. This API is deprecated, however.
|
||||
xref:zmq_poll.adoc[zmq_poll] This API is deprecated, however.
|
||||
|
||||
There is a new DRAFT API with multiple zmq_poller_* function, which is described
|
||||
in linkzmq:zmq_poller[3].
|
||||
in xref:zmq_poller.adoc[zmq_poller]
|
||||
|
||||
|
||||
Transports
|
||||
@ -158,22 +154,22 @@ advantages and drawbacks.
|
||||
The following transport mechanisms are provided:
|
||||
|
||||
Unicast transport using TCP::
|
||||
linkzmq:zmq_tcp[7]
|
||||
* xref:zmq_tcp.adoc[zmq_tcp]
|
||||
|
||||
Reliable multicast transport using PGM::
|
||||
linkzmq:zmq_pgm[7]
|
||||
* xref:zmq_pgm.adoc[zmq_pgm]
|
||||
|
||||
Local inter-process communication transport::
|
||||
linkzmq:zmq_ipc[7]
|
||||
* xref:zmq_ipc.adoc[zmq_ipc]
|
||||
|
||||
Local in-process (inter-thread) communication transport::
|
||||
linkzmq:zmq_inproc[7]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
|
||||
Virtual Machine Communications Interface (VMC) transport::
|
||||
linkzmq:zmq_vmci[7]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
|
||||
Unreliable unicast and multicast using UDP::
|
||||
linkzmq:zmq_udp[7]
|
||||
* xref:zmq_udp.adoc[zmq_udp]
|
||||
|
||||
|
||||
Proxies
|
||||
@ -181,7 +177,7 @@ Proxies
|
||||
0MQ provides 'proxies' to create fanout and fan-in topologies. A proxy connects
|
||||
a 'frontend' socket to a 'backend' socket and switches all messages between the
|
||||
two sockets, opaquely. A proxy may optionally capture all traffic to a third
|
||||
socket. To start a proxy in an application thread, use linkzmq:zmq_proxy[3].
|
||||
socket. To start a proxy in an application thread, use xref:zmq_proxy.adoc[zmq_proxy]
|
||||
|
||||
|
||||
Security
|
||||
@ -192,27 +188,26 @@ security mechanism.
|
||||
The following security mechanisms are provided for IPC and TCP connections:
|
||||
|
||||
Null security::
|
||||
linkzmq:zmq_null[7]
|
||||
* xref:zmq_null.adoc[zmq_null]
|
||||
|
||||
Plain-text authentication using username and password::
|
||||
linkzmq:zmq_plain[7]
|
||||
* xref:zmq_plain.adoc[zmq_plain]
|
||||
|
||||
Elliptic curve authentication and encryption::
|
||||
linkzmq:zmq_curve[7]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
|
||||
Generate a CURVE keypair in armored text format::
|
||||
linkzmq:zmq_curve_keypair[3]
|
||||
* xref:zmq_curve_keypair.adoc[zmq_curve_keypair]
|
||||
|
||||
Derive a CURVE public key from a secret key:
|
||||
linkzmq:zmq_curve_public[3]
|
||||
Derive a CURVE public key from a secret key::
|
||||
* xref:zmq_curve_public.adoc[zmq_curve_public]
|
||||
|
||||
Converting keys to/from armoured text strings::
|
||||
linkzmq:zmq_z85_decode[3]
|
||||
linkzmq:zmq_z85_encode[3]
|
||||
* xref:zmq_z85_decode.adoc[zmq_z85_decode]
|
||||
* xref:zmq_z85_encode.adoc[zmq_z85_encode]
|
||||
|
||||
|
||||
ERROR HANDLING
|
||||
--------------
|
||||
== ERROR HANDLING
|
||||
The 0MQ library functions handle errors using the standard conventions found on
|
||||
POSIX systems. Generally, this means that upon failure a 0MQ library function
|
||||
shall return either a NULL value (if returning a pointer) or a negative value
|
||||
@ -221,35 +216,32 @@ shall return either a NULL value (if returning a pointer) or a negative value
|
||||
|
||||
On non-POSIX systems some users may experience issues with retrieving the
|
||||
correct value of the 'errno' variable. The _zmq_errno()_ function is provided
|
||||
to assist in these cases; for details refer to linkzmq:zmq_errno[3].
|
||||
to assist in these cases; for details refer to xref:zmq_errno.adoc[zmq_errno]
|
||||
|
||||
The _zmq_strerror()_ function is provided to translate 0MQ-specific error codes
|
||||
into error message strings; for details refer to linkzmq:zmq_strerror[3].
|
||||
into error message strings; for details refer to xref:zmq_strerror.adoc[zmq_strerror]
|
||||
|
||||
|
||||
UTILITY
|
||||
-------
|
||||
== UTILITY
|
||||
The following utility functions are provided:
|
||||
|
||||
Working with atomic counters::
|
||||
linkzmq:zmq_atomic_counter_new[3]
|
||||
linkzmq:zmq_atomic_counter_set[3]
|
||||
linkzmq:zmq_atomic_counter_inc[3]
|
||||
linkzmq:zmq_atomic_counter_dec[3]
|
||||
linkzmq:zmq_atomic_counter_value[3]
|
||||
linkzmq:zmq_atomic_counter_destroy[3]
|
||||
* xref:zmq_atomic_counter_new.adoc[zmq_atomic_counter_new]
|
||||
* xref:zmq_atomic_counter_set.adoc[zmq_atomic_counter_set]
|
||||
* xref:zmq_atomic_counter_inc.adoc[zmq_atomic_counter_inc]
|
||||
* xref:zmq_atomic_counter_dec.adoc[zmq_atomic_counter_dec]
|
||||
* xref:zmq_atomic_counter_value.adoc[zmq_atomic_counter_value]
|
||||
* xref:zmq_atomic_counter_destroy.adoc[zmq_atomic_counter_destroy]
|
||||
|
||||
|
||||
MISCELLANEOUS
|
||||
-------------
|
||||
== MISCELLANEOUS
|
||||
The following miscellaneous functions are provided:
|
||||
|
||||
Report 0MQ library version::
|
||||
linkzmq:zmq_version[3]
|
||||
* xref:zmq_version.adoc[zmq_version]
|
||||
|
||||
|
||||
LANGUAGE BINDINGS
|
||||
-----------------
|
||||
== LANGUAGE BINDINGS
|
||||
The 0MQ library provides interfaces suitable for calling from programs in any
|
||||
language; this documentation documents those interfaces as they would be used
|
||||
by C programmers. The intent is that programmers using 0MQ from other languages
|
||||
@ -260,21 +252,18 @@ Language bindings ($$C++$$, Python, PHP, Ruby, Java and more) are provided by
|
||||
members of the 0MQ community and pointers can be found on the 0MQ website.
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
||||
|
||||
|
||||
RESOURCES
|
||||
---------
|
||||
== RESOURCES
|
||||
Main web site: <http://www.zeromq.org/>
|
||||
|
||||
Report bugs to the 0MQ development mailing list: <zeromq-dev@lists.zeromq.org>
|
||||
|
||||
|
||||
LICENSE
|
||||
-------
|
||||
== LICENSE
|
||||
Free use of this software is granted under the terms of the Mozilla Public
|
||||
License Version 2.0 (MPL-2.0). For details see the file `LICENSE` included with
|
||||
the 0MQ distribution.
|
@ -1,33 +1,27 @@
|
||||
zmq_atomic_counter_dec(3)
|
||||
=========================
|
||||
= zmq_atomic_counter_dec(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_atomic_counter_dec - decrement an atomic counter
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_atomic_counter_dec (void *counter);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_atomic_counter_dec_ function decrements an atomic counter in
|
||||
a threadsafe fashion. This function uses platform specific atomic
|
||||
operations.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_atomic_counter_dec()_ function returns 1 if the counter is
|
||||
greater than zero after decrementing, or zero if the counter reached
|
||||
zero.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Test code for atomic counters
|
||||
----
|
||||
void *counter = zmq_atomic_counter_new ();
|
||||
@ -47,16 +41,14 @@ return 0;
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_atomic_counter_new[3]
|
||||
linkzmq:zmq_atomic_counter_set[3]
|
||||
linkzmq:zmq_atomic_counter_inc[3]
|
||||
linkzmq:zmq_atomic_counter_value[3]
|
||||
linkzmq:zmq_atomic_counter_destroy[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq_atomic_counter_new.adoc[zmq_atomic_counter_new]
|
||||
* xref:zmq_atomic_counter_set.adoc[zmq_atomic_counter_set]
|
||||
* xref:zmq_atomic_counter_inc.adoc[zmq_atomic_counter_inc]
|
||||
* xref:zmq_atomic_counter_value.adoc[zmq_atomic_counter_value]
|
||||
* xref:zmq_atomic_counter_destroy.adoc[zmq_atomic_counter_destroy]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_atomic_counter_destroy(3)
|
||||
=============================
|
||||
= zmq_atomic_counter_destroy(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_atomic_counter_destroy - destroy an atomic counter
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*void zmq_atomic_counter_destroy (void **counter_p);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_atomic_counter_destroy_ function destroys an atomic counter and
|
||||
nullifies its reference. Pass the address of an atomic counter (void **)
|
||||
rather than the counter itself. You must destroy all counters that you
|
||||
@ -21,13 +17,11 @@ create, to avoid memory leakage. This function uses platform specific
|
||||
atomic operations.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_atomic_counter_destroy()_ function has no return value.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Test code for atomic counters
|
||||
----
|
||||
void *counter = zmq_atomic_counter_new ();
|
||||
@ -47,16 +41,14 @@ return 0;
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_atomic_counter_new[3]
|
||||
linkzmq:zmq_atomic_counter_set[3]
|
||||
linkzmq:zmq_atomic_counter_inc[3]
|
||||
linkzmq:zmq_atomic_counter_dec[3]
|
||||
linkzmq:zmq_atomic_counter_value[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq_atomic_counter_new.adoc[zmq_atomic_counter_new]
|
||||
* xref:zmq_atomic_counter_set.adoc[zmq_atomic_counter_set]
|
||||
* xref:zmq_atomic_counter_inc.adoc[zmq_atomic_counter_inc]
|
||||
* xref:zmq_atomic_counter_dec.adoc[zmq_atomic_counter_dec]
|
||||
* xref:zmq_atomic_counter_value.adoc[zmq_atomic_counter_value]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,32 +1,26 @@
|
||||
zmq_atomic_counter_inc(3)
|
||||
=========================
|
||||
= zmq_atomic_counter_inc(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_atomic_counter_inc - increment an atomic counter
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_atomic_counter_inc (void *counter);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_atomic_counter_inc_ function increments an atomic counter in a
|
||||
threadsafe fashion. This function uses platform specific atomic
|
||||
operations.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_atomic_counter_inc()_ function returns the old value of the
|
||||
counter, before incrementing.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Test code for atomic counters
|
||||
----
|
||||
void *counter = zmq_atomic_counter_new ();
|
||||
@ -46,16 +40,14 @@ return 0;
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_atomic_counter_new[3]
|
||||
linkzmq:zmq_atomic_counter_set[3]
|
||||
linkzmq:zmq_atomic_counter_dec[3]
|
||||
linkzmq:zmq_atomic_counter_value[3]
|
||||
linkzmq:zmq_atomic_counter_destroy[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq_atomic_counter_new.adoc[zmq_atomic_counter_new]
|
||||
* xref:zmq_atomic_counter_set.adoc[zmq_atomic_counter_set]
|
||||
* xref:zmq_atomic_counter_dec.adoc[zmq_atomic_counter_dec]
|
||||
* xref:zmq_atomic_counter_value.adoc[zmq_atomic_counter_value]
|
||||
* xref:zmq_atomic_counter_destroy.adoc[zmq_atomic_counter_destroy]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,33 +1,27 @@
|
||||
zmq_atomic_counter_new(3)
|
||||
=========================
|
||||
= zmq_atomic_counter_new(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_atomic_counter_new - create a new atomic counter
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*void *zmq_atomic_counter_new (void);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_atomic_counter_new_ function creates a new atomic counter. You
|
||||
can use this in multithreaded applications to do, for example, reference
|
||||
counting of shared objects. The atomic counter is at least 32 bits large.
|
||||
This function uses platform specific atomic operations.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_atomic_counter_new()_ function returns the new atomic counter
|
||||
if successful. Otherwise it returns NULL.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Test code for atomic counters
|
||||
----
|
||||
void *counter = zmq_atomic_counter_new ();
|
||||
@ -47,16 +41,14 @@ return 0;
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_atomic_counter_set[3]
|
||||
linkzmq:zmq_atomic_counter_inc[3]
|
||||
linkzmq:zmq_atomic_counter_dec[3]
|
||||
linkzmq:zmq_atomic_counter_value[3]
|
||||
linkzmq:zmq_atomic_counter_destroy[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq_atomic_counter_set.adoc[zmq_atomic_counter_set]
|
||||
* xref:zmq_atomic_counter_inc.adoc[zmq_atomic_counter_inc]
|
||||
* xref:zmq_atomic_counter_dec.adoc[zmq_atomic_counter_dec]
|
||||
* xref:zmq_atomic_counter_value.adoc[zmq_atomic_counter_value]
|
||||
* xref:zmq_atomic_counter_destroy.adoc[zmq_atomic_counter_destroy]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,32 +1,26 @@
|
||||
zmq_atomic_counter_set(3)
|
||||
=========================
|
||||
= zmq_atomic_counter_set(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_atomic_counter_set - set atomic counter to new value
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*void zmq_atomic_counter_set (void *counter, int value);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_atomic_counter_set_ function sets the counter to a new value,
|
||||
in a threadsafe fashion. The largest value that is guaranteed to work
|
||||
across all platforms is 2^31-1. This function uses platform specific
|
||||
atomic operations.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_atomic_counter_set()_ function has no return value.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Test code for atomic counters
|
||||
----
|
||||
void *counter = zmq_atomic_counter_new ();
|
||||
@ -46,16 +40,14 @@ return 0;
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_atomic_counter_new[3]
|
||||
linkzmq:zmq_atomic_counter_inc[3]
|
||||
linkzmq:zmq_atomic_counter_dec[3]
|
||||
linkzmq:zmq_atomic_counter_value[3]
|
||||
linkzmq:zmq_atomic_counter_destroy[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq_atomic_counter_new.adoc[zmq_atomic_counter_new]
|
||||
* xref:zmq_atomic_counter_inc.adoc[zmq_atomic_counter_inc]
|
||||
* xref:zmq_atomic_counter_dec.adoc[zmq_atomic_counter_dec]
|
||||
* xref:zmq_atomic_counter_value.adoc[zmq_atomic_counter_value]
|
||||
* xref:zmq_atomic_counter_destroy.adoc[zmq_atomic_counter_destroy]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,33 +1,27 @@
|
||||
zmq_atomic_counter_value(3)
|
||||
===========================
|
||||
= zmq_atomic_counter_value(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_atomic_counter_value - return value of atomic counter
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_atomic_counter_value (void *counter);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_atomic_counter_value_ function returns the value of an atomic
|
||||
counter created by _zmq_atomic_counter_new()_. This function uses platform
|
||||
specific atomic operations.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_atomic_counter_value()_ function returns the value of the
|
||||
atomic counter. If _counter_ does not point to an atomic counter created by
|
||||
_zmq_atomic_counter_new()_, the behaviour is undefined.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Test code for atomic counters
|
||||
----
|
||||
void *counter = zmq_atomic_counter_new ();
|
||||
@ -47,16 +41,14 @@ return 0;
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_atomic_counter_new[3]
|
||||
linkzmq:zmq_atomic_counter_set[3]
|
||||
linkzmq:zmq_atomic_counter_inc[3]
|
||||
linkzmq:zmq_atomic_counter_dec[3]
|
||||
linkzmq:zmq_atomic_counter_destroy[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq_atomic_counter_new.adoc[zmq_atomic_counter_new]
|
||||
* xref:zmq_atomic_counter_set.adoc[zmq_atomic_counter_set]
|
||||
* xref:zmq_atomic_counter_inc.adoc[zmq_atomic_counter_inc]
|
||||
* xref:zmq_atomic_counter_dec.adoc[zmq_atomic_counter_dec]
|
||||
* xref:zmq_atomic_counter_destroy.adoc[zmq_atomic_counter_destroy]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_bind(3)
|
||||
===========
|
||||
= zmq_bind(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_bind - accept incoming connections on a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_bind (void '*socket', const char '*endpoint');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_bind()_ function binds the 'socket' to a local 'endpoint' and then
|
||||
accepts incoming connections on that endpoint.
|
||||
|
||||
@ -23,20 +19,20 @@ The 'endpoint' is a string consisting of a 'transport'`://` followed by an
|
||||
|
||||
0MQ provides the the following transports:
|
||||
|
||||
'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7]
|
||||
'ipc':: local inter-process communication transport, see linkzmq:zmq_ipc[7]
|
||||
'inproc':: local in-process (inter-thread) communication transport, see linkzmq:zmq_inproc[7]
|
||||
'pgm', 'epgm':: reliable multicast transport using PGM, see linkzmq:zmq_pgm[7]
|
||||
'vmci':: virtual machine communications interface (VMCI), see linkzmq:zmq_vmci[7]
|
||||
'udp':: unreliable unicast and multicast using UDP, see linkzmq:zmq_udp[7]
|
||||
'tcp':: unicast transport using TCP, see xref:zmq_tcp.adoc[zmq_tcp]
|
||||
'ipc':: local inter-process communication transport, see xref:zmq_ipc.adoc[zmq_ipc]
|
||||
'inproc':: local in-process (inter-thread) communication transport, see xref:zmq_inproc.adoc[zmq_inproc]
|
||||
'pgm', 'epgm':: reliable multicast transport using PGM, see xref:zmq_pgm.adoc[zmq_pgm]
|
||||
'vmci':: virtual machine communications interface (VMCI), see xref:zmq_vmci.adoc[zmq_vmci]
|
||||
'udp':: unreliable unicast and multicast using UDP, see xref:zmq_udp.adoc[zmq_udp]
|
||||
|
||||
Every 0MQ socket type except 'ZMQ_PAIR' and 'ZMQ_CHANNEL' supports one-to-many and many-to-one
|
||||
semantics. The precise semantics depend on the socket type and are defined in
|
||||
linkzmq:zmq_socket[3].
|
||||
xref:zmq_socket.adoc[zmq_socket]
|
||||
|
||||
The 'ipc', 'tcp', 'vmci' and 'udp' transports accept wildcard addresses: see
|
||||
linkzmq:zmq_ipc[7], linkzmq:zmq_tcp[7], linkzmq:zmq_vmci[7] and
|
||||
linkzmq:zmq_udp[7] for details.
|
||||
xref:zmq_ipc.adoc[zmq_ipc], xref:zmq_tcp.adoc[zmq_tcp], xref:zmq_vmci.adoc[zmq_vmci] and
|
||||
xref:zmq_udp.adoc[zmq_udp] for details.
|
||||
|
||||
NOTE: the address syntax may be different for _zmq_bind()_ and _zmq_connect()_
|
||||
especially for the 'tcp', 'pgm' and 'epgm' transports.
|
||||
@ -44,18 +40,16 @@ especially for the 'tcp', 'pgm' and 'epgm' transports.
|
||||
NOTE: following a _zmq_bind()_, the socket enters a 'mute' state unless or
|
||||
until at least one incoming or outgoing connection is made, at which point
|
||||
the socket enters a 'ready' state. In the mute state, the socket blocks or
|
||||
drops messages according to the socket type, as defined in linkzmq:zmq_socket[3].
|
||||
By contrast, following a libzmq:zmq_connect[3], the socket enters the 'ready' state.
|
||||
drops messages according to the socket type, as defined in xref:zmq_socket.adoc[zmq_socket]
|
||||
By contrast, following a libzmq:zmq_connect, the socket enters the 'ready' state.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_bind()_ function returns zero if successful. Otherwise it returns
|
||||
`-1` and sets 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The endpoint supplied is invalid.
|
||||
*EPROTONOSUPPORT*::
|
||||
@ -76,8 +70,7 @@ The provided 'socket' was invalid.
|
||||
No I/O thread is available to accomplish the task.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Binding a publisher socket to an in-process and a TCP transport
|
||||
----
|
||||
/* Create a ZMQ_PUB socket */
|
||||
@ -92,14 +85,12 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_close(3)
|
||||
============
|
||||
= zmq_close(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_close - close 0MQ socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_close (void '*socket');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_close()_ function shall destroy the socket referenced by the 'socket'
|
||||
argument. Any outstanding messages physically received from the network but not
|
||||
yet received by the application with _zmq_recv()_ shall be discarded. The
|
||||
@ -27,33 +23,29 @@ socket or if 'socket' does not point to a socket, the behaviour is undefined.
|
||||
|
||||
NOTE: The default setting of _ZMQ_LINGER_ does not discard unsent messages;
|
||||
this behaviour may cause the application to block when calling _zmq_ctx_term()_.
|
||||
For details refer to linkzmq:zmq_setsockopt[3] and linkzmq:zmq_ctx_term[3].
|
||||
For details refer to xref:zmq_setsockopt.adoc[zmq_setsockopt] and xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
|
||||
NOTE: This API will complete asynchronously, so not everything will be deallocated
|
||||
after it returns. See above for details about linger.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_close()_ function shall return zero if successful. Otherwise it shall
|
||||
return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ENOTSOCK*::
|
||||
The provided 'socket' was NULL.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq_ctx_term[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_connect(3)
|
||||
==============
|
||||
= zmq_connect(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_connect - create outgoing connection from socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_connect (void '*socket', const char '*endpoint');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_connect()_ function connects the 'socket' to an 'endpoint' and then
|
||||
accepts incoming connections on that endpoint.
|
||||
|
||||
@ -23,16 +19,16 @@ The 'endpoint' is a string consisting of a 'transport'`://` followed by an
|
||||
|
||||
0MQ provides the the following transports:
|
||||
|
||||
'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7]
|
||||
'ipc':: local inter-process communication transport, see linkzmq:zmq_ipc[7]
|
||||
'inproc':: local in-process (inter-thread) communication transport, see linkzmq:zmq_inproc[7]
|
||||
'pgm', 'epgm':: reliable multicast transport using PGM, see linkzmq:zmq_pgm[7]
|
||||
'vmci':: virtual machine communications interface (VMCI), see linkzmq:zmq_vmci[7]
|
||||
'udp':: unreliable unicast and multicast using UDP, see linkzmq:zmq_udp[7]
|
||||
'tcp':: unicast transport using TCP, see xref:zmq_tcp.adoc[zmq_tcp]
|
||||
'ipc':: local inter-process communication transport, see xref:zmq_ipc.adoc[zmq_ipc]
|
||||
'inproc':: local in-process (inter-thread) communication transport, see xref:zmq_inproc.adoc[zmq_inproc]
|
||||
'pgm', 'epgm':: reliable multicast transport using PGM, see xref:zmq_pgm.adoc[zmq_pgm]
|
||||
'vmci':: virtual machine communications interface (VMCI), see xref:zmq_vmci.adoc[zmq_vmci]
|
||||
'udp':: unreliable unicast and multicast using UDP, see xref:zmq_udp.adoc[zmq_udp]
|
||||
|
||||
Every 0MQ socket type except 'ZMQ_PAIR' and 'ZMQ_CHANNEL' supports one-to-many and many-to-one
|
||||
semantics. The precise semantics depend on the socket type and are defined in
|
||||
linkzmq:zmq_socket[3].
|
||||
xref:zmq_socket.adoc[zmq_socket]
|
||||
|
||||
NOTE: for most transports and socket types the connection is not performed
|
||||
immediately but as needed by 0MQ. Thus a successful call to _zmq_connect()_
|
||||
@ -46,7 +42,7 @@ NOTE: following a _zmq_connect()_, for socket types except for ZMQ_ROUTER,
|
||||
the socket enters its normal 'ready' state. By contrast, following a
|
||||
_zmq_bind()_ alone, the socket enters a 'mute' state in which the socket
|
||||
blocks or drops messages according to the socket type, as defined in
|
||||
linkzmq:zmq_socket[3]. A ZMQ_ROUTER socket enters its normal 'ready' state
|
||||
xref:zmq_socket.adoc[zmq_socket] A ZMQ_ROUTER socket enters its normal 'ready' state
|
||||
for a specific peer only when handshaking is complete for that peer, which
|
||||
may take an arbitrary time.
|
||||
|
||||
@ -58,14 +54,12 @@ is silently ignored (i.e., returns zero). This behavior applies to ZMQ_DEALER,
|
||||
ZMQ_SUB, ZMQ_PUB, and ZMQ_REQ socket types.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_connect()_ function returns zero if successful. Otherwise it returns
|
||||
`-1` and sets 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The endpoint supplied is invalid.
|
||||
*EPROTONOSUPPORT*::
|
||||
@ -80,8 +74,7 @@ The provided 'socket' was invalid.
|
||||
No I/O thread is available to accomplish the task.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Connecting a subscriber socket to an in-process and a TCP transport
|
||||
----
|
||||
/* Create a ZMQ_SUB socket */
|
||||
@ -96,14 +89,12 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_connect_peer(3)
|
||||
===================
|
||||
= zmq_connect_peer(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_connect_peer - create outgoing connection from socket and return the connection routing id in thread-safe and atomic way.
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*uint32_t zmq_connect_peer (void '*socket', const char '*endpoint');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_connect_peer()_ function connects a 'ZMQ_PEER' socket to an 'endpoint' and then returns the endpoint 'routing_id'.
|
||||
|
||||
The 'endpoint' is a string consisting of a 'transport'`://` followed by an
|
||||
@ -24,20 +20,18 @@ The function is supported only on the 'ZMQ_PEER' socket type and would return `0
|
||||
|
||||
The _zmq_connect_peer()_ support the following transports:
|
||||
|
||||
'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7]
|
||||
'ipc':: local inter-process communication transport, see linkzmq:zmq_ipc[7]
|
||||
'inproc':: local in-process (inter-thread) communication transport, see linkzmq:zmq_inproc[7]
|
||||
'ws':: unicast transport using WebSockets, see linkzmq:zmq_ws[7]
|
||||
'wss':: unicast transport using WebSockets over TLS, see linkzmq:zmq_wss[7]
|
||||
'tcp':: unicast transport using TCP, see xref:zmq_tcp.adoc[zmq_tcp]
|
||||
'ipc':: local inter-process communication transport, see xref:zmq_ipc.adoc[zmq_ipc]
|
||||
'inproc':: local in-process (inter-thread) communication transport, see xref:zmq_inproc.adoc[zmq_inproc]
|
||||
'ws':: unicast transport using WebSockets, see xref:zmq_ws.adoc[zmq_ws]
|
||||
'wss':: unicast transport using WebSockets over TLS, see xref:zmq_wss.adoc[zmq_wss]
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_connect_peer()_ function returns the peer 'routing_id' if successful. Otherwise it returns
|
||||
`0` and sets 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The endpoint supplied is invalid.
|
||||
*EPROTONOSUPPORT*::
|
||||
@ -55,8 +49,7 @@ The socket is not of type 'ZMQ_PEER'.
|
||||
*EFAULT*::
|
||||
The 'ZMQ_IMMEDIATE' option is set on the socket.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Connecting a peer socket to a TCP transport and sending a message
|
||||
----
|
||||
/* Create a ZMQ_SUB socket */
|
||||
@ -78,15 +71,13 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,67 +0,0 @@
|
||||
zmq_ctx_destroy(3)
|
||||
==================
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
zmq_ctx_destroy - terminate a 0MQ context
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
*int zmq_ctx_destroy (void '*context');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
The _zmq_ctx_destroy()_ function shall destroy the 0MQ context 'context'.
|
||||
|
||||
Context termination is performed in the following steps:
|
||||
|
||||
1. Any blocking operations currently in progress on sockets open within
|
||||
'context' shall return immediately with an error code of ETERM. With the
|
||||
exception of _zmq_close()_, any further operations on sockets open within
|
||||
'context' shall fail with an error code of ETERM.
|
||||
|
||||
2. After interrupting all blocking calls, _zmq_ctx_destroy()_ shall _block_ until the
|
||||
following conditions are satisfied:
|
||||
|
||||
* All sockets open within 'context' have been closed with _zmq_close()_.
|
||||
|
||||
* For each socket within 'context', all messages sent by the application
|
||||
with _zmq_send()_ have either been physically transferred to a network
|
||||
peer, or the socket's linger period set with the _ZMQ_LINGER_ socket
|
||||
option has expired.
|
||||
|
||||
For further details regarding socket linger behaviour refer to the _ZMQ_LINGER_
|
||||
option in linkzmq:zmq_setsockopt[3].
|
||||
|
||||
This function is deprecated by linkzmq:zmq_ctx_term[3].
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
The _zmq_ctx_destroy()_ function shall return zero if successful. Otherwise
|
||||
it shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
*EFAULT*::
|
||||
The provided 'context' was invalid.
|
||||
*EINTR*::
|
||||
Termination was interrupted by a signal. It can be restarted if needed.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
linkzmq:zmq_init[3]
|
||||
linkzmq:zmq_close[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
@ -1,20 +1,16 @@
|
||||
zmq_ctx_get(3)
|
||||
==============
|
||||
= zmq_ctx_get(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_ctx_get - get context options
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_ctx_get (void '*context', int 'option_name');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_ctx_get()_ function shall return the option specified by the
|
||||
'option_name' argument.
|
||||
|
||||
@ -49,7 +45,7 @@ NOTE: in DRAFT state, not yet available in stable releases.
|
||||
ZMQ_SOCKET_LIMIT: Get largest configurable number of sockets
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_SOCKET_LIMIT' argument returns the largest number of sockets that
|
||||
linkzmq:zmq_ctx_set[3] will accept.
|
||||
xref:zmq_ctx_set.adoc[zmq_ctx_set] will accept.
|
||||
|
||||
|
||||
ZMQ_IPV6: Set IPv6 option
|
||||
@ -83,23 +79,20 @@ runtime, as defined in the include/zmq.h public header.
|
||||
This is useful for example for FFI bindings that can't simply do a sizeof().
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_ctx_get()_ function returns a value of 0 or greater if successful.
|
||||
Otherwise it returns `-1` and sets 'errno' to one of the values defined
|
||||
below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested option _option_name_ is unknown.
|
||||
*EFAULT*::
|
||||
The provided 'context' is invalid.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Setting a limit on the number of sockets
|
||||
----
|
||||
void *context = zmq_ctx_new ();
|
||||
@ -113,13 +106,11 @@ zmq_ctx_set (ctx, ZMQ_BLOCKY, false);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_ctx_set[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_ctx_set.adoc[zmq_ctx_set]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_ctx_get_ext(3)
|
||||
==================
|
||||
= zmq_ctx_get_ext(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_ctx_get_ext - get extended context options
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_ctx_get_ext (void '*context', int 'option_name', void '*option_value', size_t '*option_len');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_ctx_get()_ function shall retrieve the value for the option
|
||||
specified by the 'option_name' argument and store it in the buffer pointed to
|
||||
by the 'option_value' argument.
|
||||
@ -39,23 +35,20 @@ Option value unit:: N/A
|
||||
Default value:: empty string
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_ctx_get_ext()_ function returns a value of 0 or greater if successful.
|
||||
Otherwise it returns `-1` and sets 'errno' to one of the values defined
|
||||
below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested option _option_name_ is unknown.
|
||||
*EFAULT*::
|
||||
The provided 'context' is invalid.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Setting a prefix on internal ZMQ thread names:
|
||||
----
|
||||
void *context = zmq_ctx_new ();
|
||||
@ -72,13 +65,11 @@ assert (buffLen == prefixLen);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_ctx_get[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_ctx_get.adoc[zmq_ctx_get]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,22 +1,18 @@
|
||||
zmq_ctx_new(3)
|
||||
==============
|
||||
= zmq_ctx_new(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_ctx_new - create new 0MQ context
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*void *zmq_ctx_new ();*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_ctx_new()_ function creates a new 0MQ 'context'.
|
||||
|
||||
This function replaces the deprecated function linkzmq:zmq_init[3].
|
||||
This function replaces the deprecated function xref:zmq_init.adoc[zmq_init]
|
||||
|
||||
.Thread safety
|
||||
A 0MQ 'context' is thread safe and may be shared among as many application
|
||||
@ -24,15 +20,13 @@ threads as necessary, without any additional locking required on the part of
|
||||
the caller.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_ctx_new()_ function shall return an opaque handle to the newly created
|
||||
'context' if successful. Otherwise it shall return NULL and set 'errno' to one
|
||||
of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EMFILE*::
|
||||
The limit on the total number of open files has been reached and it
|
||||
wasn't possible to create a new context.
|
||||
@ -41,15 +35,13 @@ The limit on the total number of open files in system has been reached
|
||||
and it wasn't possible to create a new context.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
linkzmq:zmq_ctx_set[3]
|
||||
linkzmq:zmq_ctx_get[3]
|
||||
linkzmq:zmq_ctx_term[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
* xref:zmq_ctx_set.adoc[zmq_ctx_set]
|
||||
* xref:zmq_ctx_get.adoc[zmq_ctx_get]
|
||||
* xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_ctx_set(3)
|
||||
==============
|
||||
= zmq_ctx_set(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_ctx_set - set context options
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_ctx_set (void '*context', int 'option_name', int 'option_value');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_ctx_set()_ function shall set the option specified by the
|
||||
'option_name' argument to the value of the 'option_value' argument.
|
||||
|
||||
@ -120,7 +116,7 @@ ZMQ_MAX_MSGSZ: Set maximum message size
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_MAX_MSGSZ' argument sets the maximum allowed size
|
||||
of a message sent in the context. You can query the maximal
|
||||
allowed value with linkzmq:zmq_ctx_get[3] using the
|
||||
allowed value with xref:zmq_ctx_get.adoc[zmq_ctx_get] using the
|
||||
'ZMQ_MAX_MSGSZ' option.
|
||||
|
||||
[horizontal]
|
||||
@ -134,7 +130,7 @@ The 'ZMQ_ZERO_COPY_RECV' argument specifies whether the message decoder should
|
||||
use a zero copy strategy when receiving messages. The zero copy strategy can
|
||||
lead to increased memory usage in some cases. This option allows you to use the
|
||||
older copying strategy. You can query the value of this option with
|
||||
linkzmq:zmq_ctx_get[3] using the 'ZMQ_ZERO_COPY_RECV' option.
|
||||
xref:zmq_ctx_get.adoc[zmq_ctx_get] using the 'ZMQ_ZERO_COPY_RECV' option.
|
||||
NOTE: in DRAFT state, not yet available in stable releases.
|
||||
|
||||
[horizontal]
|
||||
@ -145,7 +141,7 @@ ZMQ_MAX_SOCKETS: Set maximum number of sockets
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_MAX_SOCKETS' argument sets the maximum number of sockets allowed
|
||||
on the context. You can query the maximal allowed value with
|
||||
linkzmq:zmq_ctx_get[3] using the 'ZMQ_SOCKET_LIMIT' option.
|
||||
xref:zmq_ctx_get.adoc[zmq_ctx_get] using the 'ZMQ_SOCKET_LIMIT' option.
|
||||
|
||||
[horizontal]
|
||||
Default value:: 1023
|
||||
@ -163,20 +159,17 @@ IPv4 and IPv6 hosts.
|
||||
Default value:: 0
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_ctx_set()_ function returns zero if successful. Otherwise it
|
||||
returns `-1` and sets 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested option _option_name_ is unknown.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Setting a limit on the number of sockets
|
||||
----
|
||||
void *context = zmq_ctx_new ();
|
||||
@ -186,13 +179,11 @@ assert (max_sockets == 256);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_ctx_get[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_ctx_get.adoc[zmq_ctx_get]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_ctx_set_ext(3)
|
||||
==================
|
||||
= zmq_ctx_set_ext(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_ctx_set_ext - set extended context options
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_ctx_set_ext (void '*context', int 'option_name', const void '*option_value', size_t 'option_len');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
|
||||
The _zmq_ctx_set_ext()_ function shall set the option specified by the
|
||||
'option_name' argument to the value pointed to by the 'option_value' argument
|
||||
@ -44,22 +40,19 @@ Option value unit:: N/A
|
||||
Default value:: empty string
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_ctx_set_ext()_ function returns zero if successful. Otherwise it
|
||||
returns `-1` and sets 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested option _option_name_ is unknown.
|
||||
*EFAULT*::
|
||||
The provided 'context' is invalid.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Setting a prefix on internal ZMQ thread names:
|
||||
----
|
||||
void *context = zmq_ctx_new ();
|
||||
@ -76,13 +69,11 @@ assert (buffLen == prefixLen);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_ctx_set[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_ctx_set.adoc[zmq_ctx_set]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_ctx_shutdown(3)
|
||||
==================
|
||||
= zmq_ctx_shutdown(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_ctx_shutdown - shutdown a 0MQ context
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_ctx_shutdown (void '*context');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_ctx_shutdown()_ function shall shutdown the 0MQ context 'context'.
|
||||
|
||||
Context shutdown will cause any blocking operations currently in progress on
|
||||
@ -23,32 +19,28 @@ With the exception of _zmq_close()_, any further operations on sockets open with
|
||||
using _zmq_socket()_ on a context for which _zmq_ctx_shutdown()_ has been called,
|
||||
it will return and set errno to ETERM.
|
||||
|
||||
This function is optional, client code is still required to call the linkzmq:zmq_ctx_term[3]
|
||||
This function is optional, client code is still required to call the xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
function to free all resources allocated by zeromq.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_ctx_shutdown()_ function shall return zero if successful. Otherwise
|
||||
it shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EFAULT*::
|
||||
The provided 'context' was invalid.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
linkzmq:zmq_init[3]
|
||||
linkzmq:zmq_ctx_term[3]
|
||||
linkzmq:zmq_close[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
* xref:zmq_init.adoc[zmq_init]
|
||||
* xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
* xref:zmq_close.adoc[zmq_close]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_ctx_term(3)
|
||||
===============
|
||||
= zmq_ctx_term(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_ctx_term - terminate a 0MQ context
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_ctx_term (void '*context');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_ctx_term()_ function shall destroy the 0MQ context 'context'.
|
||||
|
||||
Context termination is performed in the following steps:
|
||||
@ -34,35 +30,31 @@ Context termination is performed in the following steps:
|
||||
option has expired.
|
||||
|
||||
For further details regarding socket linger behaviour refer to the _ZMQ_LINGER_
|
||||
option in linkzmq:zmq_setsockopt[3].
|
||||
option in xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
|
||||
This function replaces the deprecated functions linkzmq:zmq_term[3] and
|
||||
linkzmq:zmq_ctx_destroy[3].
|
||||
This function replaces the deprecated functions xref:zmq_term.adoc[zmq_term] and
|
||||
xref:zmq_ctx_destroy.adoc[zmq_ctx_destroy]
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_ctx_term()_ function shall return zero if successful. Otherwise
|
||||
it shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EFAULT*::
|
||||
The provided 'context' was invalid.
|
||||
*EINTR*::
|
||||
Termination was interrupted by a signal. It can be restarted if needed.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
linkzmq:zmq_init[3]
|
||||
linkzmq:zmq_close[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
* xref:zmq_init.adoc[zmq_init]
|
||||
* xref:zmq_close.adoc[zmq_close]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,22 +1,18 @@
|
||||
zmq_curve(7)
|
||||
============
|
||||
= zmq_curve(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_curve - secure authentication and confidentiality
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
The CURVE mechanism defines a mechanism for secure authentication and
|
||||
confidentiality for communications between a client and a server. CURVE
|
||||
is intended for use on public networks. The CURVE mechanism is defined
|
||||
by this document: <http://rfc.zeromq.org/spec:25>.
|
||||
|
||||
|
||||
CLIENT AND SERVER ROLES
|
||||
-----------------------
|
||||
== CLIENT AND SERVER ROLES
|
||||
A socket using CURVE can be either client or server, at any moment, but
|
||||
not both. The role is independent of bind/connect direction.
|
||||
|
||||
@ -37,8 +33,7 @@ long-term key pair.
|
||||
If the server does authentication it will be based on the client's long
|
||||
term public key.
|
||||
|
||||
KEY ENCODING
|
||||
------------
|
||||
== KEY ENCODING
|
||||
The standard representation for keys in source code is either 32 bytes of
|
||||
base 256 (binary) data, or 40 characters of base 85 data encoded using the
|
||||
Z85 algorithm defined by http://rfc.zeromq.org/spec:32.
|
||||
@ -48,8 +43,7 @@ configuration files, the command line, and code. There is a reference
|
||||
implementation in C at https://github.com/zeromq/rfc/tree/master/src.
|
||||
|
||||
|
||||
TEST KEY VALUES
|
||||
---------------
|
||||
== TEST KEY VALUES
|
||||
For test cases, the client shall use this long-term key pair (specified
|
||||
as hexadecimal and in Z85):
|
||||
|
||||
@ -76,17 +70,15 @@ secret:
|
||||
JTKVSB%%)wK0E.X)V>+}o?pNmC{O&4W4b!Ni{Lh6
|
||||
----
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_z85_encode[3]
|
||||
linkzmq:zmq_z85_decode[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_null[7]
|
||||
linkzmq:zmq_plain[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_z85_encode.adoc[zmq_z85_encode]
|
||||
* xref:zmq_z85_decode.adoc[zmq_z85_decode]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_null.adoc[zmq_null]
|
||||
* xref:zmq_plain.adoc[zmq_plain]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,39 +1,32 @@
|
||||
zmq_curve_keypair(3)
|
||||
====================
|
||||
= zmq_curve_keypair(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_curve_keypair - generate a new CURVE keypair
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_curve_keypair (char *z85_public_key, char *z85_secret_key);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_curve_keypair()_ function shall return a newly generated random
|
||||
keypair consisting of a public key and a secret key. The caller provides
|
||||
two buffers, each at least 41 octets large, in which this method will
|
||||
store the keys. The keys are encoded using linkzmq:zmq_z85_encode[3].
|
||||
store the keys. The keys are encoded using xref:zmq_z85_encode.adoc[zmq_z85_encode].
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_curve_keypair()_ function shall return 0 if successful, else it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ENOTSUP*::
|
||||
The libzmq library was not built with cryptographic support (libsodium).
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Generating a new CURVE keypair
|
||||
----
|
||||
char public_key [41];
|
||||
@ -43,14 +36,12 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_z85_decode[3]
|
||||
linkzmq:zmq_z85_encode[3]
|
||||
linkzmq:zmq_curve[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_z85_encode.adoc[zmq_z85_encode]
|
||||
* xref:zmq_z85_decode.adoc[zmq_z85_decode]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,40 +1,33 @@
|
||||
zmq_curve_public(3)
|
||||
===================
|
||||
= zmq_curve_public(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_curve_public - derive the public key from a private key
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_curve_public (char *z85_public_key, char *z85_secret_key);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_curve_public()_ function shall derive the public key from a
|
||||
private key. The caller provides two buffers, each at least 41 octets
|
||||
large. In z85_secret_key the caller shall provide the private key, and
|
||||
the function will store the public key in z85_public_key. The keys are
|
||||
encoded using linkzmq:zmq_z85_encode[3].
|
||||
encoded using xref:zmq_z85_encode.adoc[zmq_z85_encode].
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_curve_public()_ function shall return 0 if successful, else it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ENOTSUP*::
|
||||
The libzmq library was not built with cryptographic support (libsodium).
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Deriving the public key from a CURVE private key
|
||||
----
|
||||
char public_key [41];
|
||||
@ -48,15 +41,13 @@ assert (!strcmp (derived_public, public_key));
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_z85_decode[3]
|
||||
linkzmq:zmq_z85_encode[3]
|
||||
linkzmq:zmq_curve_keypair[3]
|
||||
linkzmq:zmq_curve[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_z85_encode.adoc[zmq_z85_encode]
|
||||
* xref:zmq_z85_decode.adoc[zmq_z85_decode]
|
||||
* xref:zmq_curve_keypair.adoc[zmq_curve_keypair]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_disconnect(3)
|
||||
=================
|
||||
= zmq_disconnect(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_disconnect - Disconnect a socket from an endpoint
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_disconnect (void '*socket', const char '*endpoint');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_disconnect()_ function shall disconnect a socket specified
|
||||
by the 'socket' argument from the endpoint specified by the 'endpoint'
|
||||
argument. Note the actual disconnect system call might occur at a later time.
|
||||
@ -25,19 +21,17 @@ associated with the endpoint will be discarded. However, if the socket's linger
|
||||
period is non-zero, libzmq will still attempt to transmit these discarded messages,
|
||||
until the linger period expires.
|
||||
|
||||
The 'endpoint' argument is as described in linkzmq:zmq_connect[3]
|
||||
The 'endpoint' argument is as described in xref:zmq_connect.adoc[zmq_connect]
|
||||
|
||||
NOTE: The default setting of _ZMQ_LINGER_ does not discard unsent messages;
|
||||
this behaviour may cause the application to block when calling _zmq_ctx_term()_.
|
||||
For details refer to linkzmq:zmq_setsockopt[3] and linkzmq:zmq_ctx_term[3].
|
||||
For details refer to xref:zmq_setsockopt.adoc[zmq_setsockopt] and xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_disconnect()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The endpoint supplied is invalid.
|
||||
*ETERM*::
|
||||
@ -48,8 +42,7 @@ The provided 'socket' was invalid.
|
||||
The provided endpoint is not in use by the socket.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Connecting a subscriber socket to an in-process and a TCP transport
|
||||
----
|
||||
/* Create a ZMQ_SUB socket */
|
||||
@ -63,14 +56,12 @@ rc = zmq_disconnect (socket, "tcp://server001:5555");
|
||||
assert (rc == 0);
|
||||
----
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_errno(3)
|
||||
============
|
||||
= zmq_errno(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_errno - retrieve value of errno for the calling thread
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_errno (void);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_errno()_ function shall retrieve the value of the 'errno' variable for
|
||||
the calling thread.
|
||||
|
||||
@ -28,23 +24,19 @@ IMPORTANT: Users not experiencing issues with retrieving the correct value of
|
||||
variable directly.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_errno()_ function shall return the value of the 'errno' variable for
|
||||
the calling thread.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
No errors are defined.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_getsockopt(3)
|
||||
=================
|
||||
= zmq_getsockopt(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_getsockopt - get 0MQ socket options
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_getsockopt (void '*socket', int 'option_name', void '*option_value', size_t '*option_len');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_getsockopt()_ function shall retrieve the value for the option
|
||||
specified by the 'option_name' argument for the 0MQ socket pointed to by the
|
||||
'socket' argument, and store it in the buffer pointed to by the 'option_value'
|
||||
@ -39,7 +35,7 @@ corresponds to thread 1, second lowest bit to thread 2 and so on. For example,
|
||||
a value of 3 specifies that subsequent connections on 'socket' shall be handled
|
||||
exclusively by I/O threads 1 and 2.
|
||||
|
||||
See also linkzmq:zmq_init[3] for details on allocating the number of I/O
|
||||
See also xref:zmq_init.adoc[zmq_init] for details on allocating the number of I/O
|
||||
threads for a specific _context_.
|
||||
|
||||
[horizontal]
|
||||
@ -384,8 +380,8 @@ ZMQ_LINGER: Retrieve linger period for socket shutdown
|
||||
The 'ZMQ_LINGER' option shall retrieve the linger period for the specified
|
||||
'socket'. The linger period determines how long pending messages which have
|
||||
yet to be sent to a peer shall linger in memory after a socket is closed with
|
||||
linkzmq:zmq_close[3], and further affects the termination of the socket's
|
||||
context with linkzmq:zmq_ctx_term[3]. The following outlines the different
|
||||
xref:zmq_close.adoc[zmq_close], and further affects the termination of the socket's
|
||||
context with xref:zmq_ctx_term.adoc[zmq_ctx_term] The following outlines the different
|
||||
behaviours:
|
||||
|
||||
* The default value of '-1' specifies an infinite linger period. Pending
|
||||
@ -561,7 +557,7 @@ limit.
|
||||
If this limit has been reached the socket shall enter an exceptional state and
|
||||
depending on the socket type, 0MQ shall take appropriate action such as
|
||||
blocking or dropping sent messages. Refer to the individual socket descriptions
|
||||
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
|
||||
in xref:zmq_socket.adoc[zmq_socket] for details on the exact action taken for each socket
|
||||
type.
|
||||
|
||||
[horizontal]
|
||||
@ -577,7 +573,7 @@ The 'ZMQ_RCVMORE' option shall return True (1) if the message part last
|
||||
received from the 'socket' was a data part with more parts to follow. If there
|
||||
are no data parts to follow, this option shall return False (0).
|
||||
|
||||
Refer to linkzmq:zmq_send[3] and linkzmq:zmq_recv[3] for a detailed description
|
||||
Refer to xref:zmq_send.adoc[zmq_send] and xref:zmq_recv.adoc[zmq_recv] for a detailed description
|
||||
of multi-part messages.
|
||||
|
||||
[horizontal]
|
||||
@ -709,7 +705,7 @@ limit.
|
||||
If this limit has been reached the socket shall enter an exceptional state and
|
||||
depending on the socket type, 0MQ shall take appropriate action such as
|
||||
blocking or dropping sent messages. Refer to the individual socket descriptions
|
||||
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
|
||||
in xref:zmq_socket.adoc[zmq_socket] for details on the exact action taken for each socket
|
||||
type.
|
||||
|
||||
[horizontal]
|
||||
@ -814,7 +810,7 @@ Applicable socket types:: all, when using TCP transports.
|
||||
ZMQ_THREAD_SAFE: Retrieve socket thread safety
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_THREAD_SAFE' option shall retrieve a boolean value indicating whether
|
||||
or not the socket is threadsafe. See linkzmq:zmq_socket[3] for which sockets are
|
||||
or not the socket is threadsafe. See xref:zmq_socket.adoc[zmq_socket] for which sockets are
|
||||
thread-safe.
|
||||
|
||||
[horizontal]
|
||||
@ -1137,14 +1133,12 @@ Default value:: 0 (false)
|
||||
Applicable socket types:: All, when using NORM transport.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_getsockopt()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested option _option_name_ is unknown, or the requested _option_len_ or
|
||||
_option_value_ is invalid, or the size of the buffer pointed to by
|
||||
@ -1158,8 +1152,7 @@ The provided 'socket' was invalid.
|
||||
The operation was interrupted by delivery of a signal.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Retrieving the high water mark for outgoing messages
|
||||
----
|
||||
/* Retrieve high water mark into sndhwm */
|
||||
@ -1170,14 +1163,12 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,14 +1,11 @@
|
||||
zmq_gssapi(7)
|
||||
============
|
||||
= zmq_gssapi(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_gssapi - secure authentication and confidentiality
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
|
||||
The GSSAPI mechanism defines a mechanism for secure authentication and
|
||||
confidentiality for communications between a client and a server using the
|
||||
@ -18,8 +15,7 @@ defined in IETF RFC-2743: <http://tools.ietf.org/html/rfc2743>. The ZeroMQ
|
||||
GSSAPI mechanism is defined by this document: <http://rfc.zeromq.org/spec:38>.
|
||||
|
||||
|
||||
CLIENT AND SERVER ROLES
|
||||
-----------------------
|
||||
== CLIENT AND SERVER ROLES
|
||||
A socket using GSSAPI can be either client or server, but not both.
|
||||
|
||||
To become a GSSAPI server, the application sets the ZMQ_GSSAPI_SERVER
|
||||
@ -35,8 +31,7 @@ principal for whom GSSAPI credentials should be acquired. If this option
|
||||
is not set, default credentials are used.
|
||||
|
||||
|
||||
OPTIONAL ENCRYPTION
|
||||
-------------------
|
||||
== OPTIONAL ENCRYPTION
|
||||
By default, the GSSAPI mechanism will encrypt all communications between client
|
||||
and server. If encryption is not desired (e.g. on private networks), the
|
||||
client and server applications can disable it by setting the
|
||||
@ -44,8 +39,7 @@ ZMQ_GSSAPI_PLAINTEXT option. Both the client and server must set this option
|
||||
to the same value.
|
||||
|
||||
|
||||
PRINCIPAL NAMES
|
||||
---------------
|
||||
== PRINCIPAL NAMES
|
||||
Principal names specified with the ZMQ_GSSAPI_SERVICE_PRINCIPAL or
|
||||
ZMQ_GSSAPI_PRINCIPAL options are interpreted as "host based" name types
|
||||
by default. The ZMQ_GSSAPI_PRINCIPAL_NAMETYPE and
|
||||
@ -64,15 +58,13 @@ The name is a principal name string. This name type only works with
|
||||
the krb5 GSSAPI mechanism.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_null[7]
|
||||
linkzmq:zmq_curve[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_null.adoc[zmq_null]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_has(3)
|
||||
==========
|
||||
= zmq_has(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_has - check a ZMQ capability
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_has (const char *capability);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_has()_ function shall report whether a specified capability is
|
||||
available in the library. This allows bindings and applications to probe
|
||||
a library directly, for transport and security options.
|
||||
@ -32,13 +28,11 @@ defined:
|
||||
When this method is provided, the zmq.h header file will define
|
||||
ZMQ_HAS_CAPABILITIES.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_has()_ function shall return 1 if the specified capability is
|
||||
provided. Otherwise it shall return 0.
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,52 +0,0 @@
|
||||
zmq_init(3)
|
||||
===========
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
zmq_init - initialise 0MQ context
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
*void *zmq_init (int 'io_threads');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
The _zmq_init()_ function initialises a 0MQ 'context'.
|
||||
|
||||
The 'io_threads' argument specifies the size of the 0MQ thread pool to handle
|
||||
I/O operations. If your application is using only the 'inproc' transport for
|
||||
messaging you may set this to zero, otherwise set it to at least one.
|
||||
|
||||
.Thread safety
|
||||
A 0MQ 'context' is thread safe and may be shared among as many application
|
||||
threads as necessary, without any additional locking required on the part of
|
||||
the caller.
|
||||
|
||||
This function is deprecated by linkzmq:zmq_ctx_new[3].
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
The _zmq_init()_ function shall return an opaque handle to the initialised
|
||||
'context' if successful. Otherwise it shall return NULL and set 'errno' to one
|
||||
of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
*EINVAL*::
|
||||
An invalid number of 'io_threads' was requested.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
linkzmq:zmq_ctx_term[3]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
@ -1,25 +1,21 @@
|
||||
zmq_inproc(7)
|
||||
=============
|
||||
= zmq_inproc(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_inproc - 0MQ local in-process (inter-thread) communication transport
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
The in-process transport passes messages via memory directly between threads
|
||||
sharing a single 0MQ 'context'.
|
||||
|
||||
NOTE: No I/O threads are involved in passing messages using the 'inproc'
|
||||
transport. Therefore, if you are using a 0MQ 'context' for in-process messaging
|
||||
only you can initialise the 'context' with zero I/O threads. See
|
||||
linkzmq:zmq_init[3] for details.
|
||||
xref:zmq_init.adoc[zmq_init] for details.
|
||||
|
||||
|
||||
ADDRESSING
|
||||
----------
|
||||
== ADDRESSING
|
||||
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
||||
'address'. The 'transport' specifies the underlying protocol to use. The
|
||||
'address' specifies the transport-specific address to connect to.
|
||||
@ -48,8 +44,7 @@ order of _zmq_bind()_ and _zmq_connect()_ does not matter just like for the tcp
|
||||
transport type.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
== EXAMPLES
|
||||
.Assigning a local address to a socket
|
||||
----
|
||||
// Assign the in-process name "#1"
|
||||
@ -71,18 +66,16 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_ipc[7]
|
||||
linkzmq:zmq_tcp[7]
|
||||
linkzmq:zmq_pgm[7]
|
||||
linkzmq:zmq_vmci[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_ipc.adoc[zmq_ipc]
|
||||
* xref:zmq_tcp.adoc[zmq_tcp]
|
||||
* xref:zmq_pgm.adoc[zmq_pgm]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,14 +1,11 @@
|
||||
zmq_ipc(7)
|
||||
==========
|
||||
= zmq_ipc(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_ipc - 0MQ local inter-process communication transport
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
The inter-process transport passes messages between local processes using a
|
||||
system-dependent IPC mechanism.
|
||||
|
||||
@ -16,8 +13,7 @@ NOTE: The inter-process transport is currently only implemented on operating
|
||||
systems that provide UNIX domain sockets.
|
||||
|
||||
|
||||
ADDRESSING
|
||||
----------
|
||||
== ADDRESSING
|
||||
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
||||
'address'. The 'transport' specifies the underlying protocol to use. The
|
||||
'address' specifies the transport-specific address to connect to.
|
||||
@ -37,7 +33,7 @@ any restrictions placed by the operating system on the format and length of a
|
||||
|
||||
When the address is wild-card `*`, _zmq_bind()_ shall generate a unique temporary
|
||||
pathname. The caller should retrieve this pathname using the ZMQ_LAST_ENDPOINT
|
||||
socket option. See linkzmq:zmq_getsockopt[3] for details.
|
||||
socket option. See xref:zmq_getsockopt.adoc[zmq_getsockopt] for details.
|
||||
|
||||
NOTE: any existing binding to the same endpoint shall be overridden. That is,
|
||||
if a second process binds to an endpoint already bound by a process, this
|
||||
@ -72,8 +68,7 @@ previously created within the operating system namespace by assigning it to a
|
||||
'socket' with _zmq_bind()_.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
== EXAMPLES
|
||||
.Assigning a local address to a socket
|
||||
----
|
||||
// Assign the pathname "/tmp/feeds/0"
|
||||
@ -88,19 +83,17 @@ rc = zmq_connect(socket, "ipc:///tmp/feeds/0");
|
||||
assert (rc == 0);
|
||||
----
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_inproc[7]
|
||||
linkzmq:zmq_tcp[7]
|
||||
linkzmq:zmq_pgm[7]
|
||||
linkzmq:zmq_vmci[7]
|
||||
linkzmq:zmq_getsockopt[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
* xref:zmq_tcp.adoc[zmq_tcp]
|
||||
* xref:zmq_pgm.adoc[zmq_pgm]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
* xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_close(3)
|
||||
================
|
||||
= zmq_msg_close(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_close - release 0MQ message
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_close (zmq_msg_t '*msg');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_close()_ function shall inform the 0MQ infrastructure that any
|
||||
resources associated with the message object referenced by 'msg' are no longer
|
||||
required and may be released. Actual release of resources associated with the
|
||||
@ -28,30 +24,26 @@ CAUTION: Never access 'zmq_msg_t' members directly, instead always use the
|
||||
_zmq_msg_ family of functions.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_close()_ function shall return zero if successful. Otherwise
|
||||
it shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EFAULT*::
|
||||
Invalid message.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_data[3]
|
||||
linkzmq:zmq_msg_size[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
||||
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_copy(3)
|
||||
===============
|
||||
= zmq_msg_copy(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_copy - copy content of a message to another message
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_copy (zmq_msg_t '*dest', zmq_msg_t '*src');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_copy()_ function shall copy the message object referenced by 'src'
|
||||
to the message object referenced by 'dest'. The original content of 'dest', if
|
||||
any, shall be released. You must initialise 'dest' before copying to it.
|
||||
@ -29,20 +25,17 @@ CAUTION: Never access 'zmq_msg_t' members directly, instead always use the
|
||||
_zmq_msg_ family of functions.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_copy()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EFAULT*::
|
||||
Invalid message.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Copying a message
|
||||
----
|
||||
zmq_msg_t msg;
|
||||
@ -55,18 +48,16 @@ zmq_msg_close (©);
|
||||
zmq_msg_close (&msg);
|
||||
----
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_move[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_move.adoc[zmq_msg_move]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_data(3)
|
||||
===============
|
||||
= zmq_msg_data(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_data - retrieve pointer to message content
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*void *zmq_msg_data (zmq_msg_t '*msg');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_data()_ function shall return a pointer to the message content of
|
||||
the message object referenced by 'msg'.
|
||||
|
||||
@ -21,29 +17,25 @@ CAUTION: Never access 'zmq_msg_t' members directly, instead always use the
|
||||
_zmq_msg_ family of functions.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
Upon successful completion, _zmq_msg_data()_ shall return a pointer to the
|
||||
message content.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
No errors are defined.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_size[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_get(3)
|
||||
==============
|
||||
= zmq_msg_get(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_get - get message property
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_get (zmq_msg_t '*message', int 'property');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_get()_ function shall return the value for the property
|
||||
specified by the 'property' argument for the message pointed to by the
|
||||
'message' argument.
|
||||
@ -33,21 +29,18 @@ Currently only implemented for TCP sockets.
|
||||
Indicates that a message MAY share underlying storage with another copy of
|
||||
this message.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_get()_ function shall return the value for the property if
|
||||
successful. Otherwise it shall return `-1` and set 'errno' to one of the
|
||||
values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested _property_ is unknown.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Receiving a multi-frame message
|
||||
----
|
||||
zmq_msg_t frame;
|
||||
@ -69,15 +62,13 @@ while (true) {
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_set[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_set.adoc[zmq_msg_set]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_gets(3)
|
||||
===============
|
||||
= zmq_msg_gets(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_gets - get message metadata property
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*const char *zmq_msg_gets (zmq_msg_t '*message', const char *'property');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_gets()_ function shall return the string value for the metadata
|
||||
property specified by the 'property' argument for the message pointed to by
|
||||
the 'message' argument. Both the 'property' argument and the 'value'
|
||||
@ -21,7 +17,7 @@ shall be NULL-terminated UTF8-encoded strings.
|
||||
|
||||
Metadata is defined on a per-connection basis during the ZeroMQ connection
|
||||
handshake as specified in <rfc.zeromq.org/spec:37>. Applications can set
|
||||
metadata properties using linkzmq:zmq_setsockopt[3] option ZMQ_METADATA.
|
||||
metadata properties using xref:zmq_setsockopt.adoc[zmq_setsockopt] option ZMQ_METADATA.
|
||||
Application metadata properties must be prefixed with 'X-'.
|
||||
|
||||
In addition to application metadata, the following ZMTP properties can be
|
||||
@ -44,8 +40,7 @@ Currently, these definitions are only available as a DRAFT API.
|
||||
Other properties may be defined based on the underlying security mechanism,
|
||||
see ZAP authenticated connection sample below.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_gets()_ function shall return the string value for the property
|
||||
if successful. Otherwise it shall return NULL and set 'errno' to one of the
|
||||
values defined below. The caller shall not modify or free the returned value,
|
||||
@ -53,14 +48,12 @@ which shall be owned by the message. The encoding of the property and value
|
||||
shall be UTF8.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested _property_ is unknown.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Getting the ZAP authenticated user id for a message:
|
||||
----
|
||||
zmq_msg_t msg;
|
||||
@ -72,12 +65,10 @@ zmq_msg_close (&msg);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_init(3)
|
||||
===============
|
||||
= zmq_msg_init(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_init - initialise empty 0MQ message
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_init (zmq_msg_t '*msg');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_init()_ function shall initialise the message object referenced by
|
||||
'msg' to represent an empty message. This function is most useful when called
|
||||
before receiving a message with _zmq_msg_recv()_.
|
||||
@ -26,18 +22,15 @@ _zmq_msg_init_size()_ and _zmq_msg_init_buffer()_ are mutually exclusive.
|
||||
Never initialise the same 'zmq_msg_t' twice.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_init()_ function always returns zero.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
No errors are defined.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Receiving a message from a socket
|
||||
----
|
||||
zmq_msg_t msg;
|
||||
@ -48,18 +41,16 @@ assert (nbytes != -1);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq_msg_data[3]
|
||||
linkzmq:zmq_msg_size[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
||||
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_init_buffer(3)
|
||||
======================
|
||||
= zmq_msg_init_buffer(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_init_buffer - initialise 0MQ message with buffer copy
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_init_buffer (zmq_msg_t '*msg', const void '*buf', size_t 'size');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_init_buffer()_ function shall allocate any resources required to
|
||||
store a message 'size' bytes long and initialise the message object referenced
|
||||
by 'msg' to represent a copy of the buffer referenced by the 'buf' and
|
||||
@ -30,30 +26,26 @@ _zmq_msg_init_buffer()_ and _zmq_msg_init_buffer()_ are mutually exclusive.
|
||||
Never initialise the same 'zmq_msg_t' twice.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_init_buffer()_ function shall return zero if successful. Otherwise
|
||||
it shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ENOMEM*::
|
||||
Insufficient storage space is available.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq_msg_data[3]
|
||||
linkzmq:zmq_msg_size[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
||||
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,21 +1,17 @@
|
||||
zmq_msg_init_data(3)
|
||||
====================
|
||||
= zmq_msg_init_data(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_init_data - initialise 0MQ message from a supplied buffer
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*typedef void (zmq_free_fn) (void '*data', void '*hint');*
|
||||
|
||||
*int zmq_msg_init_data (zmq_msg_t '*msg', void '*data', size_t 'size', zmq_free_fn '*ffn', void '*hint');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_init_data()_ function shall initialise the message object
|
||||
referenced by 'msg' to represent the content referenced by the buffer located
|
||||
at address 'data', 'size' bytes long. No copy of 'data' shall be performed and
|
||||
@ -40,21 +36,18 @@ _zmq_msg_init_size()_ and _zmq_msg_init_buffer()_ are mutually exclusive.
|
||||
Never initialise the same 'zmq_msg_t' twice.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_init_data()_ function shall return zero if successful. Otherwise
|
||||
it shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ENOMEM*::
|
||||
Insufficient storage space is available.
|
||||
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Initialising a message from a supplied buffer
|
||||
----
|
||||
void my_free (void *data, void *hint)
|
||||
@ -73,18 +66,16 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq_msg_data[3]
|
||||
linkzmq:zmq_msg_size[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
||||
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_init_size(3)
|
||||
====================
|
||||
= zmq_msg_init_size(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_init_size - initialise 0MQ message of a specified size
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_init_size (zmq_msg_t '*msg', size_t 'size');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_init_size()_ function shall allocate any resources required to
|
||||
store a message 'size' bytes long and initialise the message object referenced
|
||||
by 'msg' to represent the newly allocated message.
|
||||
@ -30,30 +26,26 @@ _zmq_msg_init_size()_ and _zmq_msg_init_buffer()_ are mutually exclusive.
|
||||
Never initialise the same 'zmq_msg_t' twice.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_init_size()_ function shall return zero if successful. Otherwise
|
||||
it shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ENOMEM*::
|
||||
Insufficient storage space is available.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq_msg_data[3]
|
||||
linkzmq:zmq_msg_size[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
||||
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,34 +1,28 @@
|
||||
zmq_msg_more(3)
|
||||
===============
|
||||
= zmq_msg_more(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_more - indicate if there are more message parts to receive
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_more (zmq_msg_t '*message');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_more()_ function indicates whether this is part of a multi-part
|
||||
message, and there are further parts to receive. This method can safely be
|
||||
called after _zmq_msg_close()_. This method is identical to _zmq_msg_get()_
|
||||
with an argument of ZMQ_MORE.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_more()_ function shall return zero if this is the final part of
|
||||
a multi-part message, or the only part of a single-part message. It shall
|
||||
return 1 if there are further parts to receive.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Receiving a multi-part message
|
||||
----
|
||||
zmq_msg_t part;
|
||||
@ -50,16 +44,14 @@ while (true) {
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_get[3]
|
||||
linkzmq:zmq_msg_set[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_get.adoc[zmq_msg_get]
|
||||
* xref:zmq_msg_set.adoc[zmq_msg_set]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_move(3)
|
||||
===============
|
||||
= zmq_msg_move(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_move - move content of a message to another message
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_move (zmq_msg_t '*dest', zmq_msg_t '*src');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_move()_ function shall move the content of the message object
|
||||
referenced by 'src' to the message object referenced by 'dest'. No actual
|
||||
copying of message content is performed, 'dest' is simply updated to reference
|
||||
@ -24,30 +20,26 @@ CAUTION: Never access 'zmq_msg_t' members directly, instead always use the
|
||||
_zmq_msg_ family of functions.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_move()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EFAULT*::
|
||||
Invalid message.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_copy[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_copy.adoc[zmq_msg_copy]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_msg_recv(3)
|
||||
===============
|
||||
= zmq_msg_recv(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_recv - receive a message part from a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_recv (zmq_msg_t '*msg', void '*socket', int 'flags');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
The _zmq_msg_recv()_ function is identical to linkzmq:zmq_recvmsg[3], which
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_recv()_ function is identical to xref:zmq_recvmsg.adoc[zmq_recvmsg], which
|
||||
shall be deprecated in future versions. _zmq_msg_recv()_ is more consistent
|
||||
with other message manipulation functions.
|
||||
|
||||
@ -40,21 +36,19 @@ message or none at all. The total number of message parts is unlimited except
|
||||
by available memory.
|
||||
|
||||
An application that processes multi-part messages must use the _ZMQ_RCVMORE_
|
||||
linkzmq:zmq_getsockopt[3] option after calling _zmq_msg_recv()_ to determine if
|
||||
xref:zmq_getsockopt.adoc[zmq_getsockopt] option after calling _zmq_msg_recv()_ to determine if
|
||||
there are further parts to receive.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_recv()_ function shall return number of bytes in the message
|
||||
if successful. Otherwise it shall return `-1` and set 'errno' to one of the
|
||||
values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EAGAIN*::
|
||||
Either the timeout set via the socket-option ZMQ_RCVTIMEO (see linkzmq:zmq_setsockopt[3])
|
||||
Either the timeout set via the socket-option ZMQ_RCVTIMEO (see xref:zmq_setsockopt.adoc[zmq_setsockopt])
|
||||
has been reached (flag ZMQ_DONTWAIT not set) without being able to read a message
|
||||
from the socket or there are no messages available at the moment (flag ZMQ_DONTWAIT set)
|
||||
and the operation would block.
|
||||
@ -64,7 +58,7 @@ The _zmq_msg_recv()_ operation is not supported by this socket type.
|
||||
The _zmq_msg_recv()_ operation cannot be performed on this socket at the moment
|
||||
due to the socket not being in the appropriate state. This error may occur with
|
||||
socket types that switch between several states, such as ZMQ_REP. See the
|
||||
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
|
||||
_messaging patterns_ section of xref:zmq_socket.adoc[zmq_socket] for more information.
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
*ENOTSOCK*::
|
||||
@ -76,8 +70,7 @@ available.
|
||||
The message passed to the function was invalid.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Receiving a message from a socket
|
||||
----
|
||||
/* Create an empty 0MQ message */
|
||||
@ -111,18 +104,16 @@ do {
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_msg_send[3]
|
||||
linkzmq:zmq_getsockopt[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_socket[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_msg_send.adoc[zmq_msg_send]
|
||||
* xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,33 +1,27 @@
|
||||
zmq_msg_routing_id(3)
|
||||
=====================
|
||||
= zmq_msg_routing_id(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_routing_id - return routing ID for message, if any
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*uint32_t zmq_msg_routing_id (zmq_msg_t '*message');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_routing_id()_ function returns the routing ID for the message,
|
||||
if any. The routing ID is set on all messages received from a 'ZMQ_SERVER'
|
||||
socket. To send a message to a 'ZMQ_SERVER' socket you must set the routing
|
||||
ID of a connected 'ZMQ_CLIENT' peer. Routing IDs are transient.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_routing_id()_ function shall return zero if there is no routing
|
||||
ID, otherwise it shall return an unsigned 32-bit integer greater than zero.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Receiving a client message and routing ID
|
||||
----
|
||||
void *ctx = zmq_ctx_new ();
|
||||
@ -50,12 +44,10 @@ assert (routing_id);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_set_routing_id[3]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_set_routing_id.adoc[zmq_msg_set_routing_id]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_msg_send(3)
|
||||
===============
|
||||
= zmq_msg_send(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_send - send a message part on a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_send (zmq_msg_t '*msg', void '*socket', int 'flags');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
The _zmq_msg_send()_ function is identical to linkzmq:zmq_sendmsg[3], which
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_send()_ function is identical to xref:zmq_sendmsg.adoc[zmq_sendmsg], which
|
||||
shall be deprecated in future versions. _zmq_msg_send()_ is more consistent
|
||||
with other message manipulation functions.
|
||||
|
||||
@ -58,16 +54,14 @@ by available memory.
|
||||
An application that sends multi-part messages must use the _ZMQ_SNDMORE_ flag
|
||||
when sending each message part except the final one.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_send()_ function shall return number of bytes in the message
|
||||
if successful (if number of bytes is higher than 'MAX_INT', the function will
|
||||
return 'MAX_INT'). Otherwise it shall return `-1` and set 'errno' to one of the
|
||||
values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EAGAIN*::
|
||||
Non-blocking mode was requested and the message cannot be sent at the moment.
|
||||
*ENOTSUP*::
|
||||
@ -78,7 +72,7 @@ The sender tried to send multipart data, which the socket type does not allow.
|
||||
The _zmq_msg_send()_ operation cannot be performed on this socket at the moment
|
||||
due to the socket not being in the appropriate state. This error may occur with
|
||||
socket types that switch between several states, such as ZMQ_REP. See the
|
||||
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
|
||||
_messaging patterns_ section of xref:zmq_socket.adoc[zmq_socket] for more information.
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
*ENOTSOCK*::
|
||||
@ -92,8 +86,7 @@ Invalid message.
|
||||
The message cannot be routed.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Filling in a message and sending it to a socket
|
||||
----
|
||||
/* Create a new message, allocating 6 bytes for message content */
|
||||
@ -117,16 +110,14 @@ rc = zmq_msg_send (&part3, socket, 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_msg_recv[3]
|
||||
linkzmq:zmq_socket[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_msg_recv.adoc[zmq_msg_recv]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_msg_set(3)
|
||||
==============
|
||||
= zmq_msg_set(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_msg_set - set message property
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_set (zmq_msg_t '*message', int 'property', int 'value');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_set()_ function shall set the property specified by the
|
||||
'property' argument to the value of the 'value' argument for the 0MQ
|
||||
message fragment pointed to by the 'message' argument.
|
||||
@ -22,25 +18,21 @@ message fragment pointed to by the 'message' argument.
|
||||
Currently the _zmq_msg_set()_ function does not support any property names.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_set()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested property _property_ is unknown.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_get[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_get.adoc[zmq_msg_get]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_msg_set_routing_id(3)
|
||||
=========================
|
||||
= zmq_msg_set_routing_id(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_msg_set_routing_id - set routing ID property on message
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_msg_set_routing_id (zmq_msg_t '*message', uint32_t 'routing_id');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_set_routing_id()_ function sets the 'routing_id' specified, on the
|
||||
the message pointed to by the 'message' argument. The 'routing_id' must be
|
||||
greater than zero. To get a valid routing ID, you must receive a message
|
||||
@ -22,25 +18,21 @@ from a 'ZMQ_SERVER' socket, and use the libzmq:zmq_msg_routing_id method.
|
||||
Routing IDs are transient.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_msg_set_routing_id()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The provided 'routing_id' is zero.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_routing_id[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_routing_id.adoc[zmq_msg_routing_id]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_msg_size(3)
|
||||
===============
|
||||
= zmq_msg_size(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_msg_size - retrieve message content size in bytes
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*size_t zmq_msg_size (zmq_msg_t '*msg');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_msg_size()_ function shall return the size in bytes of the content of
|
||||
the message object referenced by 'msg'.
|
||||
|
||||
@ -21,29 +17,25 @@ CAUTION: Never access 'zmq_msg_t' members directly, instead always use the
|
||||
_zmq_msg_ family of functions.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
Upon successful completion, _zmq_msg_size()_ shall return the size of the
|
||||
message content in bytes.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
No errors are defined.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_msg_data[3]
|
||||
linkzmq:zmq_msg_init[3]
|
||||
linkzmq:zmq_msg_init_size[3]
|
||||
linkzmq:zmq_msg_init_buffer[3]
|
||||
linkzmq:zmq_msg_init_data[3]
|
||||
linkzmq:zmq_msg_close[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
||||
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
||||
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
||||
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
||||
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
|
||||
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,27 +1,22 @@
|
||||
zmq_null(7)
|
||||
===========
|
||||
= zmq_null(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_null - no security or confidentiality
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
The NULL mechanism is defined by the ZMTP 3.0 specification:
|
||||
<http://rfc.zeromq.org/spec:23>. This is the default security mechanism
|
||||
for ZeroMQ sockets.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_plain[7]
|
||||
linkzmq:zmq_curve[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_plain.adoc[zmq_plain]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_pgm(7)
|
||||
==========
|
||||
= zmq_pgm(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_pgm - 0MQ reliable multicast transport using PGM
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
PGM (Pragmatic General Multicast) is a protocol for reliable multicast
|
||||
transport of data over IP networks.
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
0MQ implements two variants of PGM, the standard protocol where PGM datagrams
|
||||
are layered directly on top of IP datagrams as defined by RFC 3208 (the 'pgm'
|
||||
transport) and "Encapsulated PGM" or EPGM where PGM datagrams are encapsulated
|
||||
@ -25,7 +21,7 @@ The 'pgm' and 'epgm' transports can only be used with the 'ZMQ_PUB' and
|
||||
|
||||
Further, PGM sockets are rate limited by default. For details, refer to the
|
||||
'ZMQ_RATE', and 'ZMQ_RECOVERY_IVL' options documented in
|
||||
linkzmq:zmq_setsockopt[3].
|
||||
xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
|
||||
CAUTION: The 'pgm' transport implementation requires access to raw IP sockets.
|
||||
Additional privileges may be required on some operating systems for this
|
||||
@ -34,8 +30,7 @@ implementations are encouraged to use the 'epgm' transport instead which does
|
||||
not require any special privileges.
|
||||
|
||||
|
||||
ADDRESSING
|
||||
----------
|
||||
== ADDRESSING
|
||||
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
||||
'address'. The 'transport' specifies the underlying protocol to use. The
|
||||
'address' specifies the transport-specific address to connect to.
|
||||
@ -67,13 +62,12 @@ A 'multicast address' is specified by an IPv4 multicast address in its numeric
|
||||
representation.
|
||||
|
||||
|
||||
WIRE FORMAT
|
||||
-----------
|
||||
== WIRE FORMAT
|
||||
Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream
|
||||
of data where 0MQ messages are not necessarily aligned with PGM datagram
|
||||
boundaries and a single 0MQ message may span several PGM datagrams. This stream
|
||||
of data consists of 0MQ messages encapsulated in 'frames' as described in
|
||||
linkzmq:zmq_tcp[7].
|
||||
xref:zmq_tcp.adoc[zmq_tcp]
|
||||
|
||||
|
||||
PGM datagram payload
|
||||
@ -130,12 +124,11 @@ Third datagram payload
|
||||
....
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
== CONFIGURATION
|
||||
|
||||
The PGM is protocol is capable of multicasting data at high rates (500Mbps+)
|
||||
with large messages (1MB+), however it requires setting the relevant ZMQ socket
|
||||
options that are documented in linkzmq:zmq_setsockopt[3]:
|
||||
options that are documented in xref:zmq_setsockopt.adoc[zmq_setsockopt]:
|
||||
|
||||
* The 'ZMQ_RATE' should be set sufficiently high, e.g. 1Gbps
|
||||
* The 'ZMQ_RCVBUF' should be increased on the subscriber, e.g. 4MB
|
||||
@ -154,8 +147,7 @@ sudo sysctl -w net.core.wmem_default=4194304
|
||||
....
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Connecting a socket
|
||||
----
|
||||
// Connecting to the multicast address 239.192.1.1, port 5555,
|
||||
@ -171,18 +163,16 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_tcp[7]
|
||||
linkzmq:zmq_ipc[7]
|
||||
linkzmq:zmq_inproc[7]
|
||||
linkzmq:zmq_vmci[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_tcp.adoc[zmq_tcp]
|
||||
* xref:zmq_ipc.adoc[zmq_ipc]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,14 +1,11 @@
|
||||
zmq_plain(7)
|
||||
============
|
||||
= zmq_plain(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_plain - clear-text authentication
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
The PLAIN mechanism defines a simple username/password mechanism that
|
||||
lets a server authenticate a client. PLAIN makes no attempt at security
|
||||
or confidentiality. It is intended for use on internal networks where
|
||||
@ -16,22 +13,19 @@ security requirements are low. The PLAIN mechanism is defined by this
|
||||
document: <http://rfc.zeromq.org/spec:24>.
|
||||
|
||||
|
||||
USAGE
|
||||
-----
|
||||
== USAGE
|
||||
To use PLAIN, the server shall set the ZMQ_PLAIN_SERVER option, and the
|
||||
client shall set the ZMQ_PLAIN_USERNAME and ZMQ_PLAIN_PASSWORD socket
|
||||
options. Which peer binds, and which connects, is not relevant.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_null[7]
|
||||
linkzmq:zmq_curve[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_null.adoc[zmq_null]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,20 +1,16 @@
|
||||
zmq_poll(3)
|
||||
===========
|
||||
= zmq_poll(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_poll - input/output multiplexing
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
|
||||
*int zmq_poll (zmq_pollitem_t '*items', int 'nitems', long 'timeout');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_poll()_ function provides a mechanism for applications to multiplex
|
||||
input/output events in a level-triggered fashion over a set of sockets. Each
|
||||
member of the array pointed to by the 'items' argument is a *zmq_pollitem_t*
|
||||
@ -80,8 +76,7 @@ NOTE: The _zmq_poll()_ function may be implemented or emulated using operating
|
||||
system interfaces other than _poll()_, and as such may be subject to the limits
|
||||
of those interfaces in ways not defined in this documentation.
|
||||
|
||||
THREAD SAFETY
|
||||
-------------
|
||||
== THREAD SAFETY
|
||||
The *zmq_pollitem_t* array must only be used by the thread which
|
||||
will/is calling _zmq_poll_.
|
||||
|
||||
@ -90,16 +85,14 @@ different thread, the socket itself needs to be thread-safe (Server, Client, ...
|
||||
Otherwise, behaviour is undefined.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
Upon successful completion, the _zmq_poll()_ function shall return the number
|
||||
of *zmq_pollitem_t* structures with events signaled in 'revents' or `0` if no
|
||||
events have been signaled. Upon failure, _zmq_poll()_ shall return `-1` and set
|
||||
'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ETERM*::
|
||||
At least one of the members of the 'items' array refers to a 'socket' whose
|
||||
associated 0MQ 'context' was terminated.
|
||||
@ -110,8 +103,7 @@ The operation was interrupted by delivery of a signal before any events were
|
||||
available.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Polling indefinitely for input events on both a 0MQ socket and a standard socket.
|
||||
----
|
||||
zmq_pollitem_t items [2];
|
||||
@ -129,17 +121,15 @@ assert (rc >= 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
Your operating system documentation for the _poll()_ system call.
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,14 +1,11 @@
|
||||
zmq_poller(3)
|
||||
===========
|
||||
= zmq_poller(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_poller - input/output multiplexing
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
|
||||
*void *zmq_poller_new (void);*
|
||||
|
||||
@ -39,8 +36,7 @@ SYNOPSIS
|
||||
|
||||
*int zmq_poller_fd (void '*poller', zmq_fd_t '*fd');*
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_poller_*_ functions provide a mechanism for applications to multiplex
|
||||
input/output events in a level-triggered fashion over a set of sockets.
|
||||
|
||||
@ -153,8 +149,7 @@ at least one thread-safe socket is currently registered.
|
||||
Note that closing a socket that is registered in a poller leads to undefined
|
||||
behavior. The socket must be unregistered first.
|
||||
|
||||
EVENT TYPES
|
||||
-----------
|
||||
== EVENT TYPES
|
||||
|
||||
The 'events' parameter of _zmq_poller_add_ and _zmq_poller_modify_, and the
|
||||
'events' member of the zmq_poller_event_t structure are bit masks constructed
|
||||
@ -194,8 +189,7 @@ NOTE: The _zmq_poller_*_ functions may be implemented or emulated using operatin
|
||||
system interfaces other than _poll()_, and as such may be subject to the limits
|
||||
of those interfaces in ways not defined in this documentation.
|
||||
|
||||
THREAD SAFETY
|
||||
-------------
|
||||
== THREAD SAFETY
|
||||
Like most other 0MQ objects, a poller is not thread-safe. All operations must
|
||||
be called from the same thread. Otherwise, behaviour is undefined.
|
||||
|
||||
@ -203,8 +197,7 @@ In addition to that, if you want to add a socket to multiple existing poller
|
||||
instances, the socket itself needs to be thread-safe (Server, Client, ...).
|
||||
Otherwise, behaviour is undefined.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
_zmq_poller_new_ returns a valid pointer to a poller, or NULL in case of a failure.
|
||||
|
||||
All functions that return an int, return -1 in case of a failure. In that case,
|
||||
@ -215,8 +208,7 @@ the events array. It never returns 0.
|
||||
|
||||
All other functions return 0 in case of a successful execution.
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
On _zmq_poller_new_:
|
||||
|
||||
*ENOMEM*::
|
||||
@ -293,8 +285,7 @@ The poller has no associated file descriptor.
|
||||
*EFAULT*::
|
||||
The provided 'poller' did not point to a valid poller.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Polling indefinitely for input events on both a 0MQ socket and a standard socket.
|
||||
----
|
||||
void *poller = zmq_poller_new ();
|
||||
@ -320,15 +311,13 @@ zmq_poller_destroy (&poller);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,27 +1,23 @@
|
||||
zmq_poll(3)
|
||||
===========
|
||||
= zmq_poll(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_ppoll - input/output multiplexing with signal mask
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
|
||||
*int zmq_ppoll (zmq_pollitem_t '*items', int 'nitems', long 'timeout', const sigset_t '*sigmask');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The relationship between _zmq_poll()_ and _zmq_ppoll()_ is analogous to the
|
||||
relationship between poll(2) and ppoll(2) and between select(2) and
|
||||
pselect(2): _zmq_ppoll()_ allows an application to safely wait until either a
|
||||
file descriptor becomes ready or until a signal is caught.
|
||||
|
||||
When using _zmq_ppoll()_ with 'sigmask' set to NULL, its behavior is identical
|
||||
to that of _zmq_poll()_. See linkzmq:zmq_poll[3] for more on this.
|
||||
to that of _zmq_poll()_. See xref:zmq_poll.adoc[zmq_poll] for more on this.
|
||||
|
||||
To make full use of _zmq_ppoll()_, a non-NULL pointer to a signal mask must be
|
||||
constructed and passed to 'sigmask'. See sigprocmask(2) for more details. When
|
||||
@ -49,8 +45,7 @@ supported in Windows builds. It is still callable, but its 'sigmask' has void
|
||||
pointer type (because 'sigset_t' is also not available on Windows) and
|
||||
_zmq_ppoll()_ will return with an error (see error section below).
|
||||
|
||||
THREAD SAFETY
|
||||
-------------
|
||||
== THREAD SAFETY
|
||||
The *zmq_pollitem_t* array must only be used by the thread which
|
||||
will/is calling _zmq_ppoll_.
|
||||
|
||||
@ -59,16 +54,14 @@ different thread, the socket itself needs to be thead-safe (Server, Client, ...)
|
||||
Otherwise, behaviour is undefined.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
Upon successful completion, the _zmq_ppoll()_ function shall return the number
|
||||
of *zmq_pollitem_t* structures with events signaled in 'revents' or `0` if no
|
||||
events have been signaled. Upon failure, _zmq_ppoll()_ shall return `-1` and set
|
||||
'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ETERM*::
|
||||
At least one of the members of the 'items' array refers to a 'socket' whose
|
||||
associated 0MQ 'context' was terminated.
|
||||
@ -84,10 +77,9 @@ available.
|
||||
_zmq_ppoll()_ was not activated in this build.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Polling indefinitely for input events on both a 0MQ socket and a standard socket.
|
||||
See the _example section_ of linkzmq:zmq_poll[3]. One only needs to replace
|
||||
See the _example section_ of xref:zmq_poll.adoc[zmq_poll] One only needs to replace
|
||||
the _zmq_poll_ call with _zmq_ppoll_ and add a _NULL_ argument for the 'sigmask'
|
||||
parameter.
|
||||
|
||||
@ -123,18 +115,16 @@ if (rc < 0 && errno == EINTR && sigterm_received) {
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_poll[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_poll.adoc[zmq_poll]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
Your operating system documentation for the _poll()_ system call.
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,18 +1,14 @@
|
||||
zmq_proxy(3)
|
||||
============
|
||||
= zmq_proxy(3)
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_proxy - start built-in 0MQ proxy
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_proxy (void '*frontend', void '*backend', void '*capture');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_proxy()_ function starts the built-in 0MQ proxy in the current
|
||||
application thread.
|
||||
|
||||
@ -31,10 +27,9 @@ If the capture socket is not NULL, the proxy shall send all messages, received
|
||||
on both frontend and backend, to the capture socket. The capture socket should
|
||||
be a 'ZMQ_PUB', 'ZMQ_DEALER', 'ZMQ_PUSH', or 'ZMQ_PAIR' socket.
|
||||
|
||||
Refer to linkzmq:zmq_socket[3] for a description of the available socket types.
|
||||
Refer to xref:zmq_socket.adoc[zmq_socket] for a description of the available socket types.
|
||||
|
||||
EXAMPLE USAGE
|
||||
-------------
|
||||
== EXAMPLE USAGE
|
||||
|
||||
Shared Queue
|
||||
~~~~~~~~~~~~
|
||||
@ -61,15 +56,13 @@ When the frontend is a ZMQ_PULL socket, and the backend is a ZMQ_PUSH socket,
|
||||
the proxy shall collect tasks from a set of clients and forwards these to a set
|
||||
of workers using the pipeline pattern.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_proxy()_ function always returns `-1` and 'errno' set to *ETERM* or
|
||||
*EINTR* (the 0MQ 'context' associated with either of the specified sockets was
|
||||
terminated) or *EFAULT* (the provided 'frontend' or 'backend' was invalid).
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Creating a shared queue proxy
|
||||
----
|
||||
// Create frontend and backend sockets
|
||||
@ -85,15 +78,13 @@ zmq_proxy (frontend, backend, NULL);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,39 +1,35 @@
|
||||
zmq_proxy_steerable(3)
|
||||
======================
|
||||
= zmq_proxy_steerable(3)
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_proxy_steerable - built-in 0MQ proxy with control flow
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_proxy_steerable (const void '*frontend', const void '*backend',
|
||||
const void '*capture', const void '*control');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
|
||||
The _zmq_proxy_steerable()_ function is a variant of the _zmq_proxy()_ function.
|
||||
It accepts a fourth _control_ socket. When the _control_ socket is _NULL_ the
|
||||
two functions operate identically.
|
||||
|
||||
When a _control_ socket of type _REP_ is provided to the proxy function the
|
||||
When a _control_ socket of type _REP_ or _PAIR_ is provided to the proxy function the
|
||||
application may send commands to the proxy. The following commands are
|
||||
supported.
|
||||
|
||||
_PAUSE_::
|
||||
The proxy will cease transferring messages between its endpoints.
|
||||
The proxy will cease transferring messages between its endpoints. _REP_ control socket will reply with an empty message. No response otherwise.
|
||||
|
||||
_RESUME_::
|
||||
The proxy will resume transferring messages between its endpoints.
|
||||
The proxy will resume transferring messages between its endpoints. _REP_ control socket will reply with an empty message. No response otherwise.
|
||||
|
||||
_TERMINATE_::
|
||||
The proxy function will exit with a return value of 0.
|
||||
The proxy function will exit with a return value of 0. _REP_ control socket will reply with an empty message. No response otherwise.
|
||||
|
||||
_STATISTICS_::
|
||||
The proxy behavior will remain unchanged and reply with a set of simple summary values of the messages that have been sent through the proxy as described next.
|
||||
The proxy state will remain unchanged and reply with a set of simple summary values of the messages that have been sent through the proxy as described next. Control socket must support sending.
|
||||
|
||||
There are eight statistics values, each of size _uint64_t_ in the multi-part
|
||||
message reply to the _STATISTICS_ command. These are:
|
||||
@ -54,17 +50,17 @@ message reply to the _STATISTICS_ command. These are:
|
||||
|
||||
- number of bytes sent by the backend socket
|
||||
|
||||
Message totals count each part in a multipart message individually.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
|
||||
== RETURN VALUE
|
||||
The _zmq_proxy_steerable()_ function returns 0 if TERMINATE is received on its
|
||||
control socket. Otherwise, it returns -1 and errno set to ETERM or EINTR (the
|
||||
0MQ context associated with either of the specified sockets was terminated) or
|
||||
EFAULT (the provided frontend or backend was invalid).
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Create a function to run the proxy
|
||||
----
|
||||
// Create the frontend and backend sockets to be proxied
|
||||
@ -112,16 +108,14 @@ zmq_close(control);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_proxy[3]
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_proxy.adoc[zmq_proxy]
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_recv(3)
|
||||
===========
|
||||
= zmq_recv(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_recv - receive a message part from a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_recv (void '*socket', void '*buf', size_t 'len', int 'flags');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_recv()_ function shall receive a message from the socket referenced
|
||||
by the 'socket' argument and store it in the buffer referenced by the 'buf'
|
||||
argument. Any bytes exceeding the length specified by the 'len' argument shall
|
||||
@ -36,21 +32,19 @@ message or none at all. The total number of message parts is unlimited except
|
||||
by available memory.
|
||||
|
||||
An application that processes multi-part messages must use the _ZMQ_RCVMORE_
|
||||
linkzmq:zmq_getsockopt[3] option after calling _zmq_recv()_ to determine if
|
||||
xref:zmq_getsockopt.adoc[zmq_getsockopt] option after calling _zmq_recv()_ to determine if
|
||||
there are further parts to receive.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_recv()_ function shall return number of bytes in the message
|
||||
if successful. Note that the value can exceed the value of the 'len' parameter
|
||||
in case the message was truncated. If not successful the function shall return
|
||||
`-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EAGAIN*::
|
||||
Either the timeout set via the socket-option ZMQ_RCVTIMEO (see linkzmq:zmq_setsockopt[3])
|
||||
Either the timeout set via the socket-option ZMQ_RCVTIMEO (see xref:zmq_setsockopt.adoc[zmq_setsockopt])
|
||||
has been reached (flag ZMQ_DONTWAIT not set) without being able to read a message
|
||||
from the socket or there are no messages available at the moment (flag ZMQ_DONTWAIT set)
|
||||
and the operation would block.
|
||||
@ -60,7 +54,7 @@ The _zmq_recv()_ operation is not supported by this socket type.
|
||||
The _zmq_recv()_ operation cannot be performed on this socket at the moment
|
||||
due to the socket not being in the appropriate state. This error may occur with
|
||||
socket types that switch between several states, such as ZMQ_REP. See the
|
||||
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
|
||||
_messaging patterns_ section of xref:zmq_socket.adoc[zmq_socket] for more information.
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
*ENOTSOCK*::
|
||||
@ -70,8 +64,7 @@ The operation was interrupted by delivery of a signal before a message was
|
||||
available.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Receiving a message from a socket
|
||||
----
|
||||
char buf [256];
|
||||
@ -80,16 +73,14 @@ assert (nbytes != -1);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_getsockopt[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_socket[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_recvmsg(3)
|
||||
==============
|
||||
= zmq_recvmsg(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_recvmsg - receive a message part from a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_recvmsg (void '*socket', zmq_msg_t '*msg', int 'flags');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_recvmsg()_ function shall receive a message part from the socket
|
||||
referenced by the 'socket' argument and store it in the message referenced by
|
||||
the 'msg' argument. Any content previously stored in 'msg' shall be properly
|
||||
@ -38,21 +34,19 @@ message or none at all. The total number of message parts is unlimited except
|
||||
by available memory.
|
||||
|
||||
An application that processes multi-part messages must use the _ZMQ_RCVMORE_
|
||||
linkzmq:zmq_getsockopt[3] option after calling _zmq_recvmsg()_ to determine if
|
||||
xref:zmq_getsockopt.adoc[zmq_getsockopt] option after calling _zmq_recvmsg()_ to determine if
|
||||
there are further parts to receive.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_recvmsg()_ function shall return number of bytes in the message
|
||||
if successful. Otherwise it shall return `-1` and set 'errno' to one of the
|
||||
values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EAGAIN*::
|
||||
Either the timeout set via the socket-option ZMQ_RCVTIMEO (see linkzmq:zmq_setsockopt[3])
|
||||
Either the timeout set via the socket-option ZMQ_RCVTIMEO (see xref:zmq_setsockopt.adoc[zmq_setsockopt])
|
||||
has been reached (flag ZMQ_DONTWAIT not set) without being able to read a message
|
||||
from the socket or there are no messages available at the moment (flag ZMQ_DONTWAIT set)
|
||||
and the operation would block.
|
||||
@ -62,7 +56,7 @@ The _zmq_recvmsg()_ operation is not supported by this socket type.
|
||||
The _zmq_recvmsg()_ operation cannot be performed on this socket at the moment
|
||||
due to the socket not being in the appropriate state. This error may occur with
|
||||
socket types that switch between several states, such as ZMQ_REP. See the
|
||||
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
|
||||
_messaging patterns_ section of xref:zmq_socket.adoc[zmq_socket] for more information.
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
*ENOTSOCK*::
|
||||
@ -74,8 +68,7 @@ available.
|
||||
The message passed to the function was invalid.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Receiving a message from a socket
|
||||
----
|
||||
/* Create an empty 0MQ message */
|
||||
@ -109,17 +102,15 @@ do {
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_getsockopt[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_socket[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_send(3)
|
||||
===========
|
||||
= zmq_send(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_send - send a message part on a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_send (void '*socket', const void '*buf', size_t 'len', int 'flags');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_send()_ function shall queue a message created from the buffer
|
||||
referenced by the 'buf' and 'len' arguments. The 'flags' argument is
|
||||
a combination of the flags defined below:
|
||||
@ -46,15 +42,13 @@ An application that sends multi-part messages must use the _ZMQ_SNDMORE_ flag
|
||||
when sending each message part except the final one.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_send()_ function shall return number of bytes in the message
|
||||
if successful. Otherwise it shall return `-1` and set 'errno' to one of the
|
||||
values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EAGAIN*::
|
||||
Non-blocking mode was requested and the message cannot be sent at the moment.
|
||||
*ENOTSUP*::
|
||||
@ -65,7 +59,7 @@ The sender tried to send multipart data, which the socket type does not allow.
|
||||
The _zmq_send()_ operation cannot be performed on this socket at the moment
|
||||
due to the socket not being in the appropriate state. This error may occur with
|
||||
socket types that switch between several states, such as ZMQ_REP. See the
|
||||
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
|
||||
_messaging patterns_ section of xref:zmq_socket.adoc[zmq_socket] for more information.
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
*ENOTSOCK*::
|
||||
@ -77,8 +71,7 @@ sent.
|
||||
The message cannot be routed.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Sending a multi-part message
|
||||
----
|
||||
/* Send a multi-part message consisting of three parts to socket */
|
||||
@ -91,15 +84,13 @@ rc = zmq_send (socket, "JK", 2, 0);
|
||||
assert (rc == 2);
|
||||
----
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_send_const[3]
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_socket[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_send_const.adoc[zmq_send_const]
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_send_const(3)
|
||||
=================
|
||||
= zmq_send_const(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_send_const - send a constant-memory message part on a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_send_const (void '*socket', const void '*buf', size_t 'len', int 'flags');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_send_const()_ function shall queue a message created from the buffer
|
||||
referenced by the 'buf' and 'len' arguments. The message buffer is assumed
|
||||
to be constant-memory and will therefore not be copied or deallocated
|
||||
@ -47,15 +43,13 @@ An application that sends multi-part messages must use the _ZMQ_SNDMORE_ flag
|
||||
when sending each message part except the final one.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_send_const()_ function shall return number of bytes in the message
|
||||
if successful. Otherwise it shall return `-1` and set 'errno' to one of the
|
||||
values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EAGAIN*::
|
||||
Non-blocking mode was requested and the message cannot be sent at the moment.
|
||||
*ENOTSUP*::
|
||||
@ -64,7 +58,7 @@ The _zmq_send_const()_ operation is not supported by this socket type.
|
||||
The _zmq_send_const()_ operation cannot be performed on this socket at the moment
|
||||
due to the socket not being in the appropriate state. This error may occur with
|
||||
socket types that switch between several states, such as ZMQ_REP. See the
|
||||
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
|
||||
_messaging patterns_ section of xref:zmq_socket.adoc[zmq_socket] for more information.
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
*ENOTSOCK*::
|
||||
@ -76,8 +70,7 @@ sent.
|
||||
The message cannot be routed.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Sending a multi-part message
|
||||
----
|
||||
/* Send a multi-part message consisting of three parts to socket */
|
||||
@ -90,15 +83,13 @@ rc = zmq_send_const (socket, "JK", 2, 0);
|
||||
assert (rc == 2);
|
||||
----
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_socket[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_sendmsg(3)
|
||||
==============
|
||||
= zmq_sendmsg(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_sendmsg - send a message part on a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_sendmsg (void '*socket', zmq_msg_t '*msg', int 'flags');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_sendmsg()_ function shall queue the message referenced by the 'msg'
|
||||
argument to be sent to the socket referenced by the 'socket' argument. The
|
||||
'flags' argument is a combination of the flags defined below:
|
||||
@ -51,15 +47,13 @@ by available memory.
|
||||
An application that sends multi-part messages must use the _ZMQ_SNDMORE_ flag
|
||||
when sending each message part except the final one.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_sendmsg()_ function shall return number of bytes in the message
|
||||
if successful. Otherwise it shall return `-1` and set 'errno' to one of the
|
||||
values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EAGAIN*::
|
||||
Non-blocking mode was requested and the message cannot be sent at the moment.
|
||||
*ENOTSUP*::
|
||||
@ -70,7 +64,7 @@ The sender tried to send multipart data, which the socket type does not allow.
|
||||
The _zmq_sendmsg()_ operation cannot be performed on this socket at the moment
|
||||
due to the socket not being in the appropriate state. This error may occur with
|
||||
socket types that switch between several states, such as ZMQ_REP. See the
|
||||
_messaging patterns_ section of linkzmq:zmq_socket[3] for more information.
|
||||
_messaging patterns_ section of xref:zmq_socket.adoc[zmq_socket] for more information.
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
*ENOTSOCK*::
|
||||
@ -84,8 +78,7 @@ Invalid message.
|
||||
The message cannot be routed.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Filling in a message and sending it to a socket
|
||||
----
|
||||
/* Create a new message, allocating 6 bytes for message content */
|
||||
@ -109,14 +102,12 @@ rc = zmq_sendmsg (socket, &part3, 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_socket[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,15 +1,12 @@
|
||||
zmq_setsockopt(3)
|
||||
=================
|
||||
= zmq_setsockopt(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_setsockopt - set 0MQ socket options
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_setsockopt (void '*socket', int 'option_name', const void '*option_value', size_t 'option_len');*
|
||||
|
||||
Caution: All options, with the exception of ZMQ_SUBSCRIBE, ZMQ_UNSUBSCRIBE,
|
||||
@ -21,8 +18,7 @@ subsequent socket bind/connects.
|
||||
Specifically, security options take effect for subsequent bind/connect calls,
|
||||
and can be changed at any time to affect subsequent binds and/or connects.
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_setsockopt()_ function shall set the option specified by the
|
||||
'option_name' argument to the value pointed to by the 'option_value' argument
|
||||
for the 0MQ socket pointed to by the 'socket' argument. The 'option_len'
|
||||
@ -46,7 +42,7 @@ corresponds to thread 1, second lowest bit to thread 2 and so on. For example,
|
||||
a value of 3 specifies that subsequent connections on 'socket' shall be handled
|
||||
exclusively by I/O threads 1 and 2.
|
||||
|
||||
See also linkzmq:zmq_init[3] for details on allocating the number of I/O
|
||||
See also xref:zmq_init.adoc[zmq_init] for details on allocating the number of I/O
|
||||
threads for a specific _context_.
|
||||
|
||||
[horizontal]
|
||||
@ -144,7 +140,7 @@ support multi-part messages, in particular, only one part of it is kept
|
||||
in the socket internal queue.
|
||||
|
||||
NOTE: If recv is not called on the inbound socket, the queue and memory will
|
||||
grow with each message received. Use linkzmq:zmq_getsockopt[3] with ZMQ_EVENTS
|
||||
grow with each message received. Use xref:zmq_getsockopt.adoc[zmq_getsockopt] with ZMQ_EVENTS
|
||||
to trigger the conflation of the messages.
|
||||
|
||||
[horizontal]
|
||||
@ -171,12 +167,12 @@ Applicable socket types:: all, when using TCP transports.
|
||||
ZMQ_CURVE_PUBLICKEY: Set CURVE public key
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Sets the socket's long term public key. You must set this on CURVE client
|
||||
sockets, see linkzmq:zmq_curve[7]. You can provide the key as 32 binary
|
||||
sockets, see xref:zmq_curve.adoc[zmq_curve] You can provide the key as 32 binary
|
||||
bytes, or as a 40-character string encoded in the Z85 encoding format and
|
||||
terminated in a null byte. The public key must always be used with the
|
||||
matching secret key. To generate a public/secret key pair, use
|
||||
linkzmq:zmq_curve_keypair[3]. To derive the public key from a secret key,
|
||||
use linkzmq:zmq_curve_public[3].
|
||||
xref:zmq_curve_keypair.adoc[zmq_curve_keypair] To derive the public key from a secret key,
|
||||
use xref:zmq_curve_public.adoc[zmq_curve_public]
|
||||
|
||||
NOTE: an option value size of 40 is supported for backwards compatibility,
|
||||
though is deprecated.
|
||||
@ -191,11 +187,11 @@ Applicable socket types:: all, when using TCP transport
|
||||
ZMQ_CURVE_SECRETKEY: Set CURVE secret key
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Sets the socket's long term secret key. You must set this on both CURVE
|
||||
client and server sockets, see linkzmq:zmq_curve[7]. You can provide the
|
||||
client and server sockets, see xref:zmq_curve.adoc[zmq_curve] You can provide the
|
||||
key as 32 binary bytes, or as a 40-character string encoded in the Z85
|
||||
encoding format and terminated in a null byte. To generate a public/secret
|
||||
key pair, use linkzmq:zmq_curve_keypair[3]. To derive the public key from
|
||||
a secret key, use linkzmq:zmq_curve_public[3].
|
||||
key pair, use xref:zmq_curve_keypair.adoc[zmq_curve_keypair] To derive the public key from
|
||||
a secret key, use xref:zmq_curve_public.adoc[zmq_curve_public]
|
||||
|
||||
NOTE: an option value size of 40 is supported for backwards compatibility,
|
||||
though is deprecated.
|
||||
@ -210,7 +206,7 @@ Applicable socket types:: all, when using TCP transport
|
||||
ZMQ_CURVE_SERVER: Set CURVE server role
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Defines whether the socket will act as server for CURVE security, see
|
||||
linkzmq:zmq_curve[7]. A value of '1' means the socket will act as
|
||||
xref:zmq_curve.adoc[zmq_curve] A value of '1' means the socket will act as
|
||||
CURVE server. A value of '0' means the socket will not act as CURVE
|
||||
server, and its security role then depends on other option settings.
|
||||
Setting this to '0' shall reset the socket security to NULL. When you
|
||||
@ -228,11 +224,11 @@ Applicable socket types:: all, when using TCP transport
|
||||
ZMQ_CURVE_SERVERKEY: Set CURVE server key
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Sets the socket's long term server key. You must set this on CURVE client
|
||||
sockets, see linkzmq:zmq_curve[7]. You can provide the key as 32 binary
|
||||
sockets, see xref:zmq_curve.adoc[zmq_curve] You can provide the key as 32 binary
|
||||
bytes, or as a 40-character string encoded in the Z85 encoding format and
|
||||
terminated in a null byte. This key must have been generated together with
|
||||
the server's secret key. To generate a public/secret key pair, use
|
||||
linkzmq:zmq_curve_keypair[3].
|
||||
xref:zmq_curve_keypair.adoc[zmq_curve_keypair]
|
||||
|
||||
NOTE: an option value size of 40 is supported for backwards compatibility,
|
||||
though is deprecated.
|
||||
@ -274,7 +270,7 @@ Applicable socket types:: ZMQ_DEALER, ZMQ_CLIENT and ZMQ_PEER
|
||||
ZMQ_GSSAPI_PLAINTEXT: Disable GSSAPI encryption
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Defines whether communications on the socket will be encrypted, see
|
||||
linkzmq:zmq_gssapi[7]. A value of '1' means that communications will be
|
||||
xref:zmq_gssapi.adoc[zmq_gssapi] A value of '1' means that communications will be
|
||||
plaintext. A value of '0' means communications will be encrypted.
|
||||
|
||||
[horizontal]
|
||||
@ -298,7 +294,7 @@ Applicable socket types:: all, when using TCP transport
|
||||
ZMQ_GSSAPI_SERVER: Set GSSAPI server role
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Defines whether the socket will act as server for GSSAPI security, see
|
||||
linkzmq:zmq_gssapi[7]. A value of '1' means the socket will act as GSSAPI
|
||||
xref:zmq_gssapi.adoc[zmq_gssapi] A value of '1' means the socket will act as GSSAPI
|
||||
server. A value of '0' means the socket will act as GSSAPI client.
|
||||
|
||||
[horizontal]
|
||||
@ -486,8 +482,8 @@ ZMQ_LINGER: Set linger period for socket shutdown
|
||||
The 'ZMQ_LINGER' option shall set the linger period for the specified 'socket'.
|
||||
The linger period determines how long pending messages which have yet to be
|
||||
sent to a peer shall linger in memory after a socket is disconnected with
|
||||
linkzmq:zmq_disconnect[3] or closed with linkzmq:zmq_close[3], and further
|
||||
affects the termination of the socket's context with linkzmq:zmq_ctx_term[3].
|
||||
xref:zmq_disconnect.adoc[zmq_disconnect] or closed with xref:zmq_close.adoc[zmq_close], and further
|
||||
affects the termination of the socket's context with xref:zmq_ctx_term.adoc[zmq_ctx_term]
|
||||
The following outlines the different behaviours:
|
||||
|
||||
* A value of '-1' specifies an infinite linger period. Pending
|
||||
@ -532,7 +528,8 @@ followed by the metadata value, for example "X-key:value".
|
||||
_Property_ names are restricted to maximum 255 characters and must be prefixed by "X-".
|
||||
Multiple application metadata properties can be added to a socket by executing zmq_setsockopt()
|
||||
multiple times. As the argument is a null-terminated string, binary data must be encoded
|
||||
before it is added e.g. using Z85 (linkzmq:zmq_z85_encode[3]).
|
||||
before it is added e.g. using Z85 (xref:zmq_z85_encode.adoc[zmq_z85_encode]).
|
||||
|
||||
|
||||
NOTE: in DRAFT state, not yet available in stable releases.
|
||||
|
||||
@ -575,8 +572,8 @@ ZMQ_PLAIN_PASSWORD: Set PLAIN security password
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Sets the password for outgoing connections over TCP or IPC. If you set this
|
||||
to a non-null value, the security mechanism used for connections shall be
|
||||
PLAIN, see linkzmq:zmq_plain[7]. If you set this to a null value, the security
|
||||
mechanism used for connections shall be NULL, see linkzmq:zmq_null[3].
|
||||
PLAIN, see xref:zmq_plain.adoc[zmq_plain] If you set this to a null value, the security
|
||||
mechanism used for connections shall be NULL, see xref:zmq_null.adoc[zmq_null]
|
||||
|
||||
[horizontal]
|
||||
Option value type:: character string
|
||||
@ -588,7 +585,7 @@ Applicable socket types:: all, when using TCP transport
|
||||
ZMQ_PLAIN_SERVER: Set PLAIN server role
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Defines whether the socket will act as server for PLAIN security, see
|
||||
linkzmq:zmq_plain[7]. A value of '1' means the socket will act as
|
||||
xref:zmq_plain.adoc[zmq_plain] A value of '1' means the socket will act as
|
||||
PLAIN server. A value of '0' means the socket will not act as PLAIN
|
||||
server, and its security role then depends on other option settings.
|
||||
Setting this to '0' shall reset the socket security to NULL.
|
||||
@ -604,8 +601,8 @@ ZMQ_PLAIN_USERNAME: Set PLAIN security username
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Sets the username for outgoing connections over TCP or IPC. If you set this
|
||||
to a non-null value, the security mechanism used for connections shall be
|
||||
PLAIN, see linkzmq:zmq_plain[7]. If you set this to a null value, the security
|
||||
mechanism used for connections shall be NULL, see linkzmq:zmq_null[3].
|
||||
PLAIN, see xref:zmq_plain.adoc[zmq_plain] If you set this to a null value, the security
|
||||
mechanism used for connections shall be NULL, see xref:zmq_null.adoc[zmq_null]
|
||||
|
||||
[horizontal]
|
||||
Option value type:: character string
|
||||
@ -670,7 +667,7 @@ Applicable socket types:: ZMQ_ROUTER, ZMQ_DEALER, ZMQ_REQ
|
||||
ZMQ_RATE: Set multicast data rate
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_RATE' option shall set the maximum send or receive data rate for
|
||||
multicast transports such as linkzmq:zmq_pgm[7] using the specified 'socket'.
|
||||
multicast transports such as xref:zmq_pgm.adoc[zmq_pgm] using the specified 'socket'.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
@ -704,12 +701,12 @@ limit.
|
||||
If this limit has been reached the socket shall enter an exceptional state and
|
||||
depending on the socket type, 0MQ shall take appropriate action such as
|
||||
blocking or dropping sent messages. Refer to the individual socket descriptions
|
||||
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
|
||||
in xref:zmq_socket.adoc[zmq_socket] for details on the exact action taken for each socket
|
||||
type.
|
||||
|
||||
NOTE: 0MQ does not guarantee that the socket will be able to queue as many as ZMQ_RCVHWM
|
||||
messages, and the actual limit may be lower or higher, depending on socket transport.
|
||||
A notable example is for sockets using TCP transport; see linkzmq:zmq_tcp[7].
|
||||
A notable example is for sockets using TCP transport; see xref:zmq_tcp.adoc[zmq_tcp]
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
@ -956,14 +953,14 @@ limit.
|
||||
If this limit has been reached the socket shall enter an exceptional state and
|
||||
depending on the socket type, 0MQ shall take appropriate action such as
|
||||
blocking or dropping sent messages. Refer to the individual socket descriptions
|
||||
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
|
||||
in xref:zmq_socket.adoc[zmq_socket] for details on the exact action taken for each socket
|
||||
type.
|
||||
|
||||
NOTE: 0MQ does not guarantee that the socket will accept as many as ZMQ_SNDHWM
|
||||
messages, and the actual limit may be as much as 90% lower depending on the
|
||||
flow of messages on the socket. The socket may even be able to accept more messages
|
||||
than the ZMQ_SNDHWM threshold; a notable example is for sockets using TCP transport;
|
||||
see linkzmq:zmq_tcp[7].
|
||||
see xref:zmq_tcp.adoc[zmq_tcp]
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
@ -1669,13 +1666,11 @@ Default value:: 0 (false)
|
||||
Applicable socket types:: All, when using NORM transport.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_setsockopt()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested option _option_name_ is unknown, or the requested _option_len_ or
|
||||
_option_value_ is invalid.
|
||||
@ -1687,8 +1682,7 @@ The provided 'socket' was invalid.
|
||||
The operation was interrupted by delivery of a signal.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Subscribing to messages on a 'ZMQ_SUB' socket
|
||||
----
|
||||
/* Subscribe to all messages */
|
||||
@ -1716,16 +1710,14 @@ assert (rc);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_getsockopt[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq_plain[7]
|
||||
linkzmq:zmq_curve[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq_plain.adoc[zmq_plain]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_socket(3)
|
||||
=============
|
||||
= zmq_socket(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_socket - create 0MQ socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*void *zmq_socket (void '*context', int 'type');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The 'zmq_socket()' function shall create a 0MQ socket within the specified
|
||||
'context' and return an opaque handle to the newly created socket. The 'type'
|
||||
argument specifies the socket type, which determines the semantics of
|
||||
@ -21,9 +17,9 @@ communication over the socket.
|
||||
|
||||
The newly created socket is initially unbound, and not associated with any
|
||||
endpoints. In order to establish a message flow a socket must first be
|
||||
connected to at least one endpoint with linkzmq:zmq_connect[3], or at least one
|
||||
connected to at least one endpoint with xref:zmq_connect.adoc[zmq_connect], or at least one
|
||||
endpoint must be created for accepting incoming connections with
|
||||
linkzmq:zmq_bind[3].
|
||||
xref:zmq_bind.adoc[zmq_bind]
|
||||
|
||||
.Key differences to conventional sockets
|
||||
Generally speaking, conventional sockets present a _synchronous_ interface to
|
||||
@ -84,12 +80,12 @@ A 'ZMQ_CLIENT' socket talks to a 'ZMQ_SERVER' socket. Either peer can connect,
|
||||
though the usual and recommended model is to bind the 'ZMQ_SERVER' and connect
|
||||
the 'ZMQ_CLIENT'.
|
||||
|
||||
If the 'ZMQ_CLIENT' socket has established a connection, linkzmq:zmq_send[3]
|
||||
If the 'ZMQ_CLIENT' socket has established a connection, xref:zmq_send.adoc[zmq_send]
|
||||
will accept messages, queue them, and send them as rapidly as the network
|
||||
allows. The outgoing buffer limit is defined by the high water mark for the
|
||||
socket. If the outgoing buffer is full, or, for connection-oriented transports,
|
||||
if the ZMQ_IMMEDIATE option is set and there is no connected peer,
|
||||
linkzmq:zmq_send[3] will block.
|
||||
xref:zmq_send.adoc[zmq_send] will block.
|
||||
The 'ZMQ_CLIENT' socket will not drop messages.
|
||||
|
||||
When a 'ZMQ_CLIENT' socket is connected to multiple 'ZMQ_SERVER' sockets,
|
||||
@ -99,7 +95,7 @@ connected peer. This usage is sensible only for stateless protocols.
|
||||
|
||||
'ZMQ_CLIENT' sockets are threadsafe and can be used from multiple threads
|
||||
at the same time. Note that replies from a 'ZMQ_SERVER' socket will go to
|
||||
the first client thread that calls linkzmq:zmq_msg_recv[3]. If you need to get
|
||||
the first client thread that calls xref:zmq_msg_recv.adoc[zmq_msg_recv] If you need to get
|
||||
replies back to the originating thread, use one 'ZMQ_CLIENT' socket per
|
||||
thread.
|
||||
|
||||
@ -125,9 +121,9 @@ socket can only reply to an incoming message: the 'ZMQ_CLIENT' peer must
|
||||
always initiate a conversation.
|
||||
|
||||
Each received message has a 'routing_id' that is a 32-bit unsigned integer.
|
||||
The application can fetch this with linkzmq:zmq_msg_routing_id[3]. To send
|
||||
The application can fetch this with xref:zmq_msg_routing_id.adoc[zmq_msg_routing_id] To send
|
||||
a message to a given 'ZMQ_CLIENT' peer the application must set the peer's
|
||||
'routing_id' on the message, using linkzmq:zmq_msg_set_routing_id[3].
|
||||
'routing_id' on the message, using xref:zmq_msg_set_routing_id.adoc[zmq_msg_set_routing_id]
|
||||
|
||||
If the 'routing_id' is not specified, or does not refer to a connected client
|
||||
peer, the send call will fail with EHOSTUNREACH. If the outgoing buffer for
|
||||
@ -168,11 +164,11 @@ Groups are matched using exact matching (vs prefix matching of PubSub).
|
||||
NOTE: Radio-dish is still in draft phase.
|
||||
|
||||
ZMQ_RADIO
|
||||
^^^^^^^
|
||||
^^^^^^^^^
|
||||
A socket of type 'ZMQ_RADIO' is used by a _publisher_ to distribute data.
|
||||
Each message belong to a group, a group is specified with linkzmq:zmq_msg_set_group[3].
|
||||
Each message belong to a group, a group is specified with xref:zmq_msg_set_group.adoc[zmq_msg_set_group]
|
||||
Messages are distributed to all members of a group.
|
||||
The linkzmq:zmq_recv[3] function is not implemented for this socket type.
|
||||
The xref:zmq_recv.adoc[zmq_recv] function is not implemented for this socket type.
|
||||
|
||||
When a 'ZMQ_RADIO' socket enters the 'mute' state due to having reached the
|
||||
high water mark for a _subscriber_, then any messages that would be sent to the
|
||||
@ -196,9 +192,9 @@ ZMQ_DISH
|
||||
^^^^^^^^
|
||||
A socket of type 'ZMQ_DISH' is used by a _subscriber_ to subscribe to groups
|
||||
distributed by a _radio_. Initially a 'ZMQ_DISH' socket is not subscribed to
|
||||
any groups, use linkzmq:zmq_join[3] to
|
||||
any groups, use xref:zmq_join.adoc[zmq_join] to
|
||||
join a group.
|
||||
To get the group the message belong to call linkzmq:zmq_msg_group[3].
|
||||
To get the group the message belong to call xref:zmq_msg_group.adoc[zmq_msg_group]
|
||||
The _zmq_send()_ function is not implemented for this socket type.
|
||||
|
||||
NOTE: 'ZMQ_DISH' sockets are threadsafe. They do not accept ZMQ_RCVMORE on receives.
|
||||
@ -224,7 +220,7 @@ ZMQ_PUB
|
||||
^^^^^^^
|
||||
A socket of type 'ZMQ_PUB' is used by a _publisher_ to distribute data.
|
||||
Messages sent are distributed in a fan out fashion to all connected peers.
|
||||
The linkzmq:zmq_recv[3] function is not implemented for this socket type.
|
||||
The xref:zmq_recv.adoc[zmq_recv] function is not implemented for this socket type.
|
||||
|
||||
When a 'ZMQ_PUB' socket enters the 'mute' state due to having reached the
|
||||
high water mark for a _subscriber_, then any messages that would be sent to the
|
||||
@ -245,7 +241,7 @@ ZMQ_SUB
|
||||
^^^^^^^
|
||||
A socket of type 'ZMQ_SUB' is used by a _subscriber_ to subscribe to data
|
||||
distributed by a _publisher_. Initially a 'ZMQ_SUB' socket is not subscribed to
|
||||
any messages, use the 'ZMQ_SUBSCRIBE' option of linkzmq:zmq_setsockopt[3] to
|
||||
any messages, use the 'ZMQ_SUBSCRIBE' option of xref:zmq_setsockopt.adoc[zmq_setsockopt] to
|
||||
specify which messages to subscribe to. The _zmq_send()_ function is not
|
||||
implemented for this socket type.
|
||||
|
||||
@ -312,7 +308,7 @@ socket type.
|
||||
When a 'ZMQ_PUSH' socket enters the 'mute' state due to having reached the
|
||||
high water mark for all downstream _nodes_, or, for connection-oriented transports,
|
||||
if the ZMQ_IMMEDIATE option is set and there are no downstream _nodes_ at all,
|
||||
then any linkzmq:zmq_send[3] operations on the socket shall block until the mute
|
||||
then any xref:zmq_send.adoc[zmq_send] operations on the socket shall block until the mute
|
||||
state ends or at least one downstream _node_ becomes available for sending;
|
||||
messages are not discarded.
|
||||
|
||||
@ -343,7 +339,7 @@ Outgoing routing strategy:: N/A
|
||||
Action in mute state:: Block
|
||||
|
||||
Scatter-gather pattern
|
||||
~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
The scatter-gather pattern is the thread-safe version of the pipeline pattern.
|
||||
The scatter-gather pattern is used for distributing data to _nodes_ arranged in
|
||||
a pipeline. Data always flows down the pipeline, and each stage of the pipeline
|
||||
@ -351,7 +347,7 @@ is connected to at least one _node_. When a pipeline stage is connected to
|
||||
multiple _nodes_ data is round-robined among all connected _nodes_.
|
||||
|
||||
ZMQ_SCATTER
|
||||
^^^^^^^^
|
||||
^^^^^^^^^^^
|
||||
A socket of type 'ZMQ_SCATTER' is used by a scatter-gather _node_ to send messages
|
||||
to downstream scatter-gather _nodes_. Messages are round-robined to all connected
|
||||
downstream _nodes_. The _zmq_recv()_ function is not implemented for this
|
||||
@ -360,7 +356,7 @@ socket type.
|
||||
When a 'ZMQ_SCATTER' socket enters the 'mute' state due to having reached the
|
||||
high water mark for all downstream _nodes_, or, for connection-oriented transports,
|
||||
if the ZMQ_IMMEDIATE option is set and there are no downstream _nodes_ at all,
|
||||
then any linkzmq:zmq_send[3] operations on the socket shall block until the mute
|
||||
then any xref:zmq_send.adoc[zmq_send] operations on the socket shall block until the mute
|
||||
state ends or at least one downstream _node_ becomes available for sending;
|
||||
messages are not discarded.
|
||||
|
||||
@ -378,7 +374,7 @@ Action in mute state:: Block
|
||||
|
||||
|
||||
ZMQ_GATHER
|
||||
^^^^^^^^
|
||||
^^^^^^^^^^
|
||||
A socket of type 'ZMQ_GATHER' is used by a scatter-gather _node_ to receive messages
|
||||
from upstream scatter-gather _nodes_. Messages are fair-queued from among all
|
||||
connected upstream _nodes_. The _zmq_send()_ function is not implemented for
|
||||
@ -414,16 +410,16 @@ time. No message routing or filtering is performed on messages sent over a
|
||||
When a 'ZMQ_PAIR' socket enters the 'mute' state due to having reached the
|
||||
high water mark for the connected peer, or, for connection-oriented transports,
|
||||
if the ZMQ_IMMEDIATE option is set and there is no connected peer, then
|
||||
any linkzmq:zmq_send[3] operations on the socket shall block until the peer
|
||||
any xref:zmq_send.adoc[zmq_send] operations on the socket shall block until the peer
|
||||
becomes available for sending; messages are not discarded.
|
||||
|
||||
While 'ZMQ_PAIR' sockets can be used over transports other than linkzmq:zmq_inproc[7],
|
||||
While 'ZMQ_PAIR' sockets can be used over transports other than xref:zmq_inproc.adoc[zmq_inproc],
|
||||
their inability to auto-reconnect coupled with the fact new incoming connections will
|
||||
be terminated while any previous connections (including ones in a closing state)
|
||||
exist makes them unsuitable for TCP in most cases.
|
||||
|
||||
NOTE: 'ZMQ_PAIR' sockets are designed for inter-thread communication across
|
||||
the linkzmq:zmq_inproc[7] transport and do not implement functionality such
|
||||
the xref:zmq_inproc.adoc[zmq_inproc] transport and do not implement functionality such
|
||||
as auto-reconnection.
|
||||
|
||||
[horizontal]
|
||||
@ -437,7 +433,7 @@ Action in mute state:: Block
|
||||
|
||||
|
||||
Peer-to-peer pattern
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The peer-to-peer pattern is used to connect a peer to multiple peers.
|
||||
Peer can both connect and bind and mix both of them with the same socket.
|
||||
@ -450,13 +446,13 @@ ZMQ_PEER
|
||||
^^^^^^^^
|
||||
A 'ZMQ_PEER' socket talks to a set of 'ZMQ_PEER' sockets.
|
||||
|
||||
To connect and fetch the 'routing_id' of the peer use linkzmq:zmq_connect_peer[3].
|
||||
To connect and fetch the 'routing_id' of the peer use xref:zmq_connect_peer.adoc[zmq_connect_peer]
|
||||
|
||||
Each received message has a 'routing_id' that is a 32-bit unsigned integer.
|
||||
The application can fetch this with linkzmq:zmq_msg_routing_id[3].
|
||||
The application can fetch this with xref:zmq_msg_routing_id.adoc[zmq_msg_routing_id]
|
||||
|
||||
To send a message to a given 'ZMQ_PEER' peer the application must set the peer's
|
||||
'routing_id' on the message, using linkzmq:zmq_msg_set_routing_id[3].
|
||||
'routing_id' on the message, using xref:zmq_msg_set_routing_id.adoc[zmq_msg_set_routing_id]
|
||||
|
||||
If the 'routing_id' is not specified, or does not refer to a connected client
|
||||
peer, the send call will fail with EHOSTUNREACH. If the outgoing buffer for
|
||||
@ -478,7 +474,7 @@ Incoming routing strategy:: Fair-queued
|
||||
Action in mute state:: Return EAGAIN
|
||||
|
||||
Channel pattern
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~
|
||||
The channel pattern is the thread-safe version of the exclusive pair pattern.
|
||||
The channel pattern is used to connect a peer to precisely one other
|
||||
peer. This pattern is used for inter-thread communication across the inproc
|
||||
@ -487,7 +483,7 @@ transport.
|
||||
NOTE: Channel is still in draft phase.
|
||||
|
||||
ZMQ_CHANNEL
|
||||
^^^^^^^^
|
||||
^^^^^^^^^^^
|
||||
A socket of type 'ZMQ_CHANNEL' can only be connected to a single peer at any one
|
||||
time. No message routing or filtering is performed on messages sent over a
|
||||
'ZMQ_CHANNEL' socket.
|
||||
@ -495,16 +491,16 @@ time. No message routing or filtering is performed on messages sent over a
|
||||
When a 'ZMQ_CHANNEL' socket enters the 'mute' state due to having reached the
|
||||
high water mark for the connected peer, or, for connection-oriented transports,
|
||||
if the ZMQ_IMMEDIATE option is set and there is no connected peer, then
|
||||
any linkzmq:zmq_send[3] operations on the socket shall block until the peer
|
||||
any xref:zmq_send.adoc[zmq_send] operations on the socket shall block until the peer
|
||||
becomes available for sending; messages are not discarded.
|
||||
|
||||
While 'ZMQ_CHANNEL' sockets can be used over transports other than linkzmq:zmq_inproc[7],
|
||||
While 'ZMQ_CHANNEL' sockets can be used over transports other than xref:zmq_inproc.adoc[zmq_inproc],
|
||||
their inability to auto-reconnect coupled with the fact new incoming connections will
|
||||
be terminated while any previous connections (including ones in a closing state)
|
||||
exist makes them unsuitable for TCP in most cases.
|
||||
|
||||
NOTE: 'ZMQ_CHANNEL' sockets are designed for inter-thread communication across
|
||||
the linkzmq:zmq_inproc[7] transport and do not implement functionality such
|
||||
the xref:zmq_inproc.adoc[zmq_inproc] transport and do not implement functionality such
|
||||
as auto-reconnection.
|
||||
|
||||
NOTE: 'ZMQ_CHANNEL' sockets are threadsafe. They do not accept ZMQ_RCVMORE on receives.
|
||||
@ -620,7 +616,7 @@ peers, and each message received is fair-queued from all connected peers.
|
||||
When a 'ZMQ_DEALER' socket enters the 'mute' state due to having reached the
|
||||
high water mark for all peers, or, for connection-oriented transports, if the
|
||||
ZMQ_IMMEDIATE option is set and there are no peers at all, then any
|
||||
linkzmq:zmq_send[3] operations on the socket shall block until the mute state
|
||||
xref:zmq_send.adoc[zmq_send] operations on the socket shall block until the mute state
|
||||
ends or at least one peer becomes available for sending; messages are not discarded.
|
||||
|
||||
When a 'ZMQ_DEALER' socket is connected to a 'ZMQ_REP' socket each message sent
|
||||
@ -679,15 +675,13 @@ Incoming routing strategy:: Fair-queued
|
||||
Action in mute state:: Drop (see text)
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_socket()_ function shall return an opaque handle to the newly created
|
||||
socket if successful. Otherwise, it shall return NULL and set 'errno' to one of
|
||||
the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The requested socket 'type' is invalid.
|
||||
*EFAULT*::
|
||||
@ -697,8 +691,7 @@ The limit on the total number of open 0MQ sockets has been reached.
|
||||
*ETERM*::
|
||||
The context specified was shutdown or terminated.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Creating a simple HTTP server using ZMQ_STREAM
|
||||
----
|
||||
void *ctx = zmq_ctx_new ();
|
||||
@ -740,19 +733,17 @@ zmq_ctx_destroy (ctx);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_init[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_send[3]
|
||||
linkzmq:zmq_recv[3]
|
||||
linkzmq:zmq_inproc[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_init.adoc[zmq_init]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_send.adoc[zmq_send]
|
||||
* xref:zmq_recv.adoc[zmq_recv]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,27 +1,23 @@
|
||||
zmq_socket_monitor(3)
|
||||
=====================
|
||||
= zmq_socket_monitor(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_socket_monitor - monitor socket events
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_socket_monitor (void '*socket', char '*endpoint', int 'events');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_socket_monitor()_ method lets an application thread track
|
||||
socket events (like connects) on a ZeroMQ socket. Each call to this
|
||||
method creates a 'ZMQ_PAIR' socket and binds that to the specified
|
||||
inproc:// 'endpoint'. To collect the socket events, you must create
|
||||
your own 'ZMQ_PAIR' socket, and connect that to the endpoint.
|
||||
|
||||
Note that there is also a DRAFT function linkzmq:zmq_socket_monitor_versioned[3],
|
||||
Note that there is also a DRAFT function xref:zmq_socket_monitor_versioned.adoc[zmq_socket_monitor_versioned],
|
||||
which allows to subscribe to events that provide more information.
|
||||
Calling zmq_socket_monitor is equivalent to calling 'zmq_socket_monitor_versioned'
|
||||
with the 'event_version' parameter set to 1, with the exception of error cases.
|
||||
@ -150,15 +146,13 @@ The event value is the status code returned by the ZAP handler (i.e. 300,
|
||||
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_socket_monitor()_ function returns a value of 0 or greater if
|
||||
successful. Otherwise it returns `-1` and sets 'errno' to one of the values
|
||||
defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*ETERM*::
|
||||
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
||||
|
||||
@ -169,8 +163,7 @@ required to use the inproc:// transport.
|
||||
*EINVAL*::
|
||||
The endpoint supplied is invalid.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Monitoring client and server sockets
|
||||
----
|
||||
// Read one event off the monitor socket; return value and address
|
||||
@ -285,12 +278,10 @@ int main (void)
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,22 +1,18 @@
|
||||
zmq_socket_monitor_versioned(3)
|
||||
===============================
|
||||
= zmq_socket_monitor_versioned(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
|
||||
zmq_socket_monitor_versioned - monitor socket events
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*int zmq_socket_monitor_versioned (void '*socket', char '*endpoint', uint64_t 'events', int 'event_version', int 'type');*
|
||||
|
||||
*int zmq_socket_monitor_pipes_stats (void '*socket');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_socket_monitor_versioned()_ method lets an application thread track
|
||||
socket events (like connects) on a ZeroMQ socket. Each call to this
|
||||
method creates a 'ZMQ_PAIR' socket and binds that to the specified
|
||||
@ -37,7 +33,7 @@ ZMQ_CURRENT_EVENT_VERSION and ZMQ_CURRENT_EVENT_VERSION_DRAFT are always defined
|
||||
to the most recent stable or DRAFT event version, which are currently 1 resp. 2
|
||||
|
||||
This page describes the protocol for 'event_version' 2 only. For the protocol
|
||||
used with 'event_version' 1, please refer to linkzmq:zmq_socket_monitor[3].
|
||||
used with 'event_version' 1, please refer to xref:zmq_socket_monitor.adoc[zmq_socket_monitor]
|
||||
|
||||
Each event is sent in multiple frames. The first frame contains an event
|
||||
number (64 bits). The number and content of further frames depend on this
|
||||
@ -203,8 +199,7 @@ NOTE: in DRAFT state, not yet available in stable releases.
|
||||
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_socket_monitor()_ and _zmq_socket_monitor_pipes_stats()_ functions
|
||||
return a value of 0 or greater if successful. Otherwise they return `-1` and
|
||||
set 'errno' to one of the values defined below.
|
||||
@ -235,8 +230,7 @@ The socket did not have monitoring enabled.
|
||||
*EAGAIN*::
|
||||
The monitored socket did not have any connections to monitor yet.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Monitoring client and server sockets
|
||||
----
|
||||
// Read one event off the monitor socket; return values and addresses
|
||||
@ -390,12 +384,10 @@ int main (void)
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_strerror(3)
|
||||
===============
|
||||
= zmq_strerror(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_strerror - get 0MQ error message string
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*const char *zmq_strerror (int 'errnum');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_strerror()_ function shall return a pointer to an error message string
|
||||
corresponding to the error number specified by the 'errnum' argument. As 0MQ
|
||||
defines additional error numbers over and above those defined by the operating
|
||||
@ -21,19 +17,16 @@ system, applications should use _zmq_strerror()_ in preference to the standard
|
||||
_strerror()_ function.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_strerror()_ function shall return a pointer to an error message
|
||||
string.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
No errors are defined.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Displaying an error message when a 0MQ context cannot be initialised
|
||||
----
|
||||
void *ctx = zmq_init (1, 1, 0);
|
||||
@ -44,13 +37,11 @@ if (!ctx) {
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
||||
|
@ -1,21 +1,17 @@
|
||||
zmq_tcp(7)
|
||||
==========
|
||||
= zmq_tcp(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_tcp - 0MQ unicast transport using TCP
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
TCP is an ubiquitous, reliable, unicast transport. When connecting distributed
|
||||
applications over a network with 0MQ, using the TCP transport will likely be
|
||||
your first choice.
|
||||
|
||||
|
||||
ADDRESSING
|
||||
----------
|
||||
== ADDRESSING
|
||||
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
||||
'address'. The 'transport' specifies the underlying protocol to use. The
|
||||
'address' specifies the transport-specific address to connect to.
|
||||
@ -43,7 +39,7 @@ The TCP port number may be specified by:
|
||||
* The wild-card `*`, meaning a system-assigned ephemeral port.
|
||||
|
||||
When using ephemeral ports, the caller should retrieve the actual assigned
|
||||
port using the ZMQ_LAST_ENDPOINT socket option. See linkzmq:zmq_getsockopt[3]
|
||||
port using the ZMQ_LAST_ENDPOINT socket option. See xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
for details.
|
||||
|
||||
Unbinding wild-card address from a socket
|
||||
@ -70,8 +66,7 @@ Note: A description of the ZeroMQ Message Transport Protocol (ZMTP) which is
|
||||
used by the TCP transport can be found at <http://rfc.zeromq.org/spec:23>
|
||||
|
||||
|
||||
HWM
|
||||
---
|
||||
== HWM
|
||||
|
||||
For the TCP transport, the high water mark (HWM) mechanism works in conjunction
|
||||
with the TCP socket buffers handled at OS level.
|
||||
@ -93,8 +88,7 @@ Obviously the same considerations apply for the receive HWM (see ZMQ_RCVHWM).
|
||||
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
== EXAMPLES
|
||||
.Assigning a local address to a socket
|
||||
----
|
||||
// TCP port 5555 on all available interfaces
|
||||
@ -125,18 +119,16 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_pgm[7]
|
||||
linkzmq:zmq_ipc[7]
|
||||
linkzmq:zmq_inproc[7]
|
||||
linkzmq:zmq_vmci[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_pgm.adoc[zmq_pgm]
|
||||
* xref:zmq_ipc.adoc[zmq_ipc]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,66 +0,0 @@
|
||||
zmq_term(3)
|
||||
===========
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
zmq_term - terminate 0MQ context
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
*int zmq_term (void '*context');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
The _zmq_term()_ function shall terminate the 0MQ context 'context'.
|
||||
|
||||
Context termination is performed in the following steps:
|
||||
|
||||
1. Any blocking operations currently in progress on sockets open within
|
||||
'context' shall return immediately with an error code of ETERM. With the
|
||||
exception of _zmq_close()_, any further operations on sockets open within
|
||||
'context' shall fail with an error code of ETERM.
|
||||
|
||||
2. After interrupting all blocking calls, _zmq_term()_ shall _block_ until the
|
||||
following conditions are satisfied:
|
||||
|
||||
* All sockets open within 'context' have been closed with _zmq_close()_.
|
||||
|
||||
* For each socket within 'context', all messages sent by the application
|
||||
with _zmq_send()_ have either been physically transferred to a network
|
||||
peer, or the socket's linger period set with the _ZMQ_LINGER_ socket
|
||||
option has expired.
|
||||
|
||||
For further details regarding socket linger behaviour refer to the _ZMQ_LINGER_
|
||||
option in linkzmq:zmq_setsockopt[3].
|
||||
|
||||
This function is deprecated by linkzmq:zmq_ctx_term[3].
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
The _zmq_term()_ function shall return zero if successful. Otherwise it shall
|
||||
return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
*EFAULT*::
|
||||
The provided 'context' was invalid.
|
||||
*EINTR*::
|
||||
Termination was interrupted by a signal. It can be restarted if needed.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
linkzmq:zmq_init[3]
|
||||
linkzmq:zmq_close[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
@ -1,14 +1,11 @@
|
||||
zmq_timers(3)
|
||||
============
|
||||
= zmq_timers(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_timers - helper functions for cross-platform timers callbacks
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
|
||||
*typedef void(zmq_timer_fn) (int 'timer_id', void *'arg');*
|
||||
|
||||
@ -29,8 +26,7 @@ SYNOPSIS
|
||||
*int zmq_timers_execute (void *'timers');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_timers_*_ functions provide cross-platform access to timers callbacks.
|
||||
Once a timer has been registered, it will repeat at the specified interval until
|
||||
it gets manually cancelled. To run the callbacks, _zmq_timers_execute_ must be
|
||||
@ -69,14 +65,12 @@ _zmq_timers_execute_ will run callbacks of all expired timers from the instance
|
||||
_timers_.
|
||||
|
||||
|
||||
THREAD SAFETY
|
||||
-------------
|
||||
== THREAD SAFETY
|
||||
Like most other 0MQ objects, timers are not thread-safe. All operations must
|
||||
be called from the same thread. Otherwise, behaviour is undefined.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
_zmq_timers_new_ always returns a valid pointer to a poller.
|
||||
|
||||
All functions that return an int, return -1 in case of a failure. In that case,
|
||||
@ -88,8 +82,7 @@ timer registered with _timers_ expires, or -1 if there are no timers left.
|
||||
All other functions return 0 in case of a successful execution.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
On _zmq_timers_destroy_, _zmq_poller_cancel_, _zmq_timers_set_interval_,
|
||||
_zmq_timers_reset_, zmq_timers_timeout_, and _zmq_timers_execute_:
|
||||
*EFAULT*::
|
||||
@ -107,8 +100,7 @@ On _zmq_poller_cancel_, _zmq_timers_set_interval_ and zmq_timers_timeout_:
|
||||
_timer_id_ did not exist or was already cancelled.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Add one timer with a simple callback that changes a boolean.
|
||||
----
|
||||
void handler (int timer_id_, void *arg_)
|
||||
@ -144,6 +136,10 @@ EXAMPLE
|
||||
// Wait until the end
|
||||
rc = msleep (zmq_timers_timeout (timers));
|
||||
assert (rc == 0);
|
||||
|
||||
// The handler will be executed
|
||||
rc = zmq_timers_execute (timers);
|
||||
assert (rc == 0);
|
||||
assert (timer_invoked);
|
||||
|
||||
rc = zmq_timers_destroy (&timers);
|
||||
@ -151,12 +147,10 @@ EXAMPLE
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_tipc(7)
|
||||
==========
|
||||
= zmq_tipc(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_tipc - 0MQ unicast transport using TIPC
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
TIPC is a cluster IPC protocol with a location transparent addressing scheme.
|
||||
|
||||
|
||||
ADDRESSING
|
||||
----------
|
||||
== ADDRESSING
|
||||
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
||||
'address'. The 'transport' specifies the underlying protocol to use. The
|
||||
'address' specifies the transport-specific address to connect to.
|
||||
@ -45,8 +41,7 @@ comma and the instance ID.
|
||||
The instance ID must be within the lower/upper range of a published port name
|
||||
for the endpoint to be valid.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
== EXAMPLES
|
||||
.Assigning a local address to a socket
|
||||
----
|
||||
// Publish TIPC service ID 5555
|
||||
@ -65,19 +60,17 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_tcp[7]
|
||||
linkzmq:zmq_pgm[7]
|
||||
linkzmq:zmq_ipc[7]
|
||||
linkzmq:zmq_inproc[7]
|
||||
linkzmq:zmq_vmci[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_tcp.adoc[zmq_tcp]
|
||||
* xref:zmq_pgm.adoc[zmq_pgm]
|
||||
* xref:zmq_ipc.adoc[zmq_ipc]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,25 +1,20 @@
|
||||
zmq_udp(7)
|
||||
==========
|
||||
= zmq_udp(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_udp - 0MQ UDP multicast and unicast transport
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
UDP is unreliable protocol transport of data over IP networks.
|
||||
UDP support both unicast and multicast communication.
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
UDP transport can only be used with the 'ZMQ_RADIO' and
|
||||
'ZMQ_DISH' socket types.
|
||||
|
||||
ADDRESSING
|
||||
----------
|
||||
== ADDRESSING
|
||||
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
||||
'address'. The 'transport' specifies the underlying protocol to use. The
|
||||
'address' specifies the transport-specific address to connect to.
|
||||
@ -57,8 +52,7 @@ A 'peer address' may be specified by either of the following:
|
||||
or using its hostname.
|
||||
* Multicast address in its numeric representation.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
== EXAMPLES
|
||||
.Binding a socket
|
||||
----
|
||||
// Unicast - UDP port 5555 on all available interfaces
|
||||
@ -99,18 +93,16 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_setsockopt[3]
|
||||
linkzmq:zmq_tcp[7]
|
||||
linkzmq:zmq_ipc[7]
|
||||
linkzmq:zmq_inproc[7]
|
||||
linkzmq:zmq_vmci[7]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_setsockopt.adoc[zmq_setsockopt]
|
||||
* xref:zmq_tcp.adoc[zmq_tcp]
|
||||
* xref:zmq_ipc.adoc[zmq_ipc]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_unbind(3)
|
||||
==============
|
||||
= zmq_unbind(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_unbind - Stop accepting connections on a socket
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
int zmq_unbind (void '*socket', const char '*endpoint');
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_unbind()_ function shall unbind a socket specified
|
||||
by the 'socket' argument from the endpoint specified by the 'endpoint'
|
||||
argument.
|
||||
@ -23,22 +19,20 @@ discarded. This means that after unbinding an endpoint it is possible to
|
||||
received messages originating from that same endpoint if they were already
|
||||
present in the incoming message queue before unbinding.
|
||||
|
||||
The 'endpoint' argument is as described in linkzmq:zmq_bind[3]
|
||||
The 'endpoint' argument is as described in xref:zmq_bind.adoc[zmq_bind]
|
||||
|
||||
Unbinding wild-card address from a socket
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
When wild-card `*` 'endpoint' (described in linkzmq:zmq_tcp[7],
|
||||
linkzmq:zmq_ipc[7], linkzmq:zmq_udp[7] and linkzmq:zmq_vmci[7]) was used in
|
||||
When wild-card `*` 'endpoint' (described in xref:zmq_tcp.adoc[zmq_tcp],
|
||||
xref:zmq_ipc.adoc[zmq_ipc], xref:zmq_udp.adoc[zmq_udp] and xref:zmq_vmci.adoc[zmq_vmci]) was used in
|
||||
_zmq_bind()_, the caller should use real 'endpoint' obtained from the
|
||||
ZMQ_LAST_ENDPOINT socket option to unbind this 'endpoint' from a socket.
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_unbind()_ function shall return zero if successful. Otherwise it
|
||||
shall return `-1` and set 'errno' to one of the values defined below.
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
*EINVAL*::
|
||||
The endpoint supplied is invalid.
|
||||
*ETERM*::
|
||||
@ -49,8 +43,7 @@ The provided 'socket' was invalid.
|
||||
The endpoint supplied was not previously bound.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
== EXAMPLES
|
||||
.Unbind a subscriber socket from a TCP transport
|
||||
----
|
||||
/* Create a ZMQ_SUB socket */
|
||||
@ -82,22 +75,19 @@ rc = zmq_unbind (socket, buf);
|
||||
assert (rc == 0);
|
||||
----
|
||||
|
||||
NOTE
|
||||
----
|
||||
== NOTE
|
||||
|
||||
Note that while the implementation is similar to _zmq_disconnect()_, the
|
||||
semantics are different and the two functions should not be used
|
||||
interchangeably. Bound sockets should be unbound, and connected sockets should
|
||||
be disconnected.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_socket[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_socket.adoc[zmq_socket]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_version(3)
|
||||
==============
|
||||
= zmq_version(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_version - report 0MQ library version
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*void zmq_version (int '*major', int '*minor', int '*patch');*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_version()_ function shall fill in the integer variables pointed to by
|
||||
the 'major', 'minor' and 'patch' arguments with the major, minor and patch level
|
||||
components of the 0MQ library version.
|
||||
@ -23,18 +19,15 @@ dynamically linking to the 0MQ library that wish to determine the actual
|
||||
version of the 0MQ library they are using.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
There is no return value.
|
||||
|
||||
|
||||
ERRORS
|
||||
------
|
||||
== ERRORS
|
||||
No errors are defined.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Printing out the version of the 0MQ library
|
||||
----
|
||||
int major, minor, patch;
|
||||
@ -43,12 +36,10 @@ printf ("Current 0MQ version is %d.%d.%d\n", major, minor, patch);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,22 +1,18 @@
|
||||
zmq_vmci(7)
|
||||
===========
|
||||
= zmq_vmci(7)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_vmci - 0MQ transport over virtual machine communicatios interface (VMCI) sockets
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
The VMCI transport passes messages between VMware virtual machines running on the same host,
|
||||
between virtual machine and the host and within virtual machines (inter-process transport like ipc).
|
||||
|
||||
NOTE: Communication between a virtual machine and the host is not supported on Mac OS X 10.9 and above.
|
||||
|
||||
|
||||
ADDRESSING
|
||||
----------
|
||||
== ADDRESSING
|
||||
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
||||
'address'. The 'transport' specifies the underlying protocol to use. The
|
||||
'address' specifies the transport-specific address to connect to.
|
||||
@ -56,8 +52,7 @@ a colon and the port number to use.
|
||||
A 'peer address' must be a CID of the peer.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
== EXAMPLES
|
||||
.Assigning a local address to a socket
|
||||
----
|
||||
// VMCI port 5555 on all available interfaces
|
||||
@ -79,19 +74,17 @@ assert (rc == 0);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_bind[3]
|
||||
linkzmq:zmq_connect[3]
|
||||
linkzmq:zmq_inproc[7]
|
||||
linkzmq:zmq_tcp[7]
|
||||
linkzmq:zmq_pgm[7]
|
||||
linkzmq:zmq_vmci[7]
|
||||
linkzmq:zmq_getsockopt[3]
|
||||
linkzmq:zmq[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_bind.adoc[zmq_bind]
|
||||
* xref:zmq_connect.adoc[zmq_connect]
|
||||
* xref:zmq_inproc.adoc[zmq_inproc]
|
||||
* xref:zmq_tcp.adoc[zmq_tcp]
|
||||
* xref:zmq_pgm.adoc[zmq_pgm]
|
||||
* xref:zmq_vmci.adoc[zmq_vmci]
|
||||
* xref:zmq_getsockopt.adoc[zmq_getsockopt]
|
||||
* xref:zmq.adoc[zmq]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_z85_decode(3)
|
||||
=================
|
||||
= zmq_z85_decode(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_z85_decode - decode a binary key from Z85 printable text
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*uint8_t *zmq_z85_decode (uint8_t *dest, const char *string);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_z85_decode()_ function shall decode 'string' into 'dest'.
|
||||
The length of 'string' shall be divisible by 5. 'dest' must be large
|
||||
enough for the decoded value (0.8 x strlen (string)).
|
||||
@ -21,14 +17,12 @@ enough for the decoded value (0.8 x strlen (string)).
|
||||
The encoding shall follow the ZMQ RFC 32 specification.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_z85_decode()_ function shall return 'dest' if successful, else it
|
||||
shall return NULL.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Decoding a CURVE key
|
||||
----
|
||||
const char decoded [] = "rq:rM>}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7";
|
||||
@ -37,15 +31,13 @@ zmq_z85_decode (public_key, decoded);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_z85_decode[3]
|
||||
linkzmq:zmq_curve_keypair[3]
|
||||
linkzmq:zmq_curve_public[3]
|
||||
linkzmq:zmq_curve[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_z85_encode.adoc[zmq_z85_encode]
|
||||
* xref:zmq_curve_keypair.adoc[zmq_curve_keypair]
|
||||
* xref:zmq_curve_public.adoc[zmq_curve_public]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -1,19 +1,15 @@
|
||||
zmq_z85_encode(3)
|
||||
=================
|
||||
= zmq_z85_encode(3)
|
||||
|
||||
|
||||
NAME
|
||||
----
|
||||
== NAME
|
||||
zmq_z85_encode - encode a binary key as Z85 printable text
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
== SYNOPSIS
|
||||
*char *zmq_z85_encode (char *dest, const uint8_t *data, size_t size);*
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
== DESCRIPTION
|
||||
The _zmq_z85_encode()_ function shall encode the binary block specified
|
||||
by 'data' and 'size' into a string in 'dest'. The size of the binary block
|
||||
must be divisible by 4. The 'dest' must have sufficient space for size * 1.25
|
||||
@ -23,14 +19,12 @@ characters plus a null terminator.
|
||||
The encoding shall follow the ZMQ RFC 32 specification.
|
||||
|
||||
|
||||
RETURN VALUE
|
||||
------------
|
||||
== RETURN VALUE
|
||||
The _zmq_z85_encode()_ function shall return 'dest' if successful, else it
|
||||
shall return NULL.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
== EXAMPLE
|
||||
.Encoding a CURVE key
|
||||
----
|
||||
#include <sodium.h>
|
||||
@ -44,15 +38,13 @@ puts (encoded);
|
||||
----
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkzmq:zmq_z85_decode[3]
|
||||
linkzmq:zmq_curve_keypair[3]
|
||||
linkzmq:zmq_curve_public[3]
|
||||
linkzmq:zmq_curve[7]
|
||||
== SEE ALSO
|
||||
* xref:zmq_z85_decode.adoc[zmq_z85_decode]
|
||||
* xref:zmq_curve_keypair.adoc[zmq_curve_keypair]
|
||||
* xref:zmq_curve_public.adoc[zmq_curve_public]
|
||||
* xref:zmq_curve.adoc[zmq_curve]
|
||||
|
||||
|
||||
AUTHORS
|
||||
-------
|
||||
== AUTHORS
|
||||
This page was written by the 0MQ community. To make a change please
|
||||
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|
||||
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|
@ -14,7 +14,7 @@
|
||||
/* Version macros for compile-time API version detection */
|
||||
#define ZMQ_VERSION_MAJOR 4
|
||||
#define ZMQ_VERSION_MINOR 3
|
||||
#define ZMQ_VERSION_PATCH 5
|
||||
#define ZMQ_VERSION_PATCH 6
|
||||
|
||||
#define ZMQ_MAKE_VERSION(major, minor, patch) \
|
||||
((major) *10000 + (minor) *100 + (patch))
|
||||
|
@ -1,4 +1,4 @@
|
||||
zeromq (4.3.5-0.1) UNRELEASED; urgency=low
|
||||
zeromq (4.3.6-0.1) UNRELEASED; urgency=low
|
||||
|
||||
* Initial packaging.
|
||||
|
||||
|
@ -13,7 +13,7 @@ Build-Depends: debhelper (>= 9),
|
||||
libgnutls28-dev | libgnutls-dev,
|
||||
libbsd-dev,
|
||||
pkg-config,
|
||||
asciidoc-base | asciidoc, xmlto,
|
||||
asciidoctor,
|
||||
Standards-Version: 3.9.8
|
||||
Homepage: http://www.zeromq.org/
|
||||
|
||||
|
@ -2,11 +2,11 @@ Format: 3.0 (quilt)
|
||||
Source: zeromq
|
||||
Binary: libzmq5, libzmq3-dev, libzmq5-dbg
|
||||
Architecture: any
|
||||
Version: 4.3.5-0.1
|
||||
Version: 4.3.6-0.1
|
||||
Maintainer: libzmq Developers <zeromq-dev@lists.zeromq.org>
|
||||
Homepage: http://www.zeromq.org/
|
||||
Standards-Version: 3.9.8
|
||||
Build-Depends: debhelper (>= 9), dh-autoreconf, libkrb5-dev, libpgm-dev, libnorm-dev, libsodium-dev, libunwind-dev | libunwind8-dev | libunwind7-dev, libnss3-dev, libgnutls28-dev | libgnutls-dev, libbsd-dev, pkg-config, asciidoc-base | asciidoc, xmlto
|
||||
Build-Depends: debhelper (>= 9), dh-autoreconf, libkrb5-dev, libpgm-dev, libnorm-dev, libsodium-dev, libunwind-dev | libunwind8-dev | libunwind7-dev, libnss3-dev, libgnutls28-dev | libgnutls-dev, libbsd-dev, pkg-config, asciidoctor
|
||||
Package-List:
|
||||
libzmq3-dev deb libdevel optional arch=any
|
||||
libzmq5 deb libs optional arch=any
|
||||
|
@ -10,7 +10,7 @@
|
||||
%endif
|
||||
%define lib_name libzmq5
|
||||
Name: zeromq
|
||||
Version: 4.3.5
|
||||
Version: 4.3.6
|
||||
Release: 1%{?dist}
|
||||
Summary: The ZeroMQ messaging library
|
||||
Group: Development/Libraries/C and C++
|
||||
@ -67,7 +67,18 @@ BuildRequires: gnutls-devel
|
||||
%else
|
||||
%define TLS no
|
||||
%endif
|
||||
BuildRequires: gcc, make, gcc-c++, libstdc++-devel, asciidoc, xmlto
|
||||
%if 0%{?rhel_version}
|
||||
%if 0%{?rhel_version} >= 800
|
||||
# note1: on OBS the RHEL7 target for some reason is unable to find the asciidoctor package, so on RHEL7 docs are not built
|
||||
# note2: on RHEL8/Centos8 the asciidoctor package depends from the ruby module; this might require some extra config on the
|
||||
# build farm where this .spec file is used
|
||||
BuildRequires: asciidoctor
|
||||
%endif
|
||||
%else
|
||||
# on non-RHEL targets, listing asciidoctor in BuildRequires works just fine:
|
||||
BuildRequires: rubygem(asciidoctor)
|
||||
%endif
|
||||
BuildRequires: gcc, make, gcc-c++, libstdc++-devel
|
||||
Requires: libstdc++
|
||||
|
||||
%ifarch pentium3 pentium4 athlon i386 i486 i586 i686 x86_64
|
||||
|
@ -223,6 +223,10 @@ uint64_t zmq::clock_t::rdtsc ()
|
||||
((13 & 15) << 3) | // crm
|
||||
((0 & 7) << 0)); // op2
|
||||
return _ReadStatusReg (pmccntr_el0);
|
||||
#elif (defined(_WIN32) && defined(__GNUC__) && defined(__aarch64__))
|
||||
uint64_t val;
|
||||
__asm__ volatile("mrs %0, pmccntr_el0" : "=r"(val));
|
||||
return val;
|
||||
#elif (defined __GNUC__ && (defined __i386__ || defined __x86_64__))
|
||||
uint32_t low, high;
|
||||
__asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
|
||||
|
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