From 8e61b98c5e2943b149c825310b24e714a6127072 Mon Sep 17 00:00:00 2001 From: Martin Lucina Date: Mon, 23 Jan 2012 08:53:41 +0100 Subject: Imported Upstream version 2.1.4 --- ChangeLog | 114 ++ Makefile.am | 9 +- Makefile.in | 6 +- NEWS | 22 +- builds/msvc/Makefile.in | 1 + configure | 132 +-- configure.in | 58 +- doc/Makefile.am | 6 +- doc/Makefile.in | 9 +- doc/zmq.7 | 6 +- doc/zmq.html | 846 ++++++++++++++ doc/zmq_bind.3 | 6 +- doc/zmq_bind.html | 746 ++++++++++++ doc/zmq_close.3 | 6 +- doc/zmq_close.html | 645 +++++++++++ doc/zmq_connect.3 | 6 +- doc/zmq_connect.html | 732 ++++++++++++ doc/zmq_cpp.7 | 6 +- doc/zmq_cpp.html | 765 +++++++++++++ doc/zmq_device.3 | 6 +- doc/zmq_device.html | 736 ++++++++++++ doc/zmq_epgm.7 | 6 +- doc/zmq_epgm.html | 745 ++++++++++++ doc/zmq_errno.3 | 6 +- doc/zmq_errno.html | 634 ++++++++++ doc/zmq_getsockopt.3 | 6 +- doc/zmq_getsockopt.html | 1713 ++++++++++++++++++++++++++++ doc/zmq_init.3 | 6 +- doc/zmq_init.html | 635 +++++++++++ doc/zmq_inproc.7 | 6 +- doc/zmq_inproc.html | 669 +++++++++++ doc/zmq_ipc.7 | 6 +- doc/zmq_ipc.html | 662 +++++++++++ doc/zmq_msg_close.3 | 6 +- doc/zmq_msg_close.html | 638 +++++++++++ doc/zmq_msg_copy.3 | 6 +- doc/zmq_msg_copy.html | 647 +++++++++++ doc/zmq_msg_data.3 | 6 +- doc/zmq_msg_data.html | 633 ++++++++++ doc/zmq_msg_init.3 | 6 +- doc/zmq_msg_init.html | 656 +++++++++++ doc/zmq_msg_init_data.3 | 6 +- doc/zmq_msg_init_data.html | 669 +++++++++++ doc/zmq_msg_init_size.3 | 6 +- doc/zmq_msg_init_size.html | 656 +++++++++++ doc/zmq_msg_move.3 | 6 +- doc/zmq_msg_move.html | 636 +++++++++++ doc/zmq_msg_size.3 | 6 +- doc/zmq_msg_size.html | 633 ++++++++++ doc/zmq_pgm.7 | 6 +- doc/zmq_pgm.html | 745 ++++++++++++ doc/zmq_poll.3 | 6 +- doc/zmq_poll.html | 755 ++++++++++++ doc/zmq_recv.3 | 6 +- doc/zmq_recv.html | 738 ++++++++++++ doc/zmq_send.3 | 6 +- doc/zmq_send.html | 744 ++++++++++++ doc/zmq_setsockopt.3 | 6 +- doc/zmq_setsockopt.html | 1603 ++++++++++++++++++++++++++ doc/zmq_socket.3 | 6 +- doc/zmq_socket.html | 1416 +++++++++++++++++++++++ doc/zmq_strerror.3 | 6 +- doc/zmq_strerror.html | 634 ++++++++++ doc/zmq_tcp.7 | 6 +- doc/zmq_tcp.html | 755 ++++++++++++ doc/zmq_term.3 | 6 +- doc/zmq_term.html | 672 +++++++++++ doc/zmq_version.3 | 6 +- doc/zmq_version.html | 632 ++++++++++ foreign/openpgm/Makefile.am | 8 + foreign/openpgm/Makefile.in | 583 ++++++++++ foreign/openpgm/libpgm-5.1.114~dfsg.tar.gz | Bin 1051807 -> 0 bytes foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz | Bin 0 -> 1054630 bytes include/zmq.h | 2 +- perf/Makefile.in | 1 + src/Makefile.in | 1 + src/platform.hpp.in | 21 - tests/Makefile.in | 1 + zeromq.spec | 10 +- 79 files changed, 24282 insertions(+), 272 deletions(-) create mode 100644 doc/zmq.html create mode 100644 doc/zmq_bind.html create mode 100644 doc/zmq_close.html create mode 100644 doc/zmq_connect.html create mode 100644 doc/zmq_cpp.html create mode 100644 doc/zmq_device.html create mode 100644 doc/zmq_epgm.html create mode 100644 doc/zmq_errno.html create mode 100644 doc/zmq_getsockopt.html create mode 100644 doc/zmq_init.html create mode 100644 doc/zmq_inproc.html create mode 100644 doc/zmq_ipc.html create mode 100644 doc/zmq_msg_close.html create mode 100644 doc/zmq_msg_copy.html create mode 100644 doc/zmq_msg_data.html create mode 100644 doc/zmq_msg_init.html create mode 100644 doc/zmq_msg_init_data.html create mode 100644 doc/zmq_msg_init_size.html create mode 100644 doc/zmq_msg_move.html create mode 100644 doc/zmq_msg_size.html create mode 100644 doc/zmq_pgm.html create mode 100644 doc/zmq_poll.html create mode 100644 doc/zmq_recv.html create mode 100644 doc/zmq_send.html create mode 100644 doc/zmq_setsockopt.html create mode 100644 doc/zmq_socket.html create mode 100644 doc/zmq_strerror.html create mode 100644 doc/zmq_tcp.html create mode 100644 doc/zmq_term.html create mode 100644 doc/zmq_version.html create mode 100644 foreign/openpgm/Makefile.am create mode 100644 foreign/openpgm/Makefile.in delete mode 100644 foreign/openpgm/libpgm-5.1.114~dfsg.tar.gz create mode 100644 foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz diff --git a/ChangeLog b/ChangeLog index ef98a4b..779b799 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,119 @@ # Generated by Makefile. Do not edit. +commit 3420eb7304ec05e2d7f36ac6f811abf2d0ba8bff +Author: Pieter Hintjens +Date: Wed Mar 30 14:09:19 2011 +0200 + + Updated NEWS for 2.1.4 + + NEWS | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit e621c48ba04fe5dbe77f416bed185a60273e5be0 +Author: Pieter Hintjens +Date: Mon Mar 28 20:52:22 2011 +0200 + + Restored HTML man pages output + + doc/Makefile.am | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +commit a18d55633378e6949a4dd619ade3bd434ec3614e +Author: Pieter Hintjens +Date: Sat Mar 26 09:53:06 2011 +0100 + + Added missing HWP/inproc change to 2.1.1 notes + + NEWS | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit 20e6dc44164bea5b247225dac8dcbf7630314f72 +Merge: 1a8d95d 55d6932 +Author: Mikko Koppanen +Date: Wed Mar 23 14:21:02 2011 +0000 + + Merge branch 'master' of https://github.com/zeromq/zeromq2-1 + +commit 1a8d95da9eae484df2c3b6879b3c6f76b48a98cb +Author: Mikko Koppanen +Date: Wed Mar 23 14:20:57 2011 +0000 + + Fix make dist + + Makefile.am | 7 ++++++- + configure.in | 3 +++ + foreign/openpgm/Makefile.am | 4 +++- + 3 files changed, 12 insertions(+), 2 deletions(-) + +commit 55d6932031da03d1321e728a376a64217ecf0d61 +Author: Pieter Hintjens +Date: Wed Mar 23 11:45:38 2011 +0100 + + Upgraded OpenPGM to 5.1.115 + + NEWS | 5 +++++ + foreign/openpgm/libpgm-5.1.114~dfsg.tar.gz | Bin 1051807 -> 0 bytes + foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz | Bin 0 -> 1054630 bytes + 3 files changed, 5 insertions(+), 0 deletions(-) + +commit f392d73332d5642f17a85ffe337c7f45217f4124 +Author: Steven McCoy +Date: Wed Mar 23 14:55:00 2011 +0800 + + OpenPGM 5.1.115 to fix assertion with messages smaller than an IP header length. + + Signed-off-by: Steven McCoy + + configure.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 4c988d321a60279bf324140c539b6e586d5c29d2 +Author: Pieter Hintjens +Date: Tue Mar 22 22:31:30 2011 +0100 + + Prepared for 2.1.4 release + + NEWS | 11 +++++++++++ + include/zmq.h | 2 +- + 2 files changed, 12 insertions(+), 1 deletions(-) + +commit 34b7f54b0fa6e7884a76792633ca66f176d25906 +Merge: b10138f 91bdf04 +Author: Pieter Hintjens +Date: Tue Mar 22 22:29:12 2011 +0100 + + Merge branch 'openpgm-no-artifact' of https://github.com/mkoppanen/zeromq2-1 into mkoppanen-openpgm-no-artifact + +commit 91bdf04ac5d70c265efe44ae9462c403ec8a93e7 +Author: Mikko Koppanen +Date: Tue Mar 22 09:21:05 2011 +0000 + + Make sure that OpenPGM artifacts are not installed during ZeroMQ installation and remove unnecessary OpenPGM build defines + + .gitignore | 1 + + Makefile.am | 2 +- + configure.in | 53 +++--------------------------------------- + foreign/openpgm/Makefile.am | 6 +++++ + 4 files changed, 12 insertions(+), 50 deletions(-) + +commit b10138f6ec803b9b616c483a7792fb5ed4e9ccc6 +Author: Pieter Hintjens +Date: Mon Mar 21 21:08:23 2011 +0100 + + Fixed RHAT packaging for removed devices + + builds/redhat/zeromq.spec | 8 +------- + 1 files changed, 1 insertions(+), 7 deletions(-) + +commit 3c0180fbda42d04659268e50241ca75c1668d01e +Author: Pieter Hintjens +Date: Mon Mar 21 14:05:48 2011 +0100 + + Fixed error in OpenPGM news + + NEWS | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + commit 31d8b7f74daa3f094347876db2774112d80611fe Author: Pieter Hintjens Date: Mon Mar 21 10:08:42 2011 +0100 diff --git a/Makefile.am b/Makefile.am index 9fa7001..1e4a404 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,12 @@ ACLOCAL_AMFLAGS = -I config -SUBDIRS = $(pgm_srcdir) src doc perf tests -DIST_SUBDIRS = src doc perf tests builds/msvc +if BUILD_PGM +SUBDIRS = foreign/openpgm src doc perf tests +else +SUBDIRS = src doc perf tests +endif + +DIST_SUBDIRS = foreign/openpgm src doc perf tests builds/msvc EXTRA_DIST = \ autogen.sh \ diff --git a/Makefile.in b/Makefile.in index c85fd32..7ce18c2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -230,6 +230,7 @@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pgm_basename = @pgm_basename@ pgm_srcdir = @pgm_srcdir@ +pgm_subdir = @pgm_subdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -243,8 +244,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I config -SUBDIRS = $(pgm_srcdir) src doc perf tests -DIST_SUBDIRS = src doc perf tests builds/msvc +@BUILD_PGM_FALSE@SUBDIRS = src doc perf tests +@BUILD_PGM_TRUE@SUBDIRS = foreign/openpgm src doc perf tests +DIST_SUBDIRS = foreign/openpgm src doc perf tests builds/msvc EXTRA_DIST = \ autogen.sh \ version.sh \ diff --git a/NEWS b/NEWS index b081165..a0151b6 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,19 @@ +0MQ version 2.1.4 (Stable), released on 2011/03/30 +================================================== + +Bug fixes +--------- + +* Fix to OpenPGM which was asserting on small messages (Steven McCoy). + +Changes +------- + +* Upgraded OpenPGM to version 5.1.115 (Pieter Hintjens). + +* OpenPGM build changed to not install OpenPGM artifacts. + + 0MQ version 2.1.3 (Stable), released on 2011/03/21 ================================================== @@ -10,9 +26,6 @@ Bug fixes * Fix to PUB sockets, which would sometimes deliver tail frames of a multipart message to new subscribers (Martin Sustrik). -* Re-add PGM_TXW_MAX_RTE in order to have rate limiting on pgm transport - over OpenPGM (Steven McCoy). - * Windows build was broken due to EPROTONOSUPPORT not being defined. This has now been fixed (Martin Sustrik). @@ -92,6 +105,9 @@ New functionality * If memory is exhausted, 0MQ warns with an explicit message before aborting the process. +* Size of inproc HWM and SWAP is sum of peers' HWMs and SWAPs (Douglas + Greager, Martin Sustrik). + Bug fixes --------- diff --git a/builds/msvc/Makefile.in b/builds/msvc/Makefile.in index c3ba84f..a841118 100644 --- a/builds/msvc/Makefile.in +++ b/builds/msvc/Makefile.in @@ -175,6 +175,7 @@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pgm_basename = @pgm_basename@ pgm_srcdir = @pgm_srcdir@ +pgm_subdir = @pgm_subdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff --git a/configure b/configure index 8a02da6..9bfd5f4 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for zeromq 2.1.3. +# Generated by GNU Autoconf 2.67 for zeromq 2.1.4. # # Report bugs to . # @@ -701,8 +701,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='zeromq' PACKAGE_TARNAME='zeromq' -PACKAGE_VERSION='2.1.3' -PACKAGE_STRING='zeromq 2.1.3' +PACKAGE_VERSION='2.1.4' +PACKAGE_STRING='zeromq 2.1.4' PACKAGE_BUGREPORT='zeromq-dev@lists.zeromq.org' PACKAGE_URL='' @@ -754,9 +754,10 @@ ON_MINGW_FALSE ON_MINGW_TRUE BUILD_PGM_FALSE BUILD_PGM_TRUE +pgm_basename subdirs pgm_srcdir -pgm_basename +pgm_subdir INSTALL_MAN_FALSE INSTALL_MAN_TRUE BUILD_DOC_FALSE @@ -1454,7 +1455,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures zeromq 2.1.3 to adapt to many kinds of systems. +\`configure' configures zeromq 2.1.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1524,7 +1525,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of zeromq 2.1.3:";; + short | recursive ) echo "Configuration of zeromq 2.1.4:";; esac cat <<\_ACEOF @@ -1634,7 +1635,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -zeromq configure 2.1.3 +zeromq configure 2.1.4 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2389,7 +2390,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by zeromq $as_me 2.1.3, which was +It was created by zeromq $as_me 2.1.4, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ @@ -3208,7 +3209,7 @@ fi # Define the identity of the package. PACKAGE='zeromq' - VERSION='2.1.3' + VERSION='2.1.4' cat >>confdefs.h <<_ACEOF @@ -6283,13 +6284,13 @@ if test "${lt_cv_nm_interface+set}" = set; then : else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:6286: $ac_compile\"" >&5) + (eval echo "\"\$as_me:6287: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:6289: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:6290: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:6292: output\"" >&5) + (eval echo "\"\$as_me:6293: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -7492,7 +7493,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 7495 "configure"' > conftest.$ac_ext + echo '#line 7496 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -9516,11 +9517,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9519: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9520: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9523: \$? = $ac_status" >&5 + echo "$as_me:9524: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9855,11 +9856,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9858: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9859: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9862: \$? = $ac_status" >&5 + echo "$as_me:9863: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9960,11 +9961,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9963: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9964: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9967: \$? = $ac_status" >&5 + echo "$as_me:9968: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10015,11 +10016,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10018: $lt_compile\"" >&5) + (eval echo "\"\$as_me:10019: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:10022: \$? = $ac_status" >&5 + echo "$as_me:10023: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12399,7 +12400,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12402 "configure" +#line 12403 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12495,7 +12496,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12498 "configure" +#line 12499 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14451,11 +14452,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14454: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14455: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14458: \$? = $ac_status" >&5 + echo "$as_me:14459: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -14550,11 +14551,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14553: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14554: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14557: \$? = $ac_status" >&5 + echo "$as_me:14558: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14602,11 +14603,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14605: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14606: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14609: \$? = $ac_status" >&5 + echo "$as_me:14610: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -18256,9 +18257,7 @@ fi # PGM extension ac_zmq_pgm_ext="no" -pgm_basename="libpgm-5.1.114~dfsg" - - +pgm_basename="libpgm-5.1.115~dfsg" # Check whether --with-pgm was given. @@ -18300,6 +18299,9 @@ $as_echo "$as_me: Unpacking ${pgm_basename}.tar.gz" >&6;} mkdir foreign/openpgm/build-staging/openpgm/pgm/config fi + pgm_subdir=build-staging/openpgm/pgm + + @@ -18313,6 +18315,8 @@ $as_echo "#define ZMQ_HAVE_OPENPGM 1" >>confdefs.h ac_zmq_pgm_ext="yes" fi + + # Set -Wall, -Werror and -pedantic ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -18544,69 +18548,12 @@ fi done -if test "x$with_pgm_ext" != "xno"; then - - # Check additional functions for PGM build - for ac_func in poll epoll_create pselect getopt vasprintf getprotobyname_r2 getprotobyname_r -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - if test "x$ac_cv_func_gettimeofday" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETTIMEOFDAY $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_getprotobyname_r2" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETPROTOBYNAME_R2 $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_poll" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_POLL $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_epoll_create" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_EPOLL $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_getifaddrs" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETIFADDRS $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_getopt" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETOPT $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_pselect" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_PSELECT $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_header_alloca_h" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_ALLOCA_H $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_c_compiler_gnu" = "xno"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_ISO_VARARGS $LIBZMQ_EXTRA_CFLAGS" - else - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GNU_VARARGS $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_vasprintf" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_VASPRINTF $LIBZMQ_EXTRA_CFLAGS" - fi - case "${host_cpu}" in - i*86|x86_64|amd64|*sparc*) - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_TSC -DCONFIG_HAVE_RTC -DCONFIG_HAVE_HPET $LIBZMQ_EXTRA_CFLAGS" - ;; - *sparc*|s390*) - ;; - esac -fi - # Subst LIBZMQ_EXTRA_CFLAGS & CXXFLAGS & LDFLAGS -ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile perf/Makefile src/libzmq.pc builds/msvc/Makefile tests/Makefile" +ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile perf/Makefile src/libzmq.pc builds/msvc/Makefile tests/Makefile foreign/openpgm/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -19154,7 +19101,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by zeromq $as_me 2.1.3, which was +This file was extended by zeromq $as_me 2.1.4, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19220,7 +19167,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -zeromq config.status 2.1.3 +zeromq config.status 2.1.4 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" @@ -19711,6 +19658,7 @@ do "src/libzmq.pc") CONFIG_FILES="$CONFIG_FILES src/libzmq.pc" ;; "builds/msvc/Makefile") CONFIG_FILES="$CONFIG_FILES builds/msvc/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "foreign/openpgm/Makefile") CONFIG_FILES="$CONFIG_FILES foreign/openpgm/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac diff --git a/configure.in b/configure.in index 1d85fa9..8679c90 100644 --- a/configure.in +++ b/configure.in @@ -272,9 +272,7 @@ AC_C_VOLATILE # PGM extension ac_zmq_pgm_ext="no" -pgm_basename="libpgm-5.1.114~dfsg" - -AC_SUBST(pgm_basename) +pgm_basename="libpgm-5.1.115~dfsg" AC_ARG_WITH([pgm], [AS_HELP_STRING([--with-pgm], [build libzmq with PGM extension [default=no]])], @@ -310,6 +308,9 @@ if test "x$with_pgm_ext" != "xno"; then mkdir foreign/openpgm/build-staging/openpgm/pgm/config fi + pgm_subdir=build-staging/openpgm/pgm + AC_SUBST(pgm_subdir) + AC_SUBST(pgm_srcdir) AC_CONFIG_SUBDIRS([foreign/openpgm/build-staging/openpgm/pgm/]) @@ -318,6 +319,8 @@ if test "x$with_pgm_ext" != "xno"; then ac_zmq_pgm_ext="yes" fi +AC_SUBST(pgm_basename) + # Set -Wall, -Werror and -pedantic AC_LANG_PUSH([C++]) @@ -341,52 +344,6 @@ AC_TYPE_SIGNAL AC_CHECK_FUNCS(perror gettimeofday memset socket getifaddrs freeifaddrs) AC_CHECK_HEADERS([alloca.h]) -if test "x$with_pgm_ext" != "xno"; then - - # Check additional functions for PGM build - AC_CHECK_FUNCS(poll epoll_create pselect getopt vasprintf getprotobyname_r2 getprotobyname_r) - - if test "x$ac_cv_func_gettimeofday" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETTIMEOFDAY $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_getprotobyname_r2" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETPROTOBYNAME_R2 $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_poll" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_POLL $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_epoll_create" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_EPOLL $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_getifaddrs" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETIFADDRS $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_getopt" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GETOPT $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_pselect" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_PSELECT $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_header_alloca_h" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_ALLOCA_H $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_c_compiler_gnu" = "xno"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_ISO_VARARGS $LIBZMQ_EXTRA_CFLAGS" - else - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_GNU_VARARGS $LIBZMQ_EXTRA_CFLAGS" - fi - if test "x$ac_cv_func_vasprintf" = "xyes"; then - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_VASPRINTF $LIBZMQ_EXTRA_CFLAGS" - fi - case "${host_cpu}" in - i*86|x86_64|amd64|*sparc*) - LIBZMQ_EXTRA_CFLAGS="-DCONFIG_HAVE_TSC -DCONFIG_HAVE_RTC -DCONFIG_HAVE_HPET $LIBZMQ_EXTRA_CFLAGS" - ;; - *sparc*|s390*) - ;; - esac -fi - # Subst LIBZMQ_EXTRA_CFLAGS & CXXFLAGS & LDFLAGS AC_SUBST(LIBZMQ_EXTRA_CFLAGS) AC_SUBST(LIBZMQ_EXTRA_CXXFLAGS) @@ -394,6 +351,7 @@ AC_SUBST(LIBZMQ_EXTRA_LDFLAGS) AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile perf/Makefile src/libzmq.pc \ - builds/msvc/Makefile tests/Makefile]) + builds/msvc/Makefile tests/Makefile \ + foreign/openpgm/Makefile]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index d00014d..7408f10 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -11,6 +11,7 @@ MAN_DOC = $(MAN1) $(MAN3) $(MAN7) MAN_TXT = $(MAN1:%.1=%.txt) MAN_TXT += $(MAN3:%.3=%.txt) MAN_TXT += $(MAN7:%.7=%.txt) +MAN_HTML = $(MAN_TXT:%.txt=%.html) if INSTALL_MAN dist_man_MANS = $(MAN_DOC) @@ -26,8 +27,11 @@ MAINTAINERCLEANFILES = $(MAN_DOC) $(MAN_HTML) dist-hook : $(MAN_DOC) $(MAN_HTML) if BUILD_DOC -SUFFIXES=.txt .xml .1 .3 .7 +SUFFIXES=.html .txt .xml .1 .3 .7 +.txt.html: + $(AM_V_GEN)$(ASCIIDOC) -d manpage -b xhtml11 -f asciidoc.conf \ + -azmq_version=@PACKAGE_VERSION@ $< .txt.xml: $(AM_V_GEN)$(ASCIIDOC) -d manpage -b docbook -f asciidoc.conf \ -azmq_version=@PACKAGE_VERSION@ $< diff --git a/doc/Makefile.in b/doc/Makefile.in index 0d71c0e..35bf698 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -203,6 +203,7 @@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pgm_basename = @pgm_basename@ pgm_srcdir = @pgm_srcdir@ +pgm_subdir = @pgm_subdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -227,14 +228,15 @@ MAN7 = zmq.7 zmq_tcp.7 zmq_pgm.7 zmq_epgm.7 zmq_inproc.7 zmq_ipc.7 \ MAN_DOC = $(MAN1) $(MAN3) $(MAN7) MAN_TXT = $(MAN1:%.1=%.txt) $(MAN3:%.3=%.txt) $(MAN7:%.7=%.txt) +MAN_HTML = $(MAN_TXT:%.txt=%.html) @INSTALL_MAN_TRUE@dist_man_MANS = $(MAN_DOC) EXTRA_DIST = asciidoc.conf $(MAN_TXT) $(am__append_1) MAINTAINERCLEANFILES = $(MAN_DOC) $(MAN_HTML) -@BUILD_DOC_TRUE@SUFFIXES = .txt .xml .1 .3 .7 +@BUILD_DOC_TRUE@SUFFIXES = .html .txt .xml .1 .3 .7 all: all-am .SUFFIXES: -.SUFFIXES: .txt .xml .1 .3 .7 +.SUFFIXES: .html .txt .xml .1 .3 .7 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -519,6 +521,9 @@ uninstall-man: uninstall-man3 uninstall-man7 dist-hook : $(MAN_DOC) $(MAN_HTML) +@BUILD_DOC_TRUE@.txt.html: +@BUILD_DOC_TRUE@ $(AM_V_GEN)$(ASCIIDOC) -d manpage -b xhtml11 -f asciidoc.conf \ +@BUILD_DOC_TRUE@ -azmq_version=@PACKAGE_VERSION@ $< @BUILD_DOC_TRUE@.txt.xml: @BUILD_DOC_TRUE@ $(AM_V_GEN)$(ASCIIDOC) -d manpage -b docbook -f asciidoc.conf \ @BUILD_DOC_TRUE@ -azmq_version=@PACKAGE_VERSION@ $< diff --git a/doc/zmq.7 b/doc/zmq.7 index 61345fb..d7fa3be 100644 --- a/doc/zmq.7 +++ b/doc/zmq.7 @@ -2,12 +2,12 @@ .\" Title: zmq .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ" "7" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ" "7" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq.html b/doc/zmq.html new file mode 100644 index 0000000..b35c57e --- /dev/null +++ b/doc/zmq.html @@ -0,0 +1,846 @@ + + + + + +zmq(7) + + + + + +
+

SYNOPSIS

+
+

#include <zmq.h>

+

cc [flags] files -lzmq [libraries]

+
+

DESCRIPTION

+
+

The ØMQ lightweight messaging kernel is a library which extends the standard +socket interfaces with features traditionally provided by specialised +messaging middleware products. ØMQ sockets provide an abstraction of +asynchronous message queues, multiple messaging patterns, message +filtering (subscriptions), seamless access to multiple transport protocols +and more.

+

This documentation presents an overview of ØMQ concepts, describes how ØMQ +abstracts standard sockets and provides a reference manual for the functions +provided by the ØMQ library.

+

Context

+

Before using any ØMQ library functions the caller must initialise a ØMQ +context using zmq_init(). The following functions are provided to handle +initialisation and termination of a context:

+
+
+Initialise ØMQ context +
+
+

+ zmq_init(3) +

+
+
+Terminate ØMQ context +
+
+

+ zmq_term(3) +

+
+
+

Thread safety

+

A ØMQ 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.

+

Individual ØMQ sockets are not thread safe except in the case where full +memory barriers are issued when migrating a socket from one thread to another. +In practice this means applications can create a socket in one thread with +zmq_socket() and then pass it to a newly created thread as part of thread +initialization, for example via a structure passed as an argument to +pthread_create().

+

Multiple contexts

+

Multiple contexts may coexist within a single application. Thus, an +application can use ØMQ directly and at the same time make use of any number of +additional libraries or components which themselves make use of ØMQ as long as +the above guidelines regarding thread safety are adhered to.

+

Messages

+

A ØMQ message is a discrete unit of data passed between applications or +components of the same application. ØMQ messages have no internal structure and +from the point of view of ØMQ itself they are considered to be opaque binary +data.

+

The following functions are provided to work with messages:

+
+
+Initialise a message +
+
+

+ zmq_msg_init(3) + zmq_msg_init_size(3) + zmq_msg_init_data(3) +

+
+
+Release a message +
+
+

+ zmq_msg_close(3) +

+
+
+Access message content +
+
+

+ zmq_msg_data(3) + zmq_msg_size(3) +

+
+
+Message manipulation +
+
+

+ zmq_msg_copy(3) + zmq_msg_move(3) +

+
+
+

Sockets

+

ØMQ sockets present an abstraction of a asynchronous message queue, with the +exact queueing semantics depending on the socket type in use. See +zmq_socket(3) for the socket types provided.

+

The following functions are provided to work with sockets:

+
+
+Creating a socket +
+
+

+ zmq_socket(3) +

+
+
+Closing a socket +
+
+

+ zmq_close(3) +

+
+
+Manipulating socket options +
+
+

+ zmq_getsockopt(3) + zmq_setsockopt(3) +

+
+
+Establishing a message flow +
+
+

+ zmq_bind(3) + zmq_connect(3) +

+
+
+Sending and receiving messages +
+
+

+ zmq_send(3) + zmq_recv(3) +

+
+
+
Input/output multiplexing

ØMQ provides a mechanism for applications to multiplex input/output events over +a set containing both ØMQ sockets and standard sockets. This mechanism mirrors +the standard poll() system call, and is described in detail in +zmq_poll(3).

+

Transports

+

A ØMQ socket can use multiple different underlying transport mechanisms. +Each transport mechanism is suited to a particular purpose and has its own +advantages and drawbacks.

+

The following transport mechanisms are provided:

+
+
+Unicast transport using TCP +
+
+

+ zmq_tcp(7) +

+
+
+Reliable multicast transport using PGM +
+
+

+ zmq_pgm(7) +

+
+
+Local inter-process communication transport +
+
+

+ zmq_ipc(7) +

+
+
+Local in-process (inter-thread) communication transport +
+
+

+ zmq_inproc(7) +

+
+
+

Devices

+

ØMQ provides devices, which are building blocks that act as intermediate +nodes in complex messaging topologies. Devices can act as brokers that other +nodes connect to, proxies that connect through to other nodes, or any mix of +these two models.

+

You can start a device in an application thread, see zmq_device(3).

+
+

ERROR HANDLING

+
+

The ØMQ library functions handle errors using the standard conventions found on +POSIX systems. Generally, this means that upon failure a ØMQ library function +shall return either a NULL value (if returning a pointer) or a negative value +(if returning an integer), and the actual error code shall be stored in the +errno variable.

+

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 zmq_errno(3).

+

The zmq_strerror() function is provided to translate ØMQ-specific error codes +into error message strings; for details refer to zmq_strerror(3).

+
+

MISCELLANEOUS

+
+

The following miscellaneous functions are provided:

+
+
+Report ØMQ library version +
+
+

+ zmq_version(3) +

+
+
+
+

LANGUAGE BINDINGS

+
+

The ØMQ 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 ØMQ from other languages +shall refer to this documentation alongside any documentation provided by the +vendor of their language binding.

+

C++ language binding

+

The ØMQ distribution includes a C++ language binding, which is documented +separately in zmq_cpp(7).

+

Other language bindings

+

Other language bindings (Python, Ruby, Java and more) are provided by members +of the ØMQ community and pointers can be found on the ØMQ website.

+
+

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+

RESOURCES

+
+

Main web site: http://www.zeromq.org/

+

Report bugs to the ØMQ development mailing list: <zeromq-dev@lists.zeromq.org>

+
+

COPYING

+
+

Free use of this software is granted under the terms of the GNU Lesser General +Public License (LGPL). For details see the files COPYING and COPYING.LESSER +included with the ØMQ distribution.

+
+
+

+ + + diff --git a/doc/zmq_bind.3 b/doc/zmq_bind.3 index f4a637a..9ff1109 100644 --- a/doc/zmq_bind.3 +++ b/doc/zmq_bind.3 @@ -2,12 +2,12 @@ .\" Title: zmq_bind .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_BIND" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_BIND" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_bind.html b/doc/zmq_bind.html new file mode 100644 index 0000000..11b8762 --- /dev/null +++ b/doc/zmq_bind.html @@ -0,0 +1,746 @@ + + + + + +zmq_bind(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_bind (void *socket, const char *endpoint);

+
+

DESCRIPTION

+
+

The zmq_bind() function shall create an endpoint for accepting connections +and bind it to the socket referenced by the socket argument.

+

The endpoint argument is a string consisting of two parts as follows: +transport://address. The transport part specifies the underlying +transport protocol to use. The meaning of the address part is specific to +the underlying transport protocol selected.

+

The following transports are defined:

+
+
+inproc +
+
+

+local in-process (inter-thread) communication transport, see zmq_inproc(7) +

+
+
+ipc +
+
+

+local inter-process communication transport, see zmq_ipc(7) +

+
+
+tcp +
+
+

+unicast transport using TCP, see zmq_tcp(7) +

+
+
+pgm, epgm +
+
+

+reliable multicast transport using PGM, see zmq_pgm(7) +

+
+
+

With the exception of ZMQ_PAIR sockets, a single socket may be connected to +multiple endpoints using zmq_connect(), while simultaneously accepting +incoming connections from multiple endpoints bound to the socket using +zmq_bind(). Refer to zmq_socket(3) for a description of the exact +semantics involved when connecting or binding a socket to multiple endpoints.

+
+

RETURN VALUE

+
+

The zmq_bind() function shall return zero if successful. Otherwise it shall +return -1 and set errno to one of the values defined below.

+
+

ERRORS

+
+
+
+EPROTONOSUPPORT +
+
+

+The requested transport protocol is not supported. +

+
+
+ENOCOMPATPROTO +
+
+

+The requested transport protocol is not compatible with the socket type. +

+
+
+EADDRINUSE +
+
+

+The requested address is already in use. +

+
+
+EADDRNOTAVAIL +
+
+

+The requested address was not local. +

+
+
+ENODEV +
+
+

+The requested address specifies a nonexistent interface. +

+
+
+ETERM +
+
+

+The ØMQ context associated with the specified socket was terminated. +

+
+
+EFAULT +
+
+

+The provided socket was not valid (NULL). +

+
+
+EMTHREAD +
+
+

+No I/O thread is available to accomplish the task. +

+
+
+
+

EXAMPLE

+
+
+
Binding a publisher socket to an in-process and a TCP transport
+
+
/* Create a ZMQ_PUB socket */
+void *socket = zmq_socket (context, ZMQ_PUB);
+assert (socket);
+/* Bind it to a in-process transport with the address 'my_publisher' */
+int rc = zmq_bind (socket, "inproc://my_publisher");
+assert (rc == 0);
+/* Bind it to a TCP transport on port 5555 of the 'eth0' interface */
+rc = zmq_bind (socket, "tcp://eth0:5555");
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_close.3 b/doc/zmq_close.3 index 231ae96..520f0ac 100644 --- a/doc/zmq_close.3 +++ b/doc/zmq_close.3 @@ -2,12 +2,12 @@ .\" Title: zmq_close .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_CLOSE" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_CLOSE" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_close.html b/doc/zmq_close.html new file mode 100644 index 0000000..cc13445 --- /dev/null +++ b/doc/zmq_close.html @@ -0,0 +1,645 @@ + + + + + +zmq_close(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_close (void *socket);

+
+

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 +behaviour for discarding messages sent by the application with zmq_send() but +not yet physically transferred to the network depends on the value of the +ZMQ_LINGER socket option for the specified socket.

+
+ + + +
+
Note
+
The default setting of ZMQ_LINGER does not discard unsent messages; +this behaviour may cause the application to block when calling zmq_term(). +For details refer to zmq_setsockopt(3) and zmq_term(3).
+
+
+

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

+
+
+
+EFAULT +
+
+

+The provided socket was not valid (NULL). +

+
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_connect.3 b/doc/zmq_connect.3 index 5305f76..06435e8 100644 --- a/doc/zmq_connect.3 +++ b/doc/zmq_connect.3 @@ -2,12 +2,12 @@ .\" Title: zmq_connect .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_CONNECT" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_CONNECT" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_connect.html b/doc/zmq_connect.html new file mode 100644 index 0000000..daa8fa0 --- /dev/null +++ b/doc/zmq_connect.html @@ -0,0 +1,732 @@ + + + + + +zmq_connect(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_connect (void *socket, const char *endpoint);

+
+

DESCRIPTION

+
+

The zmq_connect() function shall connect the socket referenced by the +socket argument to the endpoint specified by the endpoint argument.

+

The endpoint argument is a string consisting of two parts as follows: +transport://address. The transport part specifies the underlying +transport protocol to use. The meaning of the address part is specific to +the underlying transport protocol selected.

+

The following transports are defined:

+
+
+inproc +
+
+

+local in-process (inter-thread) communication transport, see zmq_inproc(7) +

+
+
+ipc +
+
+

+local inter-process communication transport, see zmq_ipc(7) +

+
+
+tcp +
+
+

+unicast transport using TCP, see zmq_tcp(7) +

+
+
+pgm, epgm +
+
+

+reliable multicast transport using PGM, see zmq_pgm(7) +

+
+
+

With the exception of ZMQ_PAIR sockets, a single socket may be connected to +multiple endpoints using zmq_connect(), while simultaneously accepting +incoming connections from multiple endpoints bound to the socket using +zmq_bind(). Refer to zmq_socket(3) for a description of the exact +semantics involved when connecting or binding a socket to multiple endpoints.

+
+ + + +
+
Note
+
The connection will not be performed immediately but as needed by ØMQ. +Thus a successful invocation of zmq_connect() does not indicate that a +physical connection was or can actually be established.
+
+
+

RETURN VALUE

+
+

The zmq_connect() function shall return zero if successful. Otherwise it +shall return -1 and set errno to one of the values defined below.

+
+

ERRORS

+
+
+
+EPROTONOSUPPORT +
+
+

+The requested transport protocol is not supported. +

+
+
+ENOCOMPATPROTO +
+
+

+The requested transport protocol is not compatible with the socket type. +

+
+
+ETERM +
+
+

+The ØMQ context associated with the specified socket was terminated. +

+
+
+EFAULT +
+
+

+The provided socket was not valid (NULL). +

+
+
+EMTHREAD +
+
+

+No I/O thread is available to accomplish the task. +

+
+
+
+

EXAMPLE

+
+
+
Connecting a subscriber socket to an in-process and a TCP transport
+
+
/* Create a ZMQ_SUB socket */
+void *socket = zmq_socket (context, ZMQ_SUB);
+assert (socket);
+/* Connect it to an in-process transport with the address 'my_publisher' */
+int rc = zmq_connect (socket, "inproc://my_publisher");
+assert (rc == 0);
+/* Connect it to the host server001, port 5555 using a TCP transport */
+rc = zmq_connect (socket, "tcp://server001:5555");
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_cpp.7 b/doc/zmq_cpp.7 index 2b0494e..c61797e 100644 --- a/doc/zmq_cpp.7 +++ b/doc/zmq_cpp.7 @@ -2,12 +2,12 @@ .\" Title: zmq_cpp .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_CPP" "7" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_CPP" "7" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_cpp.html b/doc/zmq_cpp.html new file mode 100644 index 0000000..31aea45 --- /dev/null +++ b/doc/zmq_cpp.html @@ -0,0 +1,765 @@ + + + + + +zmq_cpp(7) + + + + + +
+

SYNOPSIS

+
+

#include <zmq.hpp>

+

c++ [flags] files -lzmq [libraries]

+
+

DESCRIPTION

+
+

This manual page describes how the ØMQ C++ language binding maps to the +underlying ØMQ C library functions.

+

All ØMQ constants defined by zmq.h are also available to the C++ language +binding.

+

The following classes are provided in the zmq namespace:

+

Context

+

The context_t class encapsulates functionality dealing with the +initialisation and termination of a ØMQ context.

+

Constructor

+
+
context_t::context_t(int io_threads)
+
+
+

Maps to the zmq_init() function, as described in zmq_init(3).

+

Destructor

+
+
context_t::~context_t(void)
+
+
+

Maps to the zmq_term() function, as described in zmq_term(3).

+

Methods

+

None.

+

Socket

+

The socket_t class encapsulates a ØMQ socket.

+

Constructor

+
+
socket_t::socket_t(context_t &context, int type)
+
+
+

Maps to the zmq_socket() function, as described in zmq_socket(3).

+

Destructor

+
+
socket_t::~socket_t(void)
+
+
+

Calls the zmq_close() function, as described in zmq_close(3).

+

Methods

+
+
void socket_t::getsockopt(int option_name, void *option_value, size_t +*option_len)
+
+
+

Maps to the zmq_getsockopt() function, as described in +zmq_getsockopt(3).

+
+
void socket_t::setsockopt(int option_name, const void *option_value, size_t +option_len)
+
+
+

Maps to the zmq_setsockopt() function, as described in +zmq_setsockopt(3).

+
+
void socket_t::bind(const char *endpoint)
+
+
+

Maps to the zmq_bind() function, as described in zmq_bind(3).

+
+
void socket_t::connect(const char *endpoint)
+
+
+

Maps to the zmq_connect() function, as described in zmq_connect(3).

+
+
bool socket_t::send(message_t &msg, int flags = 0)
+
+
+

Maps to the zmq_send() function, as described in zmq_send(3). +Returns true if message is successfully sent, false if it is not.

+
+
bool socket_t::recv(message_t *msg, int flags = 0)
+
+
+

Maps to the zmq_recv() function, as described in zmq_recv(3). +Returns true if message is successfully received, false if it is not.

+

Message

+

The zmq::message_t class encapsulates the zmq_msg_t structure and +functions to construct, destruct and manipulate ØMQ messages.

+

Constructor

+
+
message_t::message_t(void) +message_t::message_t(size_t size) +message_t::message_t(void *data, size_t size, free_fn *ffn)
+
+
+

These map to the zmq_msg_init(), zmq_msg_init_size() and +zmq_msg_init_data() functions, described in zmq_msg_init(3), +zmq_msg_init_size(3) and zmq_msg_init_data(3) respectively.

+

Destructor

+
+
message_t::~message_t(void)
+
+
+

Calls the zmq_msg_close() function, as described in zmq_msg_close(3).

+

Methods

+
+
void *message_t::data (void)
+
+
+

Maps to the zmq_msg_data() function, as described in zmq_msg_data(3).

+
+
size_t message_t::size (void)
+
+
+

Maps to the zmq_msg_size() function, as described in zmq_msg_size(3).

+
+
void message_t::copy (message_t *src)
+
+
+

Maps to the zmq_msg_copy() function, as described in zmq_msg_copy(3).

+
+
void message_t::move (message_t *src)
+
+
+

Maps to the zmq_msg_move() function, as described in zmq_msg_move(3).

+
+
message_t::rebuild(void) +message_t::rebuild(size_t size) +message_t::rebuild(void *data, size_t size, free_fn *ffn)
+
+
+

Equivalent to calling the zmq_msg_close() function followed by the +corresponding zmq_msg_init() function.

+

Input/output multiplexing

+
+
int poll (zmq_pollitem_t *items, int nitems, long timeout = -1)
+
+
+

The poll() function is a namespaced equivalent of the zmq_poll() function, +as described in zmq_poll(3).

+
+ + + +
+
Note
+
To obtain a ØMQ socket for use in a zmq_pollitem_t structure, you +should cast an instance of the socket_t class to (void *).
+
+
+

ERROR HANDLING

+
+

All errors reported by the underlying ØMQ C library functions are automatically +converted to exceptions by the C++ language binding. The zmq::error_t class +is derived from the std::exception class and uses the zmq_strerror() +function to convert the error code to human-readable string.

+
+

EXAMPLE

+
+
+
+
zmq::context_t ctx (1);
+zmq::socket_t s (ctx, ZMQ_PUB);
+s.connect ("tcp://192.168.0.115:5555");
+zmq::message_t msg (100);
+memset (msg.data (), 0, 100);
+s.send (msg);
+
+
+

SEE ALSO

+
+ +
+

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_device.3 b/doc/zmq_device.3 index e19c800..329360d 100644 --- a/doc/zmq_device.3 +++ b/doc/zmq_device.3 @@ -2,12 +2,12 @@ .\" Title: zmq_device .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_DEVICE" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_DEVICE" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_device.html b/doc/zmq_device.html new file mode 100644 index 0000000..21a2fbc --- /dev/null +++ b/doc/zmq_device.html @@ -0,0 +1,736 @@ + + + + + +zmq_device(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_device (int device, const void *frontend, const void *backend);

+
+

DESCRIPTION

+
+

The zmq_device() function starts a built-in ØMQ device. The device argument +is one of:

+
+
+ZMQ_QUEUE +
+
+

+ starts a queue device +

+
+
+ZMQ_FORWARDER +
+
+

+ starts a forwarder device +

+
+
+ZMQ_STREAMER +
+
+

+ starts a streamer device +

+
+
+

The device connects a frontend socket to a backend socket. Conceptually, data +flows from frontend to backend. Depending on the socket types, replies may flow +in the opposite direction.

+

Before calling zmq_device() you must set any socket options, and connect or +bind both frontend and backend sockets. The two conventional device models are:

+
+
+proxy +
+
+

+ bind frontend socket to an endpoint, and connect backend socket to + downstream components. A proxy device model does not require changes to + the downstream topology but that topology is static (any changes require + reconfiguring the device). +

+
+
+broker +
+
+

+ bind frontend socket to one endpoint and bind backend socket to a second + endpoint. Downstream components must now connect into the device. A broker + device model allows a dynamic downstream topology (components can come and + go at any time). +

+
+
+

zmq_device() runs in the current thread and returns only if/when the current +context is closed.

+
+

QUEUE DEVICE

+
+

ZMQ_QUEUE creates a shared queue that collects requests from a set of clients, +and distributes these fairly among a set of services. Requests are fair-queued +from frontend connections and load-balanced between backend connections. +Replies automatically return to the client that made the original request.

+

This device is part of the request-reply pattern. The frontend speaks to +clients and the backend speaks to services. You should use ZMQ_QUEUE with a +ZMQ_XREP socket for the frontend and a ZMQ_XREQ socket for the backend. +Other combinations are not documented.

+

Refer to zmq_socket(3) for a description of these socket types.

+
+

FORWARDER DEVICE

+
+

ZMQ_FORWARDER collects messages from a set of publishers and forwards these to +a set of subscribers. You will generally use this to bridge networks, e.g. read +on TCP unicast and forward on multicast.

+

This device is part of the publish-subscribe pattern. The frontend speaks to +publishers and the backend speaks to subscribers. You should use +ZMQ_FORWARDER with a ZMQ_SUB socket for the frontend and a ZMQ_PUB socket +for the backend. Other combinations are not documented.

+

Refer to zmq_socket(3) for a description of these socket types.

+
+

STREAMER DEVICE

+
+

ZMQ_STREAMER collects tasks from a set of pushers and forwards these to a set +of pullers. You will generally use this to bridge networks. Messages are +fair-queued from pushers and load-balanced to pullers.

+

This device is part of the pipeline pattern. The frontend speaks to pushers +and the backend speaks to pullers. You should use ZMQ_STREAMER with a +ZMQ_PULL socket for the frontend and a ZMQ_PUSH socket for the backend. +Other combinations are not documented.

+

Refer to zmq_socket(3) for a description of these socket types.

+
+

RETURN VALUE

+
+

The zmq_device() function always returns -1 and errno set to ETERM (the +ØMQ context associated with either of the specified sockets was terminated).

+
+

EXAMPLE

+
+
+
Creating a queue broker
+
+
//  Create frontend and backend sockets
+void *frontend = zmq_socket (context, ZMQ_XREP);
+assert (backend);
+void *backend = zmq_socket (context, ZMQ_XREQ);
+assert (frontend);
+//  Bind both sockets to TCP ports
+assert (zmq_bind (frontend, "tcp://*:5555") == 0);
+assert (zmq_bind (backend, "tcp://*:5556") == 0);
+//  Start a queue device
+zmq_device (ZMQ_QUEUE, frontend, backend);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Pieter Hintjens <ph@imatix.com>

+
+

RESOURCES

+
+

Main web site: http://www.zeromq.org/

+

Report bugs to the ØMQ development mailing list: <zeromq-dev@lists.zeromq.org>

+
+

COPYING

+
+

Free use of this software is granted under the terms of the GNU Lesser General +Public License (LGPL). For details see the files COPYING and COPYING.LESSER +included with the ØMQ distribution.

+
+
+

+ + + diff --git a/doc/zmq_epgm.7 b/doc/zmq_epgm.7 index 06cc456..1559950 100644 --- a/doc/zmq_epgm.7 +++ b/doc/zmq_epgm.7 @@ -2,12 +2,12 @@ .\" Title: zmq_pgm .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_PGM" "7" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_PGM" "7" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_epgm.html b/doc/zmq_epgm.html new file mode 100644 index 0000000..5506fa1 --- /dev/null +++ b/doc/zmq_epgm.html @@ -0,0 +1,745 @@ + + + + + +zmq_pgm(7) + + + + + +
+

SYNOPSIS

+
+

PGM (Pragmatic General Multicast) is a protocol for reliable multicast +transport of data over IP networks.

+
+

DESCRIPTION

+
+

ØMQ 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" where PGM datagrams are encapsulated inside +UDP datagrams (the epgm transport).

+

The pgm and epgm transports can only be used with the ZMQ_PUB and +ZMQ_SUB socket types.

+

Further, PGM sockets are rate limited by default and incur a performance +penalty when used over a loop-back interface. For details, refer to the +ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP options documented in +zmq_setsockopt(3).

+
+ + + +
+
Caution
+
The pgm transport implementation requires access to raw IP sockets. +Additional privileges may be required on some operating systems for this +operation. Applications not requiring direct interoperability with other PGM +implementations are encouraged to use the epgm transport instead which does +not require any special privileges.
+
+
+

ADDRESSING

+
+

A ØMQ address string consists of two parts as follows: +transport://endpoint. The transport part specifies the underlying +transport protocol to use. For the standard PGM protocol, transport shall be +set to pgm. For the "Encapsulated PGM" protocol transport shall be set to +epgm. The meaning of the endpoint part for both the pgm and epgm +transport is defined below.

+

Connecting a socket

+

When connecting a socket to a peer address using zmq_connect() with the pgm +or epgm transport, the endpoint shall be interpreted as an interface +followed by a semicolon, followed by a multicast address, followed by a colon +and a port number.

+

An interface may be specified by either of the following:

+
    +
  • +

    +The interface name as defined by the operating system. +

    +
  • +
  • +

    +The primary IPv4 address assigned to the interface, in it’s numeric + representation. +

    +
  • +
+
+ + + +
+
Note
+
Interface names are not standardised in any way and should be assumed to +be arbitrary and platform dependent. On Win32 platforms no short interface +names exist, thus only the primary IPv4 address may be used to specify an +interface.
+
+

A multicast address is specified by an IPv4 multicast address in it’s numeric +representation.

+
+

WIRE FORMAT

+
+

Consecutive PGM datagrams are interpreted by ØMQ as a single continuous stream +of data where ØMQ messages are not necessarily aligned with PGM datagram +boundaries and a single ØMQ message may span several PGM datagrams. This stream +of data consists of ØMQ messages encapsulated in frames as described in +zmq_tcp(7).

+

PGM datagram payload

+

The following ABNF grammar represents the payload of a single PGM datagram as +used by ØMQ:

+
+
+
datagram               = (offset data)
+offset                 = 2OCTET
+data                   = *OCTET
+
+

In order for late joining consumers to be able to identify message boundaries, +each PGM datagram payload starts with a 16-bit unsigned integer in network byte +order specifying either the offset of the first message frame in the datagram +or containing the value 0xFFFF if the datagram contains solely an +intermediate part of a larger message.

+

The following diagram illustrates the layout of a single PGM datagram payload:

+
+
+
+------------------+----------------------+
+| offset (16 bits) |         data         |
++------------------+----------------------+
+
+

The following diagram further illustrates how three example ØMQ frames are laid +out in consecutive PGM datagram payloads:

+
+
+
First datagram payload
++--------------+-------------+---------------------+
+| Frame offset |   Frame 1   |   Frame 2, part 1   |
+|    0x0000    | (Message 1) | (Message 2, part 1) |
++--------------+-------------+---------------------+
+
+Second datagram payload
++--------------+---------------------+
+| Frame offset |   Frame 2, part 2   |
+| 0xFFFF       | (Message 2, part 2) |
++--------------+---------------------+
+
+Third datagram payload
++--------------+----------------------------+-------------+
+| Frame offset |   Frame 2, final 8 bytes   |   Frame 3   |
+| 0x0008       | (Message 2, final 8 bytes) | (Message 3) |
++--------------+----------------------------+-------------+
+
+
+

EXAMPLE

+
+
+
Connecting a socket
+
+
/* Connecting to the multicast address 239.192.1.1, port 5555, */
+/* using the first Ethernet network interface on Linux */
+/* and the Encapsulated PGM protocol */
+rc = zmq_connect(socket, "epgm://eth0;239.192.1.1:5555");
+assert (rc == 0);
+/* Connecting to the multicast address 239.192.1.1, port 5555, */
+/* using the network interface with the address 192.168.1.1 */
+/* and the standard PGM protocol */
+rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555");
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_errno.3 b/doc/zmq_errno.3 index 9e9a688..407ca79 100644 --- a/doc/zmq_errno.3 +++ b/doc/zmq_errno.3 @@ -2,12 +2,12 @@ .\" Title: zmq_errno .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_ERRNO" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_ERRNO" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_errno.html b/doc/zmq_errno.html new file mode 100644 index 0000000..b84c35b --- /dev/null +++ b/doc/zmq_errno.html @@ -0,0 +1,634 @@ + + + + + +zmq_errno(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_errno (void);

+
+

DESCRIPTION

+
+

The zmq_errno() function shall retrieve the value of the errno variable for +the calling thread.

+

The zmq_errno() function is provided to assist users on non-POSIX systems who +are experiencing issues with retrieving the correct value of errno directly. +Specifically, users on Win32 systems whose application is using a different C +run-time library from the C run-time library in use by ØMQ will need to use +zmq_errno() for correct operation.

+
+ + + +
+
Important
+
Users not experiencing issues with retrieving the correct value of +errno should not use this function and should instead access the errno +variable directly.
+
+
+

RETURN VALUE

+
+

The zmq_errno() function shall return the value of the errno variable for +the calling thread.

+
+

ERRORS

+
+

No errors are defined.

+
+

SEE ALSO

+
+ +
+

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_getsockopt.3 b/doc/zmq_getsockopt.3 index 9ab4ec9..774dca8 100644 --- a/doc/zmq_getsockopt.3 +++ b/doc/zmq_getsockopt.3 @@ -2,12 +2,12 @@ .\" Title: zmq_getsockopt .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_GETSOCKOPT" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_GETSOCKOPT" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_getsockopt.html b/doc/zmq_getsockopt.html new file mode 100644 index 0000000..1c8af72 --- /dev/null +++ b/doc/zmq_getsockopt.html @@ -0,0 +1,1713 @@ + + + + + +zmq_getsockopt(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_getsockopt (void *socket, int option_name, void *option_value, size_t *option_len);

+
+

DESCRIPTION

+
+

The zmq_getsockopt() function shall retrieve the value for the option +specified by the option_name argument for the ØMQ socket pointed to by the +socket argument, and store it in the buffer pointed to by the option_value +argument. The option_len argument is the size in bytes of the buffer pointed +to by option_value; upon successful completion zmq_getsockopt() shall +modify the option_len argument to indicate the actual size of the option +value stored in the buffer.

+

The following options can be retrieved with the zmq_getsockopt() function:

+

ZMQ_TYPE: Retrieve socket type

+

The ZMQ_TYPE option shall retrieve the socket type for the specified +socket. The socket type is specified at socket creation time and +cannot be modified afterwards.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int +

+
+Option value unit +
+
+

+N/A +

+
+Default value +
+
+

+N/A +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_RCVMORE: More message parts to follow

+

The ZMQ_RCVMORE option shall return a boolean value indicating if the +multi-part message currently being read from the specified socket has more +message parts to follow. If there are no message parts to follow or if the +message currently being read is not a multi-part message a value of zero shall +be returned. Otherwise, a value of 1 shall be returned.

+

Refer to zmq_send(3) and zmq_recv(3) for a detailed description +of sending/receiving multi-part messages.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+boolean +

+
+Default value +
+
+

+N/A +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_HWM: Retrieve high water mark

+

The ZMQ_HWM option shall retrieve the high water mark for the specified +socket. The high water mark is a hard limit on the maximum number of +outstanding messages ØMQ shall queue in memory for any single peer that the +specified socket is communicating with.

+

If this limit has been reached the socket shall enter an exceptional state and +depending on the socket type, ØMQ shall take appropriate action such as +blocking or dropping sent messages. Refer to the individual socket descriptions +in zmq_socket(3) for details on the exact action taken for each socket +type.

+

The default ZMQ_HWM value of zero means "no limit".

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+messages +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_SWAP: Retrieve disk offload size

+

The ZMQ_SWAP option shall retrieve the disk offload (swap) size for the +specified socket. A socket which has ZMQ_SWAP set to a non-zero value may +exceed it’s high water mark; in this case outstanding messages shall be +offloaded to storage on disk rather than held in memory.

+

The value of ZMQ_SWAP defines the maximum size of the swap space in bytes.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+bytes +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_AFFINITY: Retrieve I/O thread affinity

+

The ZMQ_AFFINITY option shall retrieve the I/O thread affinity for newly +created connections on the specified socket.

+

Affinity determines which threads from the ØMQ I/O thread pool associated with +the socket’s context shall handle newly created connections. A value of zero +specifies no affinity, meaning that work shall be distributed fairly among all +ØMQ I/O threads in the thread pool. For non-zero values, the lowest bit +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 zmq_init(3) for details on allocating the number of I/O +threads for a specific context.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+N/A (bitmap) +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+N/A +

+
+

ZMQ_IDENTITY: Retrieve socket identity

+

The ZMQ_IDENTITY option shall retrieve the identity of the specified +socket. Socket identity determines if existing ØMQ infrastructure (message +queues, forwarding devices) shall be identified with a specific application +and persist across multiple runs of the application.

+

If the socket has no identity, each run of an application is completely +separate from other runs. However, with identity set the socket shall re-use +any existing ØMQ infrastructure configured by the previous run(s). Thus the +application may receive messages that were sent in the meantime, message +queue limits shall be shared with previous run(s) and so on.

+

Identity can be at least one byte and at most 255 bytes long. Identities +starting with binary zero are reserved for use by ØMQ infrastructure.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+binary data +

+
+Option value unit +
+
+

+N/A +

+
+Default value +
+
+

+NULL +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_RATE: Retrieve multicast data rate

+

The ZMQ_RATE option shall retrieve the maximum send or receive data rate for +multicast transports using the specified socket.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+kilobits per second +

+
+Default value +
+
+

+100 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_RECOVERY_IVL: Get multicast recovery interval

+

The ZMQ_RECOVERY_IVL option shall retrieve the recovery interval for +multicast transports using the specified socket. The recovery interval +determines the maximum time in seconds that a receiver can be absent from a +multicast group before unrecoverable data loss will occur.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+seconds +

+
+Default value +
+
+

+10 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_RECOVERY_IVL_MSEC: Get multicast recovery interval in milliseconds

+

The ZMQ_RECOVERY_IVL’_MSEC option shall retrieve the recovery interval, in +milliseconds, for multicast transports using the specified 'socket. The +recovery interval determines the maximum time in seconds that a receiver +can be absent from a multicast group before unrecoverable data loss will +occur.

+

For backward compatibility, the default value of ZMQ_RECOVERY_IVL_MSEC is +-1 indicating that the recovery interval should be obtained from the +ZMQ_RECOVERY_IVL option. However, if the ZMQ_RECOVERY_IVL_MSEC value is +not zero, then it will take precedence, and be used.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+milliseconds +

+
+Default value +
+
+

+-1 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_MCAST_LOOP: Control multicast loop-back

+

The ZMQ_MCAST_LOOP option controls whether data sent via multicast +transports can also be received by the sending host via loop-back. A value of +zero indicates that the loop-back functionality is disabled, while the default +value of 1 indicates that the loop-back functionality is enabled. Leaving +multicast loop-back enabled when it is not required can have a negative impact +on performance. Where possible, disable ZMQ_MCAST_LOOP in production +environments.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+boolean +

+
+Default value +
+
+

+1 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_SNDBUF: Retrieve kernel transmit buffer size

+

The ZMQ_SNDBUF option shall retrieve the underlying kernel transmit buffer +size for the specified socket. A value of zero means that the OS default is +in effect. For details refer to your operating system documentation for the +SO_SNDBUF socket option.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+bytes +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_RCVBUF: Retrieve kernel receive buffer size

+

The ZMQ_RCVBUF option shall retrieve the underlying kernel receive buffer +size for the specified socket. A value of zero means that the OS default is +in effect. For details refer to your operating system documentation for the +SO_RCVBUF socket option.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+bytes +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

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 +zmq_close(3), and further affects the termination of the socket’s +context with zmq_term(3). The following outlines the different +behaviours:

+
    +
  • +

    +The default value of -1 specifies an infinite linger period. Pending + messages shall not be discarded after a call to zmq_close(); attempting to + terminate the socket’s context with zmq_term() shall block until all + pending messages have been sent to a peer. +

    +
  • +
  • +

    +The value of 0 specifies no linger period. Pending messages shall be + discarded immediately when the socket is closed with zmq_close(). +

    +
  • +
  • +

    +Positive values specify an upper bound for the linger period in milliseconds. + Pending messages shall not be discarded after a call to zmq_close(); + attempting to terminate the socket’s context with zmq_term() shall block + until either all pending messages have been sent to a peer, or the linger + period expires, after which any pending messages shall be discarded. +

    +
    + + + + + + + + + + + + + + + + +
    +Option value type +
    +
    +

    +int +

    +
    +Option value unit +
    +
    +

    +milliseconds +

    +
    +Default value +
    +
    +

    +-1 (infinite) +

    +
    +Applicable socket types +
    +
    +

    +all +

    +
    +
  • +
+

ZMQ_RECONNECT_IVL: Retrieve reconnection interval

+

The ZMQ_RECONNECT_IVL option shall retrieve the initial reconnection interval +for the specified socket. The reconnection interval is the period ØMQ shall +wait between attempts to reconnect disconnected peers when using +connection-oriented transports.

+
+ + + +
+
Note
+
The reconnection interval may be randomized by ØMQ to prevent +reconnection storms in topologies with a large number of peers per socket.
+
+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int +

+
+Option value unit +
+
+

+milliseconds +

+
+Default value +
+
+

+100 +

+
+Applicable socket types +
+
+

+all, only for connection-oriented transports +

+
+

ZMQ_RECONNECT_IVL_MAX: Retrieve maximum reconnection interval

+

The ZMQ_RECONNECT_IVL_MAX option shall retrieve the maximum reconnection +interval for the specified socket. This is the maximum period ØMQ shall wait +between attempts to reconnect. On each reconnect attempt, the previous interval +shall be doubled untill ZMQ_RECONNECT_IVL_MAX is reached. This allows for +exponential backoff strategy. Default value means no exponential backoff is +performed and reconnect interval calculations are only based on ZMQ_RECONNECT_IVL.

+
+ + + +
+
Note
+
Values less than ZMQ_RECONNECT_IVL will be ignored.
+
+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int +

+
+Option value unit +
+
+

+milliseconds +

+
+Default value +
+
+

+0 (only use ZMQ_RECONNECT_IVL) +

+
+Applicable socket types +
+
+

+all, only for connection-oriented transport +

+
+

ZMQ_BACKLOG: Retrieve maximum length of the queue of outstanding connections

+

The ZMQ_BACKLOG option shall retrieve the maximum length of the queue of +outstanding peer connections for the specified socket; this only applies to +connection-oriented transports. For details refer to your operating system +documentation for the listen function.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int +

+
+Option value unit +
+
+

+connections +

+
+Default value +
+
+

+100 +

+
+Applicable socket types +
+
+

+all, only for connection-oriented transports +

+
+

ZMQ_FD: Retrieve file descriptor associated with the socket

+

The ZMQ_FD option shall retrieve the file descriptor associated with the +specified socket. The returned file descriptor can be used to integrate the +socket into an existing event loop; the ØMQ library shall signal any pending +events on the socket in an edge-triggered fashion by making the file +descriptor become ready for reading.

+
+ + + +
+
Note
+
The ability to read from the returned file descriptor does not +necessarily indicate that messages are available to be read from, or can be +written to, the underlying socket; applications must retrieve the actual event +state with a subsequent retrieval of the ZMQ_EVENTS option.
+
+
+ + + +
+
Caution
+
The returned file descriptor is intended for use with a poll or +similar system call only. Applications must never attempt to read or write data +to it directly, neither should they try to close it.
+
+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int on POSIX systems, SOCKET on Windows +

+
+Option value unit +
+
+

+N/A +

+
+Default value +
+
+

+N/A +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_EVENTS: Retrieve socket event state

+

The ZMQ_EVENTS option shall retrieve the event state for the specified +socket. The returned value is a bit mask constructed by OR’ing a combination +of the following event flags:

+
+
+ZMQ_POLLIN +
+
+

+Indicates that at least one message may be received from the specified socket +without blocking. +

+
+
+ZMQ_POLLOUT +
+
+

+Indicates that at least one message may be sent to the specified socket without +blocking. +

+
+
+

The combination of a file descriptor returned by the ZMQ_FD option being +ready for reading but no actual events returned by a subsequent retrieval of +the ZMQ_EVENTS option is valid; applications should simply ignore this case +and restart their polling operation/event loop.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint32_t +

+
+Option value unit +
+
+

+N/A (flags) +

+
+Default value +
+
+

+N/A +

+
+Applicable socket types +
+
+

+all +

+
+
+

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

+
+
+
+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 +option_value, as specified by option_len, is insufficient for storing the +option value. +

+
+
+ETERM +
+
+

+The ØMQ context associated with the specified socket was terminated. +

+
+
+EFAULT +
+
+

+The provided socket was not valid (NULL). +

+
+
+EINTR +
+
+

+The operation was interrupted by delivery of a signal. +

+
+
+
+

EXAMPLE

+
+
+
Retrieving the high water mark
+
+
/* Retrieve high water mark into hwm */
+int64_t hwm;
+size_t hwm_size = sizeof (hwm);
+rc = zmq_getsockopt (socket, ZMQ_HWM, &hwm, &hwm_size);
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_init.3 b/doc/zmq_init.3 index 12fbe75..d52d393 100644 --- a/doc/zmq_init.3 +++ b/doc/zmq_init.3 @@ -2,12 +2,12 @@ .\" Title: zmq_init .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_INIT" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_INIT" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_init.html b/doc/zmq_init.html new file mode 100644 index 0000000..17f2614 --- /dev/null +++ b/doc/zmq_init.html @@ -0,0 +1,635 @@ + + + + + +zmq_init(3) + + + + + +
+

SYNOPSIS

+
+

void *zmq_init (int io_threads);

+
+

DESCRIPTION

+
+

The zmq_init() function initialises a ØMQ context.

+

The io_threads argument specifies the size of the ØMQ 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 ØMQ 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.

+
+

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

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_inproc.7 b/doc/zmq_inproc.7 index a6839e3..830d1fa 100644 --- a/doc/zmq_inproc.7 +++ b/doc/zmq_inproc.7 @@ -2,12 +2,12 @@ .\" Title: zmq_inproc .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_INPROC" "7" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_INPROC" "7" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_inproc.html b/doc/zmq_inproc.html new file mode 100644 index 0000000..6bc6959 --- /dev/null +++ b/doc/zmq_inproc.html @@ -0,0 +1,669 @@ + + + + + +zmq_inproc(7) + + + + + +
+

SYNOPSIS

+
+

The in-process transport passes messages via memory directly between threads +sharing a single ØMQ context.

+
+ + + +
+
Note
+
No I/O threads are involved in passing messages using the inproc +transport. Therefore, if you are using a ØMQ context for in-process messaging +only you can initialise the context with zero I/O threads. See +zmq_init(3) for details.
+
+
+

ADDRESSING

+
+

A ØMQ address string consists of two parts as follows: +transport://endpoint. The transport part specifies the underlying +transport protocol to use, and for the in-process transport shall be set to +inproc. The meaning of the endpoint part for the in-process transport is +defined below.

+

Assigning a local address to a socket

+

When assigning a local address to a socket using zmq_bind() with the +inproc transport, the endpoint shall be interpreted as an arbitrary string +identifying the name to create. The name must be unique within the ØMQ +context associated with the socket and may be up to 256 characters in +length. No other restrictions are placed on the format of the name.

+

Connecting a socket

+

When connecting a socket to a peer address using zmq_connect() with the +inproc transport, the endpoint shall be interpreted as an arbitrary string +identifying the name to connect to. The name must have been previously +created by assigning it to at least one socket within the same ØMQ context +as the socket being connected.

+
+

WIRE FORMAT

+
+

Not applicable.

+
+

EXAMPLES

+
+
+
Assigning a local address to a socket
+
+
/* Assign the in-process name "#1" */
+rc = zmq_bind(socket, "inproc://#1");
+assert (rc == 0);
+/* Assign the in-process name "my-endpoint" */
+rc = zmq_bind(socket, "inproc://my-endpoint");
+assert (rc == 0);
+
+
+
Connecting a socket
+
+
/* Connect to the in-process name "#1" */
+rc = zmq_connect(socket, "inproc://#1");
+assert (rc == 0);
+/* Connect to the in-process name "my-endpoint" */
+rc = zmq_connect(socket, "inproc://my-endpoint");
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_ipc.7 b/doc/zmq_ipc.7 index 0d20a4a..a0ef8bd 100644 --- a/doc/zmq_ipc.7 +++ b/doc/zmq_ipc.7 @@ -2,12 +2,12 @@ .\" Title: zmq_ipc .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_IPC" "7" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_IPC" "7" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_ipc.html b/doc/zmq_ipc.html new file mode 100644 index 0000000..f07b58a --- /dev/null +++ b/doc/zmq_ipc.html @@ -0,0 +1,662 @@ + + + + + +zmq_ipc(7) + + + + + +
+

SYNOPSIS

+
+

The inter-process transport passes messages between local processes using a +system-dependent IPC mechanism.

+
+ + + +
+
Note
+
The inter-process transport is currently only implemented on operating +systems that provide UNIX domain sockets.
+
+
+

ADDRESSING

+
+

A ØMQ address string consists of two parts as follows: +transport://endpoint. The transport part specifies the underlying +transport protocol to use, and for the inter-process transport shall be set to +ipc. The meaning of the endpoint part for the inter-process transport is +defined below.

+

Assigning a local address to a socket

+

When assigning a local address to a socket using zmq_bind() with the ipc +transport, the endpoint shall be interpreted as an arbitrary string +identifying the pathname to create. The pathname must be unique within the +operating system namespace used by the ipc implementation, and must fulfill +any restrictions placed by the operating system on the format and length of a +pathname.

+

Connecting a socket

+

When connecting a socket to a peer address using zmq_connect() with the +ipc transport, the endpoint shall be interpreted as an arbitrary string +identifying the pathname to connect to. The pathname must have been +previously created within the operating system namespace by assigning it to a +socket with zmq_bind().

+
+

WIRE FORMAT

+
+

Not applicable.

+
+

EXAMPLES

+
+
+
Assigning a local address to a socket
+
+
/* Assign the pathname "/tmp/feeds/0" */
+rc = zmq_bind(socket, "ipc:///tmp/feeds/0");
+assert (rc == 0);
+
+
+
Connecting a socket
+
+
/* Connect to the pathname "/tmp/feeds/0" */
+rc = zmq_connect(socket, "ipc:///tmp/feeds/0");
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_close.3 b/doc/zmq_msg_close.3 index 1e7cdae..76d5cb8 100644 --- a/doc/zmq_msg_close.3 +++ b/doc/zmq_msg_close.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_close .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_CLOSE" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_CLOSE" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_close.html b/doc/zmq_msg_close.html new file mode 100644 index 0000000..7942587 --- /dev/null +++ b/doc/zmq_msg_close.html @@ -0,0 +1,638 @@ + + + + + +zmq_msg_close(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_msg_close (zmq_msg_t *msg);

+
+

DESCRIPTION

+
+

The zmq_msg_close() function shall inform the ØMQ 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 +message object shall be postponed by ØMQ until all users of the message or +underlying data buffer have indicated it is no longer required.

+

Applications should ensure that zmq_msg_close() is called once a message is +no longer required, otherwise memory leaks may occur.

+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+

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

+
+

No errors are defined.

+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_copy.3 b/doc/zmq_msg_copy.3 index 9fc0f7e..2471cdc 100644 --- a/doc/zmq_msg_copy.3 +++ b/doc/zmq_msg_copy.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_copy .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_COPY" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_COPY" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_copy.html b/doc/zmq_msg_copy.html new file mode 100644 index 0000000..5017c3c --- /dev/null +++ b/doc/zmq_msg_copy.html @@ -0,0 +1,647 @@ + + + + + +zmq_msg_copy(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_msg_copy (zmq_msg_t *dest, zmq_msg_t *src);

+
+

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.

+
+ + + +
+
Caution
+
The implementation may choose not to physically copy the message +content, rather to share the underlying buffer between src and dest. Avoid +modifying message content after a message has been copied with +zmq_msg_copy(), doing so can result in undefined behaviour. If what you need +is an actual hard copy, allocate a new message using zmq_msg_init_size() and +copy the message content using memcpy().
+
+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+

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

+
+

No errors are defined.

+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_data.3 b/doc/zmq_msg_data.3 index a2d31a4..6470f6b 100644 --- a/doc/zmq_msg_data.3 +++ b/doc/zmq_msg_data.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_data .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_DATA" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_DATA" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_data.html b/doc/zmq_msg_data.html new file mode 100644 index 0000000..dbce1bc --- /dev/null +++ b/doc/zmq_msg_data.html @@ -0,0 +1,633 @@ + + + + + +zmq_msg_data(3) + + + + + +
+

SYNOPSIS

+
+

void *zmq_msg_data (zmq_msg_t *msg);

+
+

DESCRIPTION

+
+

The zmq_msg_data() function shall return a pointer to the message content of +the message object referenced by msg.

+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+

RETURN VALUE

+
+

Upon successful completion, zmq_msg_data() shall return a pointer to the +message content.

+
+

ERRORS

+
+

No errors are defined.

+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_init.3 b/doc/zmq_msg_init.3 index dc080dd..f4cc7c7 100644 --- a/doc/zmq_msg_init.3 +++ b/doc/zmq_msg_init.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_init .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_INIT" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_INIT" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_init.html b/doc/zmq_msg_init.html new file mode 100644 index 0000000..227b6df --- /dev/null +++ b/doc/zmq_msg_init.html @@ -0,0 +1,656 @@ + + + + + +zmq_msg_init(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_msg_init (zmq_msg_t *msg);

+
+

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_recv().

+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+ + + +
+
Caution
+
The functions zmq_msg_init(), zmq_msg_init_data() and +zmq_msg_init_size() are mutually exclusive. Never initialize the same +zmq_msg_t twice.
+
+
+

RETURN VALUE

+
+

The zmq_msg_init() function shall return zero if successful. Otherwise it +shall return -1 and set errno to one of the values defined below.

+
+

ERRORS

+
+

No errors are defined.

+
+

EXAMPLE

+
+
+
Receiving a message from a socket
+
+
zmq_msg_t msg;
+rc = zmq_msg_init (&msg);
+assert (rc == 0);
+rc = zmq_recv (socket, &msg, 0);
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_init_data.3 b/doc/zmq_msg_init_data.3 index 11f822d..b89821f 100644 --- a/doc/zmq_msg_init_data.3 +++ b/doc/zmq_msg_init_data.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_init_data .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_INIT_DATA" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_INIT_DATA" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_init_data.html b/doc/zmq_msg_init_data.html new file mode 100644 index 0000000..efc259f --- /dev/null +++ b/doc/zmq_msg_init_data.html @@ -0,0 +1,669 @@ + + + + + +zmq_msg_init_data(3) + + + + + +
+

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

+
+

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 +ØMQ shall take ownership of the supplied buffer.

+

If provided, the deallocation function ffn shall be called once the data +buffer is no longer required by ØMQ, with the data and hint arguments +supplied to zmq_msg_init_data().

+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+ + + +
+
Caution
+
The functions zmq_msg_init(), zmq_msg_init_data() and +zmq_msg_init_size() are mutually exclusive. Never initialize the same +zmq_msg_t twice.
+
+
+

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

+
+

No errors are defined.

+
+

EXAMPLE

+
+
+
Initialising a message from a supplied buffer
+
+
void my_free (void *data, void *hint)
+{
+    free (data);
+}
+
+    /*  ...  */
+
+void *data = malloc (6);
+assert (data);
+memcpy (data, "ABCDEF", 6);
+zmq_msg_t msg;
+rc = zmq_msg_init_data (&msg, data, 6, my_free, NULL);
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_init_size.3 b/doc/zmq_msg_init_size.3 index 2f7c494..324f751 100644 --- a/doc/zmq_msg_init_size.3 +++ b/doc/zmq_msg_init_size.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_init_size .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_INIT_SIZE" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_INIT_SIZE" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_init_size.html b/doc/zmq_msg_init_size.html new file mode 100644 index 0000000..706788f --- /dev/null +++ b/doc/zmq_msg_init_size.html @@ -0,0 +1,656 @@ + + + + + +zmq_msg_init_size(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_msg_init_size (zmq_msg_t *msg, size_t size);

+
+

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.

+

The implementation shall choose whether to store message content on the stack +(small messages) or on the heap (large messages). For performance reasons +zmq_msg_init_size() shall not clear the message data.

+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+ + + +
+
Caution
+
The functions zmq_msg_init(), zmq_msg_init_data() and +zmq_msg_init_size() are mutually exclusive. Never initialize the same +zmq_msg_t twice.
+
+
+

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

+
+
+
+ENOMEM +
+
+

+Insufficient storage space is available. +

+
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_move.3 b/doc/zmq_msg_move.3 index 6a3f97c..1899c63 100644 --- a/doc/zmq_msg_move.3 +++ b/doc/zmq_msg_move.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_move .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_MOVE" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_MOVE" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_move.html b/doc/zmq_msg_move.html new file mode 100644 index 0000000..78f09a8 --- /dev/null +++ b/doc/zmq_msg_move.html @@ -0,0 +1,636 @@ + + + + + +zmq_msg_move(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_msg_move (zmq_msg_t *dest, zmq_msg_t *src);

+
+

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 +the new content. src becomes an empty message after calling zmq_msg_move(). +The original content of dest, if any, shall be released.

+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+

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

+
+

No errors are defined.

+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_msg_size.3 b/doc/zmq_msg_size.3 index 627c084..4cead02 100644 --- a/doc/zmq_msg_size.3 +++ b/doc/zmq_msg_size.3 @@ -2,12 +2,12 @@ .\" Title: zmq_msg_size .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_MSG_SIZE" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_MSG_SIZE" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_msg_size.html b/doc/zmq_msg_size.html new file mode 100644 index 0000000..068232d --- /dev/null +++ b/doc/zmq_msg_size.html @@ -0,0 +1,633 @@ + + + + + +zmq_msg_size(3) + + + + + +
+

SYNOPSIS

+
+

size_t zmq_msg_size (zmq_msg_t *msg);

+
+

DESCRIPTION

+
+

The zmq_msg_size() function shall return the size in bytes of the content of +the message object referenced by msg.

+
+ + + +
+
Caution
+
Never access zmq_msg_t members directly, instead always use the +zmq_msg family of functions.
+
+
+

RETURN VALUE

+
+

Upon successful completion, zmq_msg_data() shall return the size of the +message content in bytes.

+
+

ERRORS

+
+

No errors are defined.

+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_pgm.7 b/doc/zmq_pgm.7 index 06cc456..1559950 100644 --- a/doc/zmq_pgm.7 +++ b/doc/zmq_pgm.7 @@ -2,12 +2,12 @@ .\" Title: zmq_pgm .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_PGM" "7" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_PGM" "7" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_pgm.html b/doc/zmq_pgm.html new file mode 100644 index 0000000..5506fa1 --- /dev/null +++ b/doc/zmq_pgm.html @@ -0,0 +1,745 @@ + + + + + +zmq_pgm(7) + + + + + +
+

SYNOPSIS

+
+

PGM (Pragmatic General Multicast) is a protocol for reliable multicast +transport of data over IP networks.

+
+

DESCRIPTION

+
+

ØMQ 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" where PGM datagrams are encapsulated inside +UDP datagrams (the epgm transport).

+

The pgm and epgm transports can only be used with the ZMQ_PUB and +ZMQ_SUB socket types.

+

Further, PGM sockets are rate limited by default and incur a performance +penalty when used over a loop-back interface. For details, refer to the +ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP options documented in +zmq_setsockopt(3).

+
+ + + +
+
Caution
+
The pgm transport implementation requires access to raw IP sockets. +Additional privileges may be required on some operating systems for this +operation. Applications not requiring direct interoperability with other PGM +implementations are encouraged to use the epgm transport instead which does +not require any special privileges.
+
+
+

ADDRESSING

+
+

A ØMQ address string consists of two parts as follows: +transport://endpoint. The transport part specifies the underlying +transport protocol to use. For the standard PGM protocol, transport shall be +set to pgm. For the "Encapsulated PGM" protocol transport shall be set to +epgm. The meaning of the endpoint part for both the pgm and epgm +transport is defined below.

+

Connecting a socket

+

When connecting a socket to a peer address using zmq_connect() with the pgm +or epgm transport, the endpoint shall be interpreted as an interface +followed by a semicolon, followed by a multicast address, followed by a colon +and a port number.

+

An interface may be specified by either of the following:

+
    +
  • +

    +The interface name as defined by the operating system. +

    +
  • +
  • +

    +The primary IPv4 address assigned to the interface, in it’s numeric + representation. +

    +
  • +
+
+ + + +
+
Note
+
Interface names are not standardised in any way and should be assumed to +be arbitrary and platform dependent. On Win32 platforms no short interface +names exist, thus only the primary IPv4 address may be used to specify an +interface.
+
+

A multicast address is specified by an IPv4 multicast address in it’s numeric +representation.

+
+

WIRE FORMAT

+
+

Consecutive PGM datagrams are interpreted by ØMQ as a single continuous stream +of data where ØMQ messages are not necessarily aligned with PGM datagram +boundaries and a single ØMQ message may span several PGM datagrams. This stream +of data consists of ØMQ messages encapsulated in frames as described in +zmq_tcp(7).

+

PGM datagram payload

+

The following ABNF grammar represents the payload of a single PGM datagram as +used by ØMQ:

+
+
+
datagram               = (offset data)
+offset                 = 2OCTET
+data                   = *OCTET
+
+

In order for late joining consumers to be able to identify message boundaries, +each PGM datagram payload starts with a 16-bit unsigned integer in network byte +order specifying either the offset of the first message frame in the datagram +or containing the value 0xFFFF if the datagram contains solely an +intermediate part of a larger message.

+

The following diagram illustrates the layout of a single PGM datagram payload:

+
+
+
+------------------+----------------------+
+| offset (16 bits) |         data         |
++------------------+----------------------+
+
+

The following diagram further illustrates how three example ØMQ frames are laid +out in consecutive PGM datagram payloads:

+
+
+
First datagram payload
++--------------+-------------+---------------------+
+| Frame offset |   Frame 1   |   Frame 2, part 1   |
+|    0x0000    | (Message 1) | (Message 2, part 1) |
++--------------+-------------+---------------------+
+
+Second datagram payload
++--------------+---------------------+
+| Frame offset |   Frame 2, part 2   |
+| 0xFFFF       | (Message 2, part 2) |
++--------------+---------------------+
+
+Third datagram payload
++--------------+----------------------------+-------------+
+| Frame offset |   Frame 2, final 8 bytes   |   Frame 3   |
+| 0x0008       | (Message 2, final 8 bytes) | (Message 3) |
++--------------+----------------------------+-------------+
+
+
+

EXAMPLE

+
+
+
Connecting a socket
+
+
/* Connecting to the multicast address 239.192.1.1, port 5555, */
+/* using the first Ethernet network interface on Linux */
+/* and the Encapsulated PGM protocol */
+rc = zmq_connect(socket, "epgm://eth0;239.192.1.1:5555");
+assert (rc == 0);
+/* Connecting to the multicast address 239.192.1.1, port 5555, */
+/* using the network interface with the address 192.168.1.1 */
+/* and the standard PGM protocol */
+rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555");
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_poll.3 b/doc/zmq_poll.3 index a5d005c..a3cc9fc 100644 --- a/doc/zmq_poll.3 +++ b/doc/zmq_poll.3 @@ -2,12 +2,12 @@ .\" Title: zmq_poll .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_POLL" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_POLL" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_poll.html b/doc/zmq_poll.html new file mode 100644 index 0000000..da4b8fb --- /dev/null +++ b/doc/zmq_poll.html @@ -0,0 +1,755 @@ + + + + + +zmq_poll(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_poll (zmq_pollitem_t *items, int nitems, long timeout);

+
+

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 +structure. The nitems argument specifies the number of items in the items +array. The zmq_pollitem_t structure is defined as follows:

+
+
+
typedef struct
+{
+    void *socket;
+    int fd;
+    short events;
+    short revents;
+} zmq_pollitem_t;
+
+

For each zmq_pollitem_t item, zmq_poll() shall examine either the ØMQ +socket referenced by socket or the standard socket specified by the file +descriptor fd, for the event(s) specified in events. If both socket and +fd are set in a single zmq_pollitem_t, the ØMQ socket referenced by +socket shall take precedence and the value of fd shall be ignored.

+
+ + + +
+
Note
+
All ØMQ sockets passed to the zmq_poll() function must share the +same ØMQ context and must belong to the thread calling zmq_poll().
+
+

For each zmq_pollitem_t item, zmq_poll() shall first clear the revents +member, and then indicate any requested events that have occurred by setting the +bit corresponding to the event condition in the revents member.

+

If none of the requested events have occurred on any zmq_pollitem_t item, +zmq_poll() shall wait timeout microseconds for an event to occur on +any of the requested items. If the value of timeout is 0, zmq_poll() +shall return immediately. If the value of timeout is -1, zmq_poll() shall +block indefinitely until a requested event has occurred on at least one +zmq_pollitem_t.

+

The events and revents members of zmq_pollitem_t are bit masks constructed +by OR’ing a combination of the following event flags:

+
+
+ZMQ_POLLIN +
+
+

+For ØMQ sockets, at least one message may be received from the socket without +blocking. For standard sockets this is equivalent to the POLLIN flag of the +poll() system call and generally means that at least one byte of data may be +read from fd without blocking. +

+
+
+ZMQ_POLLOUT +
+
+

+For ØMQ sockets, at least one message may be sent to the socket without +blocking. For standard sockets this is equivalent to the POLLOUT flag of the +poll() system call and generally means that at least one byte of data may be +written to fd without blocking. +

+
+
+ZMQ_POLLERR +
+
+

+For standard sockets, this flag is passed through zmq_poll() to the +underlying poll() system call and generally means that some sort of error +condition is present on the socket specified by fd. For ØMQ sockets this flag +has no effect if set in events, and shall never be returned in revents by +zmq_poll(). +

+
+
+
+ + + +
+
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.
+
+
+

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

+
+
+
+ETERM +
+
+

+At least one of the members of the items array refers to a socket whose +associated ØMQ context was terminated. +

+
+
+EFAULT +
+
+

+The provided items was not valid (NULL). +

+
+
+EINTR +
+
+

+The operation was interrupted by delivery of a signal before any events were +available. +

+
+
+
+

EXAMPLE

+
+
+
Polling indefinitely for input events on both a ØMQ socket and a standard socket.
+
+
zmq_pollitem_t items [2];
+/* First item refers to 0MQ socket 'socket' */
+items[0].socket = socket;
+items[0].events = ZMQ_POLLIN;
+/* Second item refers to standard socket 'fd' */
+items[1].socket = NULL;
+items[1].fd = fd;
+items[1].events = ZMQ_POLLIN;
+/* Poll for events indefinitely */
+int rc = zmq_poll (items, 2, -1);
+assert (rc >= 0);
+/* Returned events will be stored in items[].revents */
+
+
+

SEE ALSO

+
+ +

Your operating system documentation for the poll() system call.

+
+

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_recv.3 b/doc/zmq_recv.3 index 970d1ba..0103c7f 100644 --- a/doc/zmq_recv.3 +++ b/doc/zmq_recv.3 @@ -2,12 +2,12 @@ .\" Title: zmq_recv .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_RECV" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_RECV" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_recv.html b/doc/zmq_recv.html new file mode 100644 index 0000000..9ee3454 --- /dev/null +++ b/doc/zmq_recv.html @@ -0,0 +1,738 @@ + + + + + +zmq_recv(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_recv (void *socket, zmq_msg_t *msg, int flags);

+
+

DESCRIPTION

+
+

The zmq_recv() function shall receive a message 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 deallocated. +If there are no messages available on the specified socket the zmq_recv() +function shall block until the request can be satisfied. The flags argument +is a combination of the flags defined below:

+
+
+ZMQ_NOBLOCK +
+
+

+Specifies that the operation should be performed in non-blocking mode. If there +are no messages available on the specified socket, the zmq_recv() function +shall fail with errno set to EAGAIN. +

+
+
+

Multi-part messages

+

A ØMQ message is composed of 1 or more message parts; each message part is an +independent zmq_msg_t in its own right. ØMQ ensures atomic delivery of +messages; peers shall receive either all message parts of a message or none +at all.

+

The total number of message parts is unlimited.

+

An application wishing to determine if a message is composed of multiple parts +does so by retrieving the value of the ZMQ_RCVMORE socket option on the +socket it is receiving the message from. If there are no message parts to +follow, or if the message is not composed of multiple parts, ZMQ_RCVMORE +shall report a value of zero. Otherwise, ZMQ_RCVMORE shall report a value of +1, indicating that more message parts are to follow.

+
+

RETURN VALUE

+
+

The zmq_recv() function shall return zero if successful. Otherwise it shall +return -1 and set errno to one of the values defined below.

+
+

ERRORS

+
+
+
+EAGAIN +
+
+

+Non-blocking mode was requested and no messages are available at the moment. +

+
+
+ENOTSUP +
+
+

+The zmq_recv() operation is not supported by this socket type. +

+
+
+EFSM +
+
+

+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 zmq_socket(3) for more information. +

+
+
+ETERM +
+
+

+The ØMQ context associated with the specified socket was terminated. +

+
+
+EFAULT +
+
+

+The provided socket was not valid (NULL). +

+
+
+EINTR +
+
+

+The operation was interrupted by delivery of a signal before a message was +available. +

+
+
+
+

EXAMPLE

+
+
+
Receiving a message from a socket
+
+
/* Create an empty 0MQ message */
+zmq_msg_t msg;
+int rc = zmq_msg_init (&msg);
+assert (rc == 0);
+/* Block until a message is available to be received from socket */
+rc = zmq_recv (socket, &msg, 0);
+assert (rc == 0);
+/* Release message */
+zmq_msg_close (&msg);
+
+
+
Receiving a multi-part message
+
+
int64_t more;
+size_t more_size = sizeof more;
+do {
+    /* Create an empty 0MQ message to hold the message part */
+    zmq_msg_t part;
+    int rc = zmq_msg_init (&part);
+    assert (rc == 0);
+    /* Block until a message is available to be received from socket */
+    rc = zmq_recv (socket, &part, 0);
+    assert (rc == 0);
+    /* Determine if more message parts are to follow */
+    rc = zmq_getsockopt (socket, ZMQ_RCVMORE, &more, &more_size);
+    assert (rc == 0);
+    zmq_msg_close (&part);
+} while (more);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_send.3 b/doc/zmq_send.3 index 039d5f1..b6ebcd5 100644 --- a/doc/zmq_send.3 +++ b/doc/zmq_send.3 @@ -2,12 +2,12 @@ .\" Title: zmq_send .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_SEND" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_SEND" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_send.html b/doc/zmq_send.html new file mode 100644 index 0000000..eeb4654 --- /dev/null +++ b/doc/zmq_send.html @@ -0,0 +1,744 @@ + + + + + +zmq_send(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_send (void *socket, zmq_msg_t *msg, int flags);

+
+

DESCRIPTION

+
+

The zmq_send() 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:

+
+
+ZMQ_NOBLOCK +
+
+

+Specifies that the operation should be performed in non-blocking mode. If the +message cannot be queued on the socket, the zmq_send() function shall fail +with errno set to EAGAIN. +

+
+
+ZMQ_SNDMORE +
+
+

+Specifies that the message being sent is a multi-part message, and that further +message parts are to follow. Refer to the section regarding multi-part messages +below for a detailed description. +

+
+
+
+ + + +
+
Note
+
A successful invocation of zmq_send() does not indicate that the +message has been transmitted to the network, only that it has been queued on +the socket and ØMQ has assumed responsibility for the message.
+
+

Multi-part messages

+

A ØMQ message is composed of 1 or more message parts; each message part is an +independent zmq_msg_t in its own right. ØMQ ensures atomic delivery of +messages; peers shall receive either all message parts of a message or none +at all.

+

The total number of message parts is unlimited.

+

An application wishing to send a multi-part message does so by specifying the +ZMQ_SNDMORE flag to zmq_send(). The presence of this flag indicates to ØMQ +that the message being sent is a multi-part message and that more message parts +are to follow. When the application wishes to send the final message part it +does so by calling zmq_send() without the ZMQ_SNDMORE flag; this indicates +that no more message parts are to follow.

+
+

RETURN VALUE

+
+

The zmq_send() function shall return zero if successful. Otherwise it shall +return -1 and set errno to one of the values defined below.

+
+

ERRORS

+
+
+
+EAGAIN +
+
+

+Non-blocking mode was requested and the message cannot be sent at the moment. +

+
+
+ENOTSUP +
+
+

+The zmq_send() operation is not supported by this socket type. +

+
+
+EFSM +
+
+

+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 zmq_socket(3) for more information. +

+
+
+ETERM +
+
+

+The ØMQ context associated with the specified socket was terminated. +

+
+
+EFAULT +
+
+

+The provided socket was not valid (NULL). +

+
+
+EINTR +
+
+

+The operation was interrupted by delivery of a signal before the message was +sent. +

+
+
+
+

EXAMPLE

+
+
+
Filling in a message and sending it to a socket
+
+
/* Create a new message, allocating 6 bytes for message content */
+zmq_msg_t msg;
+int rc = zmq_msg_init_size (&msg, 6);
+assert (rc == 0);
+/* Fill in message content with 'AAAAAA' */
+memset (zmq_msg_data (&msg), 'A', 6);
+/* Send the message to the socket */
+rc = zmq_send (socket, &msg, 0);
+assert (rc == 0);
+
+
+
Sending a multi-part message
+
+
/* Send a multi-part message consisting of three parts to socket */
+rc = zmq_send (socket, &part1, ZMQ_SNDMORE);
+rc = zmq_send (socket, &part2, ZMQ_SNDMORE);
+/* Final part; no more parts to follow */
+rc = zmq_send (socket, &part3, 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_setsockopt.3 b/doc/zmq_setsockopt.3 index 094e946..029a2de 100644 --- a/doc/zmq_setsockopt.3 +++ b/doc/zmq_setsockopt.3 @@ -2,12 +2,12 @@ .\" Title: zmq_setsockopt .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/20/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_SETSOCKOPT" "3" "03/20/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_SETSOCKOPT" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_setsockopt.html b/doc/zmq_setsockopt.html new file mode 100644 index 0000000..93d0611 --- /dev/null +++ b/doc/zmq_setsockopt.html @@ -0,0 +1,1603 @@ + + + + + +zmq_setsockopt(3) + + + + + +
+

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 and +ZMQ_LINGER, only take effect for subsequent socket bind/connects.

+
+

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 ØMQ socket pointed to by the socket argument. The option_len +argument is the size of the option value in bytes.

+

The following socket options can be set with the zmq_setsockopt() function:

+

ZMQ_HWM: Set high water mark

+

The ZMQ_HWM option shall set the high water mark for the specified socket. +The high water mark is a hard limit on the maximum number of outstanding +messages ØMQ shall queue in memory for any single peer that the specified +socket is communicating with.

+

If this limit has been reached the socket shall enter an exceptional state and +depending on the socket type, ØMQ shall take appropriate action such as +blocking or dropping sent messages. Refer to the individual socket descriptions +in zmq_socket(3) for details on the exact action taken for each socket +type.

+

The default ZMQ_HWM value of zero means "no limit".

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+messages +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_SWAP: Set disk offload size

+

The ZMQ_SWAP option shall set the disk offload (swap) size for the specified +socket. A socket which has ZMQ_SWAP set to a non-zero value may exceed it’s +high water mark; in this case outstanding messages shall be offloaded to +storage on disk rather than held in memory.

+

The value of ZMQ_SWAP defines the maximum size of the swap space in bytes.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+bytes +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_AFFINITY: Set I/O thread affinity

+

The ZMQ_AFFINITY option shall set the I/O thread affinity for newly created +connections on the specified socket.

+

Affinity determines which threads from the ØMQ I/O thread pool associated with +the socket’s context shall handle newly created connections. A value of zero +specifies no affinity, meaning that work shall be distributed fairly among all +ØMQ I/O threads in the thread pool. For non-zero values, the lowest bit +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 zmq_init(3) for details on allocating the number of I/O +threads for a specific context.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+N/A (bitmap) +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+N/A +

+
+

ZMQ_IDENTITY: Set socket identity

+

The ZMQ_IDENTITY option shall set the identity of the specified socket. +Socket identity determines if existing ØMQ infrastructure (message queues, +forwarding devices) shall be identified with a specific application and +persist across multiple runs of the application.

+

If the socket has no identity, each run of an application is completely +separate from other runs. However, with identity set the socket shall re-use +any existing ØMQ infrastructure configured by the previous run(s). Thus the +application may receive messages that were sent in the meantime, message +queue limits shall be shared with previous run(s) and so on.

+

Identity should be at least one byte and at most 255 bytes long. Identities +starting with binary zero are reserved for use by ØMQ infrastructure.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+binary data +

+
+Option value unit +
+
+

+N/A +

+
+Default value +
+
+

+NULL +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_SUBSCRIBE: Establish message filter

+

The ZMQ_SUBSCRIBE option shall establish a new message filter on a ZMQ_SUB +socket. Newly created ZMQ_SUB sockets shall filter out all incoming messages, +therefore you should call this option to establish an initial message filter.

+

An empty option_value of length zero shall subscribe to all incoming +messages. A non-empty option_value shall subscribe to all messages beginning +with the specified prefix. Multiple filters may be attached to a single +ZMQ_SUB socket, in which case a message shall be accepted if it matches at +least one filter.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+binary data +

+
+Option value unit +
+
+

+N/A +

+
+Default value +
+
+

+N/A +

+
+Applicable socket types +
+
+

+ZMQ_SUB +

+
+

ZMQ_UNSUBSCRIBE: Remove message filter

+

The ZMQ_UNSUBSCRIBE option shall remove an existing message filter on a +ZMQ_SUB socket. The filter specified must match an existing filter previously +established with the ZMQ_SUBSCRIBE option. If the socket has several +instances of the same filter attached the ZMQ_UNSUBSCRIBE option shall remove +only one instance, leaving the rest in place and functional.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+binary data +

+
+Option value unit +
+
+

+N/A +

+
+Default value +
+
+

+N/A +

+
+Applicable socket types +
+
+

+ZMQ_SUB +

+
+

ZMQ_RATE: Set multicast data rate

+

The ZMQ_RATE option shall set the maximum send or receive data rate for +multicast transports such as zmq_pgm(7) using the specified socket.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+kilobits per second +

+
+Default value +
+
+

+100 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_RECOVERY_IVL: Set multicast recovery interval

+

The ZMQ_RECOVERY_IVL option shall set the recovery interval for multicast +transports using the specified socket. The recovery interval determines the +maximum time in seconds that a receiver can be absent from a multicast group +before unrecoverable data loss will occur.

+
+ + + +
+
Caution
+
Exercise care when setting large recovery intervals as the data +needed for recovery will be held in memory. For example, a 1 minute recovery +interval at a data rate of 1Gbps requires a 7GB in-memory buffer.
+
+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+seconds +

+
+Default value +
+
+

+10 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_RECOVERY_IVL_MSEC: Set multicast recovery interval in milliseconds

+

The ZMQ_RECOVERY_IVL_MSEC option shall set the recovery interval, specified +in milliseconds (ms) for multicast transports using the specified socket. +The recovery interval determines the maximum time in milliseconds that a +receiver can be absent from a multicast group before unrecoverable data loss +will occur.

+

A non-zero value of the ZMQ_RECOVERY_IVL_MSEC option will take precedence +over the ZMQ_RECOVERY_IVL option, but since the default for the +ZMQ_RECOVERY_IVL_MSEC is -1, the default is to use the ZMQ_RECOVERY_IVL +option value.

+
+ + + +
+
Caution
+
Exercise care when setting large recovery intervals as the data +needed for recovery will be held in memory. For example, a 1 minute recovery +interval at a data rate of 1Gbps requires a 7GB in-memory buffer.
+
+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+milliseconds +

+
+Default value +
+
+

+-1 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_MCAST_LOOP: Control multicast loop-back

+

The ZMQ_MCAST_LOOP option shall control whether data sent via multicast +transports using the specified socket can also be received by the sending +host via loop-back. A value of zero disables the loop-back functionality, while +the default value of 1 enables the loop-back functionality. Leaving multicast +loop-back enabled when it is not required can have a negative impact on +performance. Where possible, disable ZMQ_MCAST_LOOP in production +environments.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int64_t +

+
+Option value unit +
+
+

+boolean +

+
+Default value +
+
+

+1 +

+
+Applicable socket types +
+
+

+all, when using multicast transports +

+
+

ZMQ_SNDBUF: Set kernel transmit buffer size

+

The ZMQ_SNDBUF option shall set the underlying kernel transmit buffer size +for the socket to the specified size in bytes. A value of zero means leave +the OS default unchanged. For details please refer to your operating system +documentation for the SO_SNDBUF socket option.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+bytes +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

ZMQ_RCVBUF: Set kernel receive buffer size

+

The ZMQ_RCVBUF option shall set the underlying kernel receive buffer size for +the socket to the specified size in bytes. A value of zero means leave the +OS default unchanged. For details refer to your operating system documentation +for the SO_RCVBUF socket option.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+uint64_t +

+
+Option value unit +
+
+

+bytes +

+
+Default value +
+
+

+0 +

+
+Applicable socket types +
+
+

+all +

+
+

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 closed with +zmq_close(3), and further affects the termination of the socket’s +context with zmq_term(3). The following outlines the different +behaviours:

+
    +
  • +

    +The default value of -1 specifies an infinite linger period. Pending + messages shall not be discarded after a call to zmq_close(); attempting to + terminate the socket’s context with zmq_term() shall block until all + pending messages have been sent to a peer. +

    +
  • +
  • +

    +The value of 0 specifies no linger period. Pending messages shall be + discarded immediately when the socket is closed with zmq_close(). +

    +
  • +
  • +

    +Positive values specify an upper bound for the linger period in milliseconds. + Pending messages shall not be discarded after a call to zmq_close(); + attempting to terminate the socket’s context with zmq_term() shall block + until either all pending messages have been sent to a peer, or the linger + period expires, after which any pending messages shall be discarded. +

    +
    + + + + + + + + + + + + + + + + +
    +Option value type +
    +
    +

    +int +

    +
    +Option value unit +
    +
    +

    +milliseconds +

    +
    +Default value +
    +
    +

    +-1 (infinite) +

    +
    +Applicable socket types +
    +
    +

    +all +

    +
    +
  • +
+

ZMQ_RECONNECT_IVL: Set reconnection interval

+

The ZMQ_RECONNECT_IVL option shall set the initial reconnection interval for +the specified socket. The reconnection interval is the period ØMQ +shall wait between attempts to reconnect disconnected peers when using +connection-oriented transports.

+
+ + + +
+
Note
+
The reconnection interval may be randomized by ØMQ to prevent +reconnection storms in topologies with a large number of peers per socket.
+
+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int +

+
+Option value unit +
+
+

+milliseconds +

+
+Default value +
+
+

+100 +

+
+Applicable socket types +
+
+

+all, only for connection-oriented transports +

+
+

ZMQ_RECONNECT_IVL_MAX: Set maximum reconnection interval

+

The ZMQ_RECONNECT_IVL_MAX option shall set the maximum reconnection interval +for the specified socket. This is the maximum period ØMQ shall wait between +attempts to reconnect. On each reconnect attempt, the previous interval shall be +doubled untill ZMQ_RECONNECT_IVL_MAX is reached. This allows for exponential +backoff strategy. Default value means no exponential backoff is performed and +reconnect interval calculations are only based on ZMQ_RECONNECT_IVL.

+
+ + + +
+
Note
+
Values less than ZMQ_RECONNECT_IVL will be ignored.
+
+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int +

+
+Option value unit +
+
+

+milliseconds +

+
+Default value +
+
+

+0 (only use ZMQ_RECONNECT_IVL) +

+
+Applicable socket types +
+
+

+all, only for connection-oriented transports +

+
+

ZMQ_BACKLOG: Set maximum length of the queue of outstanding connections

+

The ZMQ_BACKLOG option shall set the maximum length of the queue of +outstanding peer connections for the specified socket; this only applies to +connection-oriented transports. For details refer to your operating system +documentation for the listen function.

+
+ + + + + + + + + + + + + + + + +
+Option value type +
+
+

+int +

+
+Option value unit +
+
+

+connections +

+
+Default value +
+
+

+100 +

+
+Applicable socket types +
+
+

+all, only for connection-oriented transports. +

+
+
+

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

+
+
+
+EINVAL +
+
+

+The requested option option_name is unknown, or the requested option_len or +option_value is invalid. +

+
+
+ETERM +
+
+

+The ØMQ context associated with the specified socket was terminated. +

+
+
+EFAULT +
+
+

+The provided socket was not valid (NULL). +

+
+
+EINTR +
+
+

+The operation was interrupted by delivery of a signal. +

+
+
+
+

EXAMPLE

+
+
+
Subscribing to messages on a ZMQ_SUB socket
+
+
/* Subscribe to all messages */
+rc = zmq_setsockopt (socket, ZMQ_SUBSCRIBE, "", 0);
+assert (rc == 0);
+/* Subscribe to messages prefixed with "ANIMALS.CATS" */
+rc = zmq_setsockopt (socket, ZMQ_SUBSCRIBE, "ANIMALS.CATS", 12);
+
+
+
Setting I/O thread affinity
+
+
int64_t affinity;
+/* Incoming connections on TCP port 5555 shall be handled by I/O thread 1 */
+affinity = 1;
+rc = zmq_setsockopt (socket, ZMQ_AFFINITY, &affinity, sizeof affinity);
+assert (rc);
+rc = zmq_bind (socket, "tcp://lo:5555");
+assert (rc);
+/* Incoming connections on TCP port 5556 shall be handled by I/O thread 2 */
+affinity = 2;
+rc = zmq_setsockopt (socket, ZMQ_AFFINITY, &affinity, sizeof affinity);
+assert (rc);
+rc = zmq_bind (socket, "tcp://lo:5556");
+assert (rc);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_socket.3 b/doc/zmq_socket.3 index 000cb0f..fc86d6d 100644 --- a/doc/zmq_socket.3 +++ b/doc/zmq_socket.3 @@ -2,12 +2,12 @@ .\" Title: zmq_socket .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/20/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_SOCKET" "3" "03/20/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_SOCKET" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_socket.html b/doc/zmq_socket.html new file mode 100644 index 0000000..3815b04 --- /dev/null +++ b/doc/zmq_socket.html @@ -0,0 +1,1416 @@ + + + + + +zmq_socket(3) + + + + + +
+

SYNOPSIS

+
+

void *zmq_socket (void *context, int type);

+
+

DESCRIPTION

+
+

The zmq_socket() function shall create a ØMQ 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 +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 zmq_connect(3), or at least one +endpoint must be created for accepting incoming connections with +zmq_bind(3).

+
Key differences to conventional sockets

Generally speaking, conventional sockets present a synchronous interface to +either connection-oriented reliable byte streams (SOCK_STREAM), or +connection-less unreliable datagrams (SOCK_DGRAM). In comparison, ØMQ sockets +present an abstraction of an asynchronous message queue, with the exact +queueing semantics depending on the socket type in use. Where conventional +sockets transfer streams of bytes or discrete datagrams, ØMQ sockets transfer +discrete messages.

+

ØMQ sockets being asynchronous means that the timings of the physical +connection setup and tear down, reconnect and effective delivery are transparent +to the user and organized by ØMQ itself. Further, messages may be queued in +the event that a peer is unavailable to receive them.

+

Conventional sockets allow only strict one-to-one (two peers), many-to-one +(many clients, one server), or in some cases one-to-many (multicast) +relationships. With the exception of ZMQ_PAIR, ØMQ sockets may be connected +to multiple endpoints using zmq_connect(), while simultaneously accepting +incoming connections from multiple endpoints bound to the socket using +zmq_bind(), thus allowing many-to-many relationships.

+
Thread safety

ØMQ sockets are not thread safe. Applications MUST NOT use a socket +from multiple threads except after migrating a socket from one thread to +another with a "full fence" memory barrier.

+
Socket types

The following sections present the socket types defined by ØMQ, grouped by the +general messaging pattern which is built from related socket types.

+

Request-reply pattern

+

The request-reply pattern is used for sending requests from a client to one +or more instances of a service, and receiving subsequent replies to each +request sent.

+

ZMQ_REQ

+

A socket of type ZMQ_REQ is used by a client to send requests to and +receive replies from a service. This socket type allows only an alternating +sequence of zmq_send(request) and subsequent zmq_recv(reply) calls. Each +request sent is load-balanced among all services, and each reply received is +matched with the last issued request.

+

When a ZMQ_REQ socket enters an exceptional state due to having reached the +high water mark for all services, or if there are no services at all, then +any zmq_send(3) operations on the socket shall block until the +exceptional state ends or at least one service becomes available for sending; +messages are not discarded.

+
Summary of ZMQ_REQ characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_REP +

+
+Direction +
+
+

+Bidirectional +

+
+Send/receive pattern +
+
+

+Send, Receive, Send, Receive, … +

+
+Outgoing routing strategy +
+
+

+Load-balanced +

+
+Incoming routing strategy +
+
+

+Last peer +

+
+ZMQ_HWM option action +
+
+

+Block +

+
+

ZMQ_REP

+

A socket of type ZMQ_REP is used by a service to receive requests from and +send replies to a client. This socket type allows only an alternating +sequence of zmq_recv(request) and subsequent zmq_send(reply) calls. Each +request received is fair-queued from among all clients, and each reply sent +is routed to the client that issued the last request. If the original +requester doesn’t exist any more the reply is silently discarded.

+

When a ZMQ_REP socket enters an exceptional state due to having reached the +high water mark for a client, then any replies sent to the client in +question shall be dropped until the exceptional state ends.

+
Summary of ZMQ_REP characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_REQ +

+
+Direction +
+
+

+Bidirectional +

+
+Send/receive pattern +
+
+

+Receive, Send, Receive, Send, … +

+
+Incoming routing strategy +
+
+

+Fair-queued +

+
+Outgoing routing strategy +
+
+

+Last peer +

+
+ZMQ_HWM option action +
+
+

+Drop +

+
+

ZMQ_DEALER

+

A socket of type ZMQ_DEALER is an advanced pattern used for extending +request/reply sockets. Each message sent is load-balanced among all connected +peers, and each message received is fair-queued from all connected peers.

+

Previously this socket was called ZMQ_XREQ and that name remains available +for backwards compatibility.

+

When a ZMQ_DEALER socket enters an exceptional state due to having reached the +high water mark for all peers, or if there are no peers at all, then any +zmq_send(3) operations on the socket shall block until the exceptional +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 +must consist of an empty message part, the delimiter, followed by one or more +body parts.

+
Summary of ZMQ_DEALER characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_ROUTER, ZMQ_REP +

+
+Direction +
+
+

+Bidirectional +

+
+Send/receive pattern +
+
+

+Unrestricted +

+
+Outgoing routing strategy +
+
+

+Load-balanced +

+
+Incoming routing strategy +
+
+

+Fair-queued +

+
+ZMQ_HWM option action +
+
+

+Block +

+
+

ZMQ_ROUTER

+

A socket of type ZMQ_ROUTER is an advanced pattern used for extending +request/reply sockets. When receiving messages a ZMQ_ROUTER socket shall +prepend a message part containing the identity of the originating peer to the +message before passing it to the application. Messages received are fair-queued +from among all connected peers. When sending messages a ZMQ_ROUTER socket shall +remove the first part of the message and use it to determine the identity of +the peer the message shall be routed to. If the peer does not exist anymore +the message shall be silently discarded.

+

Previously this socket was called ZMQ_XREP and that name remains available +for backwards compatibility.

+

When a ZMQ_ROUTER socket enters an exceptional state due to having reached the +high water mark for all peers, or if there are no peers at all, then any +messages sent to the socket shall be dropped until the exceptional state ends. +Likewise, any messages routed to a non-existent peer or a peer for which the +individual high water mark has been reached shall also be dropped.

+

When a ZMQ_REQ socket is connected to a ZMQ_ROUTER socket, in addition to the +identity of the originating peer each message received shall contain an empty +delimiter message part. Hence, the entire structure of each received message +as seen by the application becomes: one or more identity parts, delimiter +part, one or more body parts. When sending replies to a ZMQ_REQ socket the +application must include the delimiter part.

+
Summary of ZMQ_ROUTER characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_DEALER, ZMQ_REQ +

+
+Direction +
+
+

+Bidirectional +

+
+Send/receive pattern +
+
+

+Unrestricted +

+
+Outgoing routing strategy +
+
+

+See text +

+
+Incoming routing strategy +
+
+

+Fair-queued +

+
+ZMQ_HWM option action +
+
+

+Drop +

+
+

Publish-subscribe pattern

+

The publish-subscribe pattern is used for one-to-many distribution of data from +a single publisher to multiple subscribers in a fan out fashion.

+

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 zmq_recv(3) function is not implemented for this socket type.

+

When a ZMQ_PUB socket enters an exceptional state due to having reached the +high water mark for a subscriber, then any messages that would be sent to the +subscriber in question shall instead be dropped until the exceptional state +ends. The zmq_send() function shall never block for this socket type.

+
Summary of ZMQ_PUB characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_SUB +

+
+Direction +
+
+

+Unidirectional +

+
+Send/receive pattern +
+
+

+Send only +

+
+Incoming routing strategy +
+
+

+N/A +

+
+Outgoing routing strategy +
+
+

+Fan out +

+
+ZMQ_HWM option action +
+
+

+Drop +

+
+

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 zmq_setsockopt(3) to +specify which messages to subscribe to. The zmq_send() function is not +implemented for this socket type.

+
Summary of ZMQ_SUB characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_PUB +

+
+Direction +
+
+

+Unidirectional +

+
+Send/receive pattern +
+
+

+Receive only +

+
+Incoming routing strategy +
+
+

+Fair-queued +

+
+Outgoing routing strategy +
+
+

+N/A +

+
+ZMQ_HWM option action +
+
+

+Drop +

+
+

Pipeline pattern

+

The pipeline pattern is used for distributing data to nodes arranged in +a pipeline. Data always flows down the pipeline, and each stage of the pipeline +is connected to at least one node. When a pipeline stage is connected to +multiple nodes data is load-balanced among all connected nodes.

+

ZMQ_PUSH

+

A socket of type ZMQ_PUSH is used by a pipeline node to send messages +to downstream pipeline nodes. Messages are load-balanced to all connected +downstream nodes. The zmq_recv() function is not implemented for this +socket type.

+

When a ZMQ_PUSH socket enters an exceptional state due to having reached the +high water mark for all downstream nodes, or if there are no downstream +nodes at all, then any zmq_send(3) operations on the socket shall +block until the exceptional state ends or at least one downstream node +becomes available for sending; messages are not discarded.

+

Deprecated alias: ZMQ_DOWNSTREAM.

+
Summary of ZMQ_PUSH characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_PULL +

+
+Direction +
+
+

+Unidirectional +

+
+Send/receive pattern +
+
+

+Send only +

+
+Incoming routing strategy +
+
+

+N/A +

+
+Outgoing routing strategy +
+
+

+Load-balanced +

+
+ZMQ_HWM option action +
+
+

+Block +

+
+

ZMQ_PULL

+

A socket of type ZMQ_PULL is used by a pipeline node to receive messages +from upstream pipeline nodes. Messages are fair-queued from among all +connected upstream nodes. The zmq_send() function is not implemented for +this socket type.

+

Deprecated alias: ZMQ_UPSTREAM.

+
Summary of ZMQ_PULL characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_PUSH +

+
+Direction +
+
+

+Unidirectional +

+
+Send/receive pattern +
+
+

+Receive only +

+
+Incoming routing strategy +
+
+

+Fair-queued +

+
+Outgoing routing strategy +
+
+

+N/A +

+
+ZMQ_HWM option action +
+
+

+N/A +

+
+

Exclusive pair pattern

+

The exclusive pair pattern is used to connect a peer to precisely one other +peer. This pattern is used for inter-thread communication across the inproc +transport.

+

ZMQ_PAIR

+

A socket of type ZMQ_PAIR 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_PAIR socket.

+

When a ZMQ_PAIR socket enters an exceptional state due to having reached the +high water mark for the connected peer, or if no peer is connected, then +any zmq_send(3) operations on the socket shall block until the peer +becomes available for sending; messages are not discarded.

+
+ + + +
+
Note
+
ZMQ_PAIR sockets are designed for inter-thread communication across +the zmq_inproc(7) transport and do not implement functionality such +as auto-reconnection. ZMQ_PAIR sockets are considered experimental and may +have other missing or broken aspects.
+
+
Summary of ZMQ_PAIR characteristics
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Compatible peer sockets +
+
+

+ZMQ_PAIR +

+
+Direction +
+
+

+Bidirectional +

+
+Send/receive pattern +
+
+

+Unrestricted +

+
+Incoming routing strategy +
+
+

+N/A +

+
+Outgoing routing strategy +
+
+

+N/A +

+
+ZMQ_HWM option action +
+
+

+Block +

+
+
+

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

+
+
+
+EINVAL +
+
+

+The requested socket type is invalid. +

+
+
+EFAULT +
+
+

+The provided context was not valid (NULL). +

+
+
+ETERM +
+
+

+The context specified was terminated. +

+
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_strerror.3 b/doc/zmq_strerror.3 index 43bb42e..e334d86 100644 --- a/doc/zmq_strerror.3 +++ b/doc/zmq_strerror.3 @@ -2,12 +2,12 @@ .\" Title: zmq_strerror .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_STRERROR" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_STRERROR" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_strerror.html b/doc/zmq_strerror.html new file mode 100644 index 0000000..2648aa5 --- /dev/null +++ b/doc/zmq_strerror.html @@ -0,0 +1,634 @@ + + + + + +zmq_strerror(3) + + + + + +
+

SYNOPSIS

+
+

const char *zmq_strerror (int errnum);

+
+

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 ØMQ +defines additional error numbers over and above those defined by the operating +system, applications should use zmq_strerror() in preference to the standard +strerror() function.

+
+

RETURN VALUE

+
+

The zmq_strerror() function shall return a pointer to an error message +string.

+
+

ERRORS

+
+

No errors are defined.

+
+

EXAMPLE

+
+
+
Displaying an error message when a ØMQ context cannot be initialised
+
+
void *ctx = zmq_init (1, 1, 0);
+if (!ctx) {
+    printf ("Error occurred during zmq_init(): %s\n", zmq_strerror (errno));
+    abort ();
+}
+
+
+

SEE ALSO

+
+ +
+

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_tcp.7 b/doc/zmq_tcp.7 index 08fba12..cee6c1b 100644 --- a/doc/zmq_tcp.7 +++ b/doc/zmq_tcp.7 @@ -2,12 +2,12 @@ .\" Title: zmq_tcp .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_TCP" "7" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_TCP" "7" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_tcp.html b/doc/zmq_tcp.html new file mode 100644 index 0000000..78356f5 --- /dev/null +++ b/doc/zmq_tcp.html @@ -0,0 +1,755 @@ + + + + + +zmq_tcp(7) + + + + + +
+

SYNOPSIS

+
+

TCP is an ubiquitous, reliable, unicast transport. When connecting distributed +applications over a network with ØMQ, using the TCP transport will likely be +your first choice.

+
+

ADDRESSING

+
+

A ØMQ address string consists of two parts as follows: +transport://endpoint. The transport part specifies the underlying +transport protocol to use, and for the TCP transport shall be set to tcp. +The meaning of the endpoint part for the TCP transport is defined below.

+

Assigning a local address to a socket

+

When assigning a local address to a socket using zmq_bind() with the tcp +transport, the endpoint shall be interpreted as an interface followed by a +colon and the TCP port number to use.

+

An interface may be specified by either of the following:

+
    +
  • +

    +The wild-card *, meaning all available interfaces. +

    +
  • +
  • +

    +The primary IPv4 address assigned to the interface, in its numeric + representation. +

    +
  • +
  • +

    +The interface name as defined by the operating system. +

    +
  • +
+
+ + + +
+
Note
+
Interface names are not standardised in any way and should be assumed to +be arbitrary and platform dependent. On Win32 platforms no short interface +names exist, thus only the primary IPv4 address may be used to specify an +interface.
+
+

Connecting a socket

+

When connecting a socket to a peer address using zmq_connect() with the tcp +transport, the endpoint shall be interpreted as a peer address followed by +a colon and the TCP port number to use.

+

A peer address may be specified by either of the following:

+
    +
  • +

    +The DNS name of the peer. +

    +
  • +
  • +

    +The IPv4 address of the peer, in it’s numeric representation. +

    +
  • +
+
+

WIRE FORMAT

+
+

ØMQ messages are transmitted over TCP in frames consisting of an encoded +payload length, followed by a flags field and the message body. The payload +length is defined as the combined length in octets of the message body and the +flags field.

+

For frames with a payload length not exceeding 254 octets, the payload +length shall be encoded as a single octet. The minimum valid payload length +of a frame is 1 octet, thus a payload length of 0 octets is invalid and such +frames SHOULD be ignored.

+

For frames with a payload length exceeding 254 octets, the payload length +shall be encoded as a single octet with the value 255 followed by the +payload length represented as a 64-bit unsigned integer in network byte +order.

+

The flags field consists of a single octet containing various control flags:

+

Bit 0 (MORE): More message parts to follow. A value of 0 indicates that there +are no more message parts to follow; or that the message being sent is not a +multi-part message. A value of 1 indicates that the message being sent is a +multi-part message and more message parts are to follow.

+

Bits 1-7: Reserved. Bits 1-7 are reserved for future expansion and MUST be +set to zero.

+

The following ABNF grammar represents a single frame:

+
+
+
    frame           = (length flags data)
+    length          = OCTET / (escape 8OCTET)
+    flags           = OCTET
+    escape          = %xFF
+    data            = *OCTET
+
+

The following diagram illustrates the layout of a frame with a payload length +not exceeding 254 octets:

+
+
+
0                   1                   2                   3
+0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Payload length|     Flags     |       Message body        ... |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Message body ...
++-+-+-+-+-+-+- ...
+
+

The following diagram illustrates the layout of a frame with a payload length +exceeding 254 octets:

+
+
+
0                   1                   2                   3
+0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|     0xff      |               Payload length              ... |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|                       Payload length                      ... |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Payload length|     Flags     |        Message body       ... |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+|  Message body ...
++-+-+-+-+-+-+-+ ...
+
+
+

EXAMPLES

+
+
+
Assigning a local address to a socket
+
+
/* TCP port 5555 on all available interfaces */
+rc = zmq_bind(socket, "tcp://*:5555");
+assert (rc == 0);
+/* TCP port 5555 on the local loop-back interface on all platforms */
+rc = zmq_bind(socket, "tcp://127.0.0.1:5555");
+assert (rc == 0);
+/* TCP port 5555 on the first Ethernet network interface on Linux */
+rc = zmq_bind(socket, "tcp://eth0:5555");
+assert (rc == 0);
+
+
+
Connecting a socket
+
+
/* Connecting using an IP address */
+rc = zmq_connect(socket, "tcp://192.168.1.1:5555");
+assert (rc == 0);
+/* Connecting using a DNS name */
+rc = zmq_connect(socket, "tcp://server1:5555");
+assert (rc == 0);
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_term.3 b/doc/zmq_term.3 index 608df99..f45add6 100644 --- a/doc/zmq_term.3 +++ b/doc/zmq_term.3 @@ -2,12 +2,12 @@ .\" Title: zmq_term .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_TERM" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_TERM" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_term.html b/doc/zmq_term.html new file mode 100644 index 0000000..590897a --- /dev/null +++ b/doc/zmq_term.html @@ -0,0 +1,672 @@ + + + + + +zmq_term(3) + + + + + +
+

SYNOPSIS

+
+

int zmq_term (void *context);

+
+

DESCRIPTION

+
+

The zmq_term() function shall terminate the ØMQ 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. +
  3. +

    +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. +

      +
    • +
    +
  4. +
+

For further details regarding socket linger behaviour refer to the ZMQ_LINGER +option in zmq_setsockopt(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 not valid (NULL). +

+
+
+EINTR +
+
+

+Termination was interrupted by a signal. It can be restarted if needed. +

+
+
+
+

SEE ALSO

+ +

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/doc/zmq_version.3 b/doc/zmq_version.3 index 36248e5..c8fcd6e 100644 --- a/doc/zmq_version.3 +++ b/doc/zmq_version.3 @@ -2,12 +2,12 @@ .\" Title: zmq_version .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 03/15/2011 +.\" Date: 03/30/2011 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.3 +.\" Source: 0MQ 2.1.4 .\" Language: English .\" -.TH "ZMQ_VERSION" "3" "03/15/2011" "0MQ 2\&.1\&.3" "0MQ Manual" +.TH "ZMQ_VERSION" "3" "03/30/2011" "0MQ 2\&.1\&.4" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/zmq_version.html b/doc/zmq_version.html new file mode 100644 index 0000000..fc59a72 --- /dev/null +++ b/doc/zmq_version.html @@ -0,0 +1,632 @@ + + + + + +zmq_version(3) + + + + + +
+

SYNOPSIS

+
+

void zmq_version (int *major, int *minor, int *patch);

+
+

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 ØMQ library version.

+

This functionality is intended for applications or language bindings +dynamically linking to the ØMQ library that wish to determine the actual +version of the ØMQ library they are using.

+
+

RETURN VALUE

+
+

There is no return value.

+
+

ERRORS

+
+

No errors are defined.

+
+

EXAMPLE

+
+
+
Printing out the version of the ØMQ library
+
+
int major, minor, patch;
+zmq_version (&major, &minor, &patch);
+printf ("Current 0MQ version is %d.%d.%d\n", major, minor, patch);
+
+
+

SEE ALSO

+
+ +
+

AUTHORS

+
+

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and +Martin Lucina <mato@kotelna.sk>.

+
+
+

+ + + diff --git a/foreign/openpgm/Makefile.am b/foreign/openpgm/Makefile.am new file mode 100644 index 0000000..665b457 --- /dev/null +++ b/foreign/openpgm/Makefile.am @@ -0,0 +1,8 @@ +SUBDIRS = $(pgm_subdir) +DIST_SUBDIRS = +# Override Automake's installation targets with the command ":" that does nothing. +install:; @: +install-exec:; @: +install-data:; @: +uninstall:; @: +dist:; @; diff --git a/foreign/openpgm/Makefile.in b/foreign/openpgm/Makefile.in new file mode 100644 index 0000000..5d5fe7b --- /dev/null +++ b/foreign/openpgm/Makefile.in @@ -0,0 +1,583 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = foreign/openpgm +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/platform.hpp +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +ASCIIDOC = @ASCIIDOC@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBZMQ_EXTRA_CFLAGS = @LIBZMQ_EXTRA_CFLAGS@ +LIBZMQ_EXTRA_CXXFLAGS = @LIBZMQ_EXTRA_CXXFLAGS@ +LIBZMQ_EXTRA_LDFLAGS = @LIBZMQ_EXTRA_LDFLAGS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LTVER = @LTVER@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +XMLTO = @XMLTO@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_zmq_have_asciidoc = @ac_zmq_have_asciidoc@ +ac_zmq_have_xmlto = @ac_zmq_have_xmlto@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pgm_basename = @pgm_basename@ +pgm_srcdir = @pgm_srcdir@ +pgm_subdir = @pgm_subdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = $(pgm_subdir) +DIST_SUBDIRS = +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign foreign/openpgm/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign foreign/openpgm/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + +# Override Automake's installation targets with the command ":" that does nothing. +install:; @: +install-exec:; @: +install-data:; @: +uninstall:; @: +dist:; @; + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/foreign/openpgm/libpgm-5.1.114~dfsg.tar.gz b/foreign/openpgm/libpgm-5.1.114~dfsg.tar.gz deleted file mode 100644 index 80b1f65..0000000 Binary files a/foreign/openpgm/libpgm-5.1.114~dfsg.tar.gz and /dev/null differ diff --git a/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz b/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz new file mode 100644 index 0000000..a0c5b7a Binary files /dev/null and b/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz differ diff --git a/include/zmq.h b/include/zmq.h index 6cdb085..6cb61b1 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -55,7 +55,7 @@ extern "C" { /* Version macros for compile-time API version detection */ #define ZMQ_VERSION_MAJOR 2 #define ZMQ_VERSION_MINOR 1 -#define ZMQ_VERSION_PATCH 3 +#define ZMQ_VERSION_PATCH 4 #define ZMQ_MAKE_VERSION(major, minor, patch) \ ((major) * 10000 + (minor) * 100 + (patch)) diff --git a/perf/Makefile.in b/perf/Makefile.in index 85b45cc..6467714 100644 --- a/perf/Makefile.in +++ b/perf/Makefile.in @@ -218,6 +218,7 @@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pgm_basename = @pgm_basename@ pgm_srcdir = @pgm_srcdir@ +pgm_subdir = @pgm_subdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff --git a/src/Makefile.in b/src/Makefile.in index 4202973..a052a08 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -275,6 +275,7 @@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pgm_basename = @pgm_basename@ pgm_srcdir = @pgm_srcdir@ +pgm_subdir = @pgm_subdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff --git a/src/platform.hpp.in b/src/platform.hpp.in index 09943ee..9ac777f 100644 --- a/src/platform.hpp.in +++ b/src/platform.hpp.in @@ -9,9 +9,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you have the `epoll_create' function. */ -#undef HAVE_EPOLL_CREATE - /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H @@ -21,15 +18,6 @@ /* Define to 1 if you have the `getifaddrs' function. */ #undef HAVE_GETIFADDRS -/* Define to 1 if you have the `getopt' function. */ -#undef HAVE_GETOPT - -/* Define to 1 if you have the `getprotobyname_r' function. */ -#undef HAVE_GETPROTOBYNAME_R - -/* Define to 1 if you have the `getprotobyname_r2' function. */ -#undef HAVE_GETPROTOBYNAME_R2 - /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY @@ -84,12 +72,6 @@ /* Define to 1 if you have the `perror' function. */ #undef HAVE_PERROR -/* Define to 1 if you have the `poll' function. */ -#undef HAVE_POLL - -/* Define to 1 if you have the `pselect' function. */ -#undef HAVE_PSELECT - /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET @@ -126,9 +108,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define to 1 if you have the `vasprintf' function. */ -#undef HAVE_VASPRINTF - /* Define to 1 if you have the header file. */ #undef HAVE_WINDOWS_H diff --git a/tests/Makefile.in b/tests/Makefile.in index f6c9c15..6f62264 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -274,6 +274,7 @@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pgm_basename = @pgm_basename@ pgm_srcdir = @pgm_srcdir@ +pgm_subdir = @pgm_subdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff --git a/zeromq.spec b/zeromq.spec index eda5786..303a524 100644 --- a/zeromq.spec +++ b/zeromq.spec @@ -1,5 +1,5 @@ Name: zeromq -Version: 2.1.3 +Version: 2.1.4 Release: 1%{?dist} Summary: The ZeroMQ messaging library Group: Applications/Internet @@ -91,14 +91,7 @@ This package contains ZeroMQ related development libraries and header files. %{_libdir}/libzmq.so.1 %{_libdir}/libzmq.so.1.0.0 -%attr(0755,root,root) %{_bindir}/zmq_forwarder -%attr(0755,root,root) %{_bindir}/zmq_queue -%attr(0755,root,root) %{_bindir}/zmq_streamer - %{_mandir}/man7/zmq.7.gz -%{_mandir}/man1/zmq_forwarder.1.gz -%{_mandir}/man1/zmq_queue.1.gz -%{_mandir}/man1/zmq_streamer.1.gz %files devel %defattr(-,root,root,-) @@ -115,6 +108,7 @@ This package contains ZeroMQ related development libraries and header files. %{_mandir}/man3/zmq_close.3.gz %{_mandir}/man3/zmq_connect.3.gz %{_mandir}/man3/zmq_errno.3.gz +%{_mandir}/man7/zmq_device.3.gz %{_mandir}/man3/zmq_getsockopt.3.gz %{_mandir}/man3/zmq_init.3.gz %{_mandir}/man3/zmq_msg_close.3.gz -- cgit v1.2.3