From 56619463ac26dc6c3e576d2fbf6b544eebeb5148 Mon Sep 17 00:00:00 2001 From: Martin Lucina Date: Sun, 20 May 2012 11:24:59 +0200 Subject: Imported Upstream version 2.2.0 --- ChangeLog | 432 ++++++++++++++++++++++++++++++++++++++++++++ INSTALL | 4 +- NEWS | 22 +++ acinclude.m4 | 190 +++++++++++++++++++ configure | 368 +++++++++++++++++++++++++++++++++++-- configure.in | 10 +- doc/zmq.7 | 20 +- doc/zmq.html | 197 ++++++++++++-------- doc/zmq.txt | 3 +- doc/zmq_bind.3 | 19 +- doc/zmq_bind.html | 163 ++++++++++------- doc/zmq_bind.txt | 3 +- doc/zmq_close.3 | 19 +- doc/zmq_close.html | 161 ++++++++++------- doc/zmq_close.txt | 3 +- doc/zmq_connect.3 | 19 +- doc/zmq_connect.html | 163 ++++++++++------- doc/zmq_connect.txt | 3 +- doc/zmq_cpp.7 | 19 +- doc/zmq_cpp.html | 275 ++++++++++++++++------------ doc/zmq_cpp.txt | 3 +- doc/zmq_device.3 | 27 +-- doc/zmq_device.html | 175 ++++++++++-------- doc/zmq_device.txt | 16 +- doc/zmq_epgm.7 | 19 +- doc/zmq_epgm.html | 171 +++++++++++------- doc/zmq_epgm.txt | 4 +- doc/zmq_errno.3 | 19 +- doc/zmq_errno.html | 161 ++++++++++------- doc/zmq_errno.txt | 3 +- doc/zmq_getsockopt.3 | 97 ++++++++-- doc/zmq_getsockopt.html | 343 ++++++++++++++++++++++++++--------- doc/zmq_getsockopt.txt | 35 +++- doc/zmq_init.3 | 19 +- doc/zmq_init.html | 161 ++++++++++------- doc/zmq_init.txt | 3 +- doc/zmq_inproc.7 | 19 +- doc/zmq_inproc.html | 169 ++++++++++------- doc/zmq_inproc.txt | 3 +- doc/zmq_ipc.7 | 19 +- doc/zmq_ipc.html | 169 ++++++++++------- doc/zmq_ipc.txt | 3 +- doc/zmq_msg_close.3 | 19 +- doc/zmq_msg_close.html | 161 ++++++++++------- doc/zmq_msg_close.txt | 3 +- doc/zmq_msg_copy.3 | 19 +- doc/zmq_msg_copy.html | 161 ++++++++++------- doc/zmq_msg_copy.txt | 3 +- doc/zmq_msg_data.3 | 19 +- doc/zmq_msg_data.html | 161 ++++++++++------- doc/zmq_msg_data.txt | 3 +- doc/zmq_msg_init.3 | 19 +- doc/zmq_msg_init.html | 163 ++++++++++------- doc/zmq_msg_init.txt | 3 +- doc/zmq_msg_init_data.3 | 19 +- doc/zmq_msg_init_data.html | 163 ++++++++++------- doc/zmq_msg_init_data.txt | 3 +- doc/zmq_msg_init_size.3 | 19 +- doc/zmq_msg_init_size.html | 161 ++++++++++------- doc/zmq_msg_init_size.txt | 3 +- doc/zmq_msg_move.3 | 19 +- doc/zmq_msg_move.html | 161 ++++++++++------- doc/zmq_msg_move.txt | 3 +- doc/zmq_msg_size.3 | 19 +- doc/zmq_msg_size.html | 161 ++++++++++------- doc/zmq_msg_size.txt | 3 +- doc/zmq_pgm.7 | 19 +- doc/zmq_pgm.html | 171 +++++++++++------- doc/zmq_pgm.txt | 4 +- doc/zmq_poll.3 | 19 +- doc/zmq_poll.html | 163 ++++++++++------- doc/zmq_poll.txt | 3 +- doc/zmq_recv.3 | 19 +- doc/zmq_recv.html | 167 ++++++++++------- doc/zmq_recv.txt | 3 +- doc/zmq_send.3 | 19 +- doc/zmq_send.html | 167 ++++++++++------- doc/zmq_send.txt | 3 +- doc/zmq_setsockopt.3 | 97 ++++++++-- doc/zmq_setsockopt.html | 335 +++++++++++++++++++++++++--------- doc/zmq_setsockopt.txt | 35 +++- doc/zmq_socket.3 | 19 +- doc/zmq_socket.html | 7 +- doc/zmq_socket.txt | 3 +- doc/zmq_strerror.3 | 19 +- doc/zmq_strerror.html | 163 ++++++++++------- doc/zmq_strerror.txt | 3 +- doc/zmq_tcp.7 | 19 +- doc/zmq_tcp.html | 169 ++++++++++------- doc/zmq_tcp.txt | 3 +- doc/zmq_term.3 | 19 +- doc/zmq_term.html | 161 ++++++++++------- doc/zmq_term.txt | 3 +- doc/zmq_version.3 | 19 +- doc/zmq_version.html | 163 ++++++++++------- doc/zmq_version.txt | 4 +- include/zmq.h | 8 +- include/zmq.hpp | 13 +- src/Makefile.am | 1 + src/Makefile.in | 1 + src/blob.hpp | 4 + src/clock.cpp | 19 +- src/command.hpp | 4 +- src/ctx.hpp | 2 +- src/encoder.cpp | 4 +- src/gcc_421_char_traits.hpp | 119 ++++++++++++ src/options.cpp | 49 ++++- src/options.hpp | 4 + src/platform.hpp.in | 3 + src/socket_base.cpp | 8 +- src/trie.cpp | 31 +++- src/trie.hpp | 3 + tests/Makefile.am | 4 +- tests/Makefile.in | 21 ++- tests/test_timeo.cpp | 125 +++++++++++++ zeromq.spec | 2 +- 116 files changed, 4993 insertions(+), 2629 deletions(-) create mode 100644 src/gcc_421_char_traits.hpp create mode 100644 tests/test_timeo.cpp diff --git a/ChangeLog b/ChangeLog index 9161480..98c598f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,437 @@ # Generated by Makefile. Do not edit. +commit 8daada4bdc41bfe9da9e3c93c8b0f6c04a6cb0ec +Author: Pieter Hintjens +Date: Tue Apr 10 20:30:31 2012 +0200 + + gcc_421_char_traits.hpp was missing from tarballs + + src/Makefile.am | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit fb64b8801cd02776e1524aedc41083f9bf876e4d +Merge: 2bdb487 f2a8fa1 +Author: Pieter Hintjens +Date: Wed Apr 4 04:36:54 2012 -0700 + + Merge pull request #47 from pieterh/master + + Bumped version for next release (2.2.1) + +commit f2a8fa1de6d92c5264ff19e3ed05af115069edc0 +Author: Pieter Hintjens +Date: Wed Apr 4 12:26:45 2012 +0100 + + Bumped version number to 2.2.1 for next release + + include/zmq.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 2bdb487abbe69984ec264ddcb785e032e1b0419f +Merge: bfd04c5 0b2f5cb +Author: Pieter Hintjens +Date: Wed Apr 4 04:11:29 2012 -0700 + + Merge pull request #46 from pieterh/master + + Preparing for release 2.2.0 + +commit 0b2f5cbac93b674e6282cc85222b64cf6a17950a +Author: Pieter Hintjens +Date: Wed Apr 4 12:06:28 2012 +0100 + + Fixed man pages for release 2.2.0 + + * Fixed new entries for getsockopt/setsockopt SNDTIMEO and RCVTIMEO + * Removed individual authorship from man page footers + + doc/zmq.txt | 3 +- + doc/zmq_bind.txt | 3 +- + doc/zmq_close.txt | 3 +- + doc/zmq_connect.txt | 3 +- + doc/zmq_cpp.txt | 3 +- + doc/zmq_device.txt | 16 +---------- + doc/zmq_errno.txt | 3 +- + doc/zmq_getsockopt.txt | 67 ++++++++++++++++++++++----------------------- + doc/zmq_init.txt | 3 +- + doc/zmq_inproc.txt | 3 +- + doc/zmq_ipc.txt | 3 +- + doc/zmq_msg_close.txt | 3 +- + doc/zmq_msg_copy.txt | 3 +- + doc/zmq_msg_data.txt | 3 +- + doc/zmq_msg_init.txt | 3 +- + doc/zmq_msg_init_data.txt | 3 +- + doc/zmq_msg_init_size.txt | 3 +- + doc/zmq_msg_move.txt | 3 +- + doc/zmq_msg_size.txt | 3 +- + doc/zmq_pgm.txt | 4 +- + doc/zmq_poll.txt | 3 +- + doc/zmq_recv.txt | 3 +- + doc/zmq_send.txt | 3 +- + doc/zmq_setsockopt.txt | 67 ++++++++++++++++++++++----------------------- + doc/zmq_socket.txt | 3 +- + doc/zmq_strerror.txt | 3 +- + doc/zmq_tcp.txt | 3 +- + doc/zmq_term.txt | 3 +- + doc/zmq_version.txt | 4 +- + 29 files changed, 95 insertions(+), 135 deletions(-) + +commit 87cce25bd9b31a192297bc4213f45107f5a1b796 +Author: Pieter Hintjens +Date: Wed Apr 4 11:53:58 2012 +0100 + + Updated product version to 2.2.0 + + include/zmq.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 33af4869733de3f646daf2bafc242f813fb927f4 +Author: Pieter Hintjens +Date: Wed Apr 4 11:53:02 2012 +0100 + + Updated ABI version to 1.1.0 + + configure.in | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit b0d95774000b930125f24450f9e080b9e8b63a0c +Author: Pieter Hintjens +Date: Wed Apr 4 11:50:50 2012 +0100 + + Updated NEWS for version 2.2.0 + + NEWS | 11 +++++++---- + 1 files changed, 7 insertions(+), 4 deletions(-) + +commit bfd04c5b867890b4d6a563f2a7d95b5d183e84ba +Merge: 6ab8ef0 1e5c6fa +Author: Pieter Hintjens +Date: Tue Apr 3 05:27:13 2012 -0700 + + Merge pull request #45 from jhawk28/master + + Fix issue 349 + +commit 1e5c6fa0077dcd5767bc557fbccaf383dee98339 +Author: Joshua Foster +Date: Sun Apr 1 20:44:26 2012 -0400 + + Fix issue 349 + + https://zeromq.jira.com/browse/LIBZMQ-349 + Add the send/recv socket options from 3.1.0. + + .gitignore | 1 + + NEWS | 2 + + doc/zmq_getsockopt.txt | 32 ++++++++++++ + doc/zmq_setsockopt.txt | 32 ++++++++++++ + include/zmq.h | 4 +- + src/options.cpp | 39 +++++++++++++++- + src/options.hpp | 4 ++ + src/socket_base.cpp | 8 ++-- + tests/Makefile.am | 4 +- + tests/test_timeo.cpp | 125 ++++++++++++++++++++++++++++++++++++++++++++++++ + 10 files changed, 244 insertions(+), 7 deletions(-) + +commit 6ab8ef084242299a9b8ada00b500126e465f6618 +Author: Pieter Hintjens +Date: Tue Mar 20 14:48:45 2012 -0500 + + Updated NEWS for issue 342 + + NEWS | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 6f3967176b1d3b6f0f586cc92848f9f6e80ee912 +Merge: 24f1175 4b8ace2 +Author: Pieter Hintjens +Date: Tue Mar 20 12:47:19 2012 -0700 + + Merge pull request #42 from yisding/master + + missing algorithm include + +commit 24f1175d942323697bff6ed1690ffbdcf2f33631 +Merge: 25c7cd0 48f70a8 +Author: Chuck Remes +Date: Tue Mar 20 09:40:20 2012 -0700 + + Merge pull request #44 from pieterh/master + + Fixed issue LIBZMQ-293 - libzmq doesn't follow ZMTP/1.0 spec + +commit 48f70a88a31245667fccd5227d60cac34a06855f +Author: Pieter Hintjens +Date: Tue Mar 20 11:28:36 2012 -0500 + + Fixed issue #293 - libzmq doesn't follow ZMTP/1.0 spec + + NEWS | 4 +++- + src/encoder.cpp | 4 ++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +commit 25c7cd0691b77770a4b85a13964e22d2274da4b7 +Author: Pieter Hintjens +Date: Tue Mar 20 11:05:26 2012 -0500 + + Updated for issue 332 + + NEWS | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 033907f2b810f8476c300c169e0fa6b912a56e22 +Author: Pieter Hintjens +Date: Thu Feb 16 12:14:56 2012 -0600 + + Updated NEWS for PR #36 + + NEWS | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit e4d7ad2643ac4e5391ae3939d3e19b6b0a05830f +Merge: ec3e95a ba61dde +Author: Pieter Hintjens +Date: Tue Mar 20 09:02:55 2012 -0700 + + Merge pull request #43 from jlopex/master + + Fixes issue LIBZMQ-332 + +commit ba61dde6730aa79f05450a8b56b22dbf528eb57c +Author: Javier Lopez +Date: Mon Mar 19 19:13:56 2012 -0700 + + Fixes zeromq 2.1 not compiling on Android + + According to the libc documentation S_IWRITE is only for BSD + compatibility: + + http://www.gnu.org/s/hello/manual/libc/Permission-Bits.html + + This patch adds a check to determine the target platform and + use correct file access definition in each case: + + - For Linux and Android S_IWUSR is used. + - For other platforms S_IWRITE is used. + + Signed-off-by: Javier Lopez + + src/options.cpp | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +commit 4b8ace2e68b2a50caad1b6204335aa00720c1c8e +Author: Yi Ding +Date: Sun Feb 19 15:13:27 2012 -0600 + + Add algorithm include for std::swap + + include/zmq.hpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit ec3e95a67e9fba9542e45aeadd5bd9fc22ea6dfa +Merge: 71dc626 dbf1db2 +Author: Pieter Hintjens +Date: Thu Feb 16 10:16:29 2012 -0800 + + Merge pull request #40 from gitfoxi/master + + Backport some build fixes for old-ass Linux from libzmq development. + +commit 71dc626e82100e9be7a61d92f1f9e51aa50fa40c +Merge: 80b2764 ec070c5 +Author: Pieter Hintjens +Date: Thu Feb 16 10:15:37 2012 -0800 + + Merge pull request #38 from jtzl/master + + updated INSTALL documentation as per pull request #37 + +commit 80b27649bc1d00fde72b98d79d9f407dfee0c30a +Merge: e23eb9d 5361000 +Author: Pieter Hintjens +Date: Thu Feb 16 10:13:26 2012 -0800 + + Merge pull request #36 from gimaker/trie-pruning + + Backport fix to prune the trie from zmq3 (LIBZMQ-305) + +commit e23eb9dd2a66104f54ed8517aee56161d0382061 +Author: Pieter Hintjens +Date: Thu Feb 16 12:10:34 2012 -0600 + + Updated NEWS for PR #39 + + NEWS | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit de1c5fd75d28af7fc9b849f5c79c89c2ccc9fbb3 +Author: Pieter Hintjens +Date: Sun Dec 18 19:23:54 2011 -0600 + + Prepared for 2.1.12 + + NEWS | 7 +++++++ + include/zmq.h | 2 +- + 2 files changed, 8 insertions(+), 1 deletions(-) + +commit 8123b18284b1dadf4a72b7d6e644471539239282 +Merge: 9bea035 2b148ac +Author: Pieter Hintjens +Date: Thu Feb 16 10:09:10 2012 -0800 + + Merge pull request #39 from vortechs2000/issue-301 + + Fix builds on HP-UX 11iv3 when using either gcc or aCC + +commit 9bea035b96d90fbfeefe248453697c9aaf68594e +Merge: 73f167e 1bff796 +Author: Pieter Hintjens +Date: Tue Feb 14 09:10:39 2012 -0800 + + Merge pull request #41 from thesamet/master + + Prevent unused variable warning in presence of assertions. + +commit 1bff796edb408aafcc9096849fd41209afa20d66 +Author: Nadav Samet +Date: Mon Feb 13 22:09:13 2012 -0800 + + Prevent unused variable warning in presence of assertions. + + include/zmq.hpp | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +commit dbf1db2253cac6cf06488e2739068be135983682 +Author: m <415fox@gmail.com> +Date: Sat Jan 28 13:30:52 2012 -0800 + + Backport ./configure --with-poller from libzmq development. + + If you've been configuring the poller using: + CPPFLAGS=-DZMQ_FORCE_POLL ./configure + + Now you're going to want to say: + ./configure --with-poller=poll + + acinclude.m4 | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + configure.in | 5 +- + 2 files changed, 194 insertions(+), 1 deletions(-) + +commit 34da56118ee70ce594662960cdac90ca55f87ed0 +Author: 415fox@gmail.com <415fox@gmail.com> +Date: Sat Jan 28 12:37:56 2012 -0800 + + Fix: Whitespace and comment. + + src/clock.cpp | 20 ++++++++++---------- + 1 files changed, 10 insertions(+), 10 deletions(-) + +commit 4a90c1027731ccad41cf44294c92f1ad1c8eb7ba +Author: 415fox@gmail.com <415fox@gmail.com> +Date: Fri Jan 27 12:40:56 2012 -0800 + + Fix: runtime patch for when system has clock_gettime but does not support CLOCK_MONOTONIC. + + src/clock.cpp | 11 ++++++++++- + 1 files changed, 10 insertions(+), 1 deletions(-) + +commit 9631d910082fa302c3f3d45fbac189139747b933 +Author: 415fox@gmail.com <415fox@gmail.com> +Date: Sat Jan 28 12:24:14 2012 -0800 + + Source char_traits from GCC C++ Library directly to clarify license. + + http://gcc.gnu.org/onlinedocs/libstdc++/ + Previously borrowed code from id3lib was considered shady. + Placed in its own file for style reasons. + + src/blob.hpp | 96 +--------------------------------- + src/gcc_421_char_traits.hpp | 119 +++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 122 insertions(+), 93 deletions(-) + +commit 1050ffe01a159dd4fdf0880932b55439c8dad36f +Author: 415fox@gmail.com <415fox@gmail.com> +Date: Fri Jan 27 12:24:14 2012 -0800 + + Fix basic_string not implemented in stdc++ 3 + + src/blob.hpp | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 94 insertions(+), 0 deletions(-) + +commit 7a55220be42c7e0ead23a29e26caddac76110577 +Author: 415fox@gmail.com <415fox@gmail.com> +Date: Fri Jan 27 12:23:32 2012 -0800 + + Fix bad combination of gcc3, -Werror and private destructor. + + src/ctx.hpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 536100053cd3bb28d9d8be33b2e48a60d3d225ee +Author: Staffan Gimåker +Date: Thu Jan 26 14:18:03 2012 +0100 + + Fix segfault bug when pruning the trie. + + Signed-off-by: Staffan Gimåker + + src/trie.cpp | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +commit 2b148acd46db833b8c2b880622d0f77bb5e1d89c +Author: AJ Lewis +Date: Tue Jan 17 11:20:32 2012 -0600 + + Patch from Mikko Koppanen for #LIBZMQ-301 + + Add the '-Ae' flag when using aCC + + Check if CLOCK_MONOTONIC defined before using it - if not, use gethrtime() + + Signed-off-by: AJ Lewis + + configure.in | 2 ++ + src/clock.cpp | 8 ++++++-- + 2 files changed, 8 insertions(+), 2 deletions(-) + +commit ec070c59343d2991f1bbeb3613c4ae88a55c580f +Author: Jtzl Forshizl +Date: Tue Jan 17 14:07:51 2012 -0500 + + clarifying installation documentation for users building from repo + + INSTALL | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit e954cb49732facaa627dff617d214a5b5cab90e5 +Author: AJ Lewis +Date: Tue Jan 17 10:33:55 2012 -0600 + + Change peer_identity_size (in all cases) in the command_t structure to be a size_t instead of an unsigned char. + + The peer_identity_size field in the attach and bind substructure is + used to generate a C++ base_string object from an unsigned char *, and + that object expects a size_t, not an unsigned char. If an unsigned + char is used, the HPUX aCC compiler gets confused and can't figure out + which constructor to use. + + Signed-off-by: AJ Lewis + + src/command.hpp | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 75bc614d55a36f76cfdadbf44b094cbd132b11dd +Author: Staffan Gimåker +Date: Wed Jan 4 11:31:32 2012 +0100 + + Backport fix to prune the trie from zmq3. + + Signed-off-by: Staffan Gimåker + + src/trie.cpp | 24 ++++++++++++++++++++++-- + src/trie.hpp | 3 +++ + 2 files changed, 25 insertions(+), 2 deletions(-) + commit 73f167eeb5ce9d26678399a574918f9813976024 Author: Pieter Hintjens Date: Sun Dec 18 19:11:17 2011 -0600 diff --git a/INSTALL b/INSTALL index d3c5b40..e3f7a5f 100644 --- a/INSTALL +++ b/INSTALL @@ -40,7 +40,9 @@ may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version -of `autoconf'. +of `autoconf'. If you are building a development version from the +Github source, for example, use `./autogen.sh' to generate `configure' +and other necessary installation scripts. The simplest way to compile this package is: diff --git a/NEWS b/NEWS index 936a027..755e595 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,25 @@ +0MQ version 2.2.0 (Stable), released on 2012/04/04 +================================================== + +Changes +------- + +* Fixed issue 349, add send/recv timeout socket options. + +Bug fixes +--------- + +* Fixed issue 301, fix builds on HP-UX 11iv3 when using either gcc or aCC. + +* Fixed issue 305, memory leakage when using dynamic subscriptions. + +* Fixed issue 332, libzmq doesn't compile on Android NDK. + +* Fixed issue 293, libzmq doesn't follow ZMTP/1.0 spec. + +* Fixed issue 342, cannot build against zmq.hpp under C++11. + + 0MQ version 2.1.11 (Stable), released on 2011/12/18 =================================================== diff --git a/acinclude.m4 b/acinclude.m4 index 597252d..0d930aa 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -602,3 +602,193 @@ int main (int argc, char *argv []) [AC_MSG_RESULT(not during cross-compile) ; libzmq_cv_sock_cloexec="no"] ) }]) + +dnl ################################################################################ +dnl # LIBZMQ_CHECK_POLLER_KQUEUE([action-if-found], [action-if-not-found]) # +dnl # Checks kqueue polling system # +dnl ################################################################################ +AC_DEFUN([LIBZMQ_CHECK_POLLER_KQUEUE], [{ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [ +#include +#include +#include + ], +[[ +struct kevent t_kev; +kqueue(); +]] + )], + [libzmq_cv_have_poller_kqueue="yes" ; $1], + [libzmq_cv_have_poller_kqueue="no" ; $2]) +}]) + +dnl ################################################################################ +dnl # LIBZMQ_CHECK_POLLER_EPOLL([action-if-found], [action-if-not-found]) # +dnl # Checks epoll polling system can actually run # +dnl # For cross-compile, only requires that epoll can link # +dnl ################################################################################ +AC_DEFUN([LIBZMQ_CHECK_POLLER_EPOLL], [{ + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [ +#include + ], +[[ +struct epoll_event t_ev; +int r; +r = epoll_create(10); +return(r < 0); +]] + )], + [libzmq_cv_have_poller_epoll="yes" ; $1], + [libzmq_cv_have_poller_epoll="no" ; $2], + [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [ +#include + ], + [[ + struct epoll_event t_ev; + epoll_create(10); + ]] + )], + [libzmq_cv_have_poller_epoll="yes" ; $1], + [libzmq_cv_have_poller_epoll="no" ; $2]) + + ]) +}]) + +dnl ################################################################################ +dnl # LIBZMQ_CHECK_POLLER_DEVPOLL([action-if-found], [action-if-not-found]) # +dnl # Checks devpoll polling system # +dnl ################################################################################ +AC_DEFUN([LIBZMQ_CHECK_POLLER_DEVPOLL], [{ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [ +#include + ], +[[ +struct pollfd t_devpoll; +int fd = open("/dev/poll", O_RDWR); +]] + )], + [libzmq_cv_have_poller_devpoll="yes" ; $1], + [libzmq_cv_have_poller_devpoll="no" ; $2]) +}]) + +dnl ################################################################################ +dnl # LIBZMQ_CHECK_POLLER_POLL([action-if-found], [action-if-not-found]) # +dnl # Checks poll polling system # +dnl ################################################################################ +AC_DEFUN([LIBZMQ_CHECK_POLLER_POLL], [{ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [ +#include + ], +[[ +struct pollfd t_poll; +poll(&t_poll, 1, 1); +]] + )], + [libzmq_cv_have_poller_poll="yes" ; $1], + [libzmq_cv_have_poller_poll="no" ; $2]) +}]) + +dnl ################################################################################ +dnl # LIBZMQ_CHECK_POLLER_SELECT([action-if-found], [action-if-not-found]) # +dnl # Checks select polling system # +dnl ################################################################################ +AC_DEFUN([LIBZMQ_CHECK_POLLER_SELECT], [{ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [ +#ifdef ZMQ_HAVE_WINDOWS +#include "winsock2.h" +#elif defined ZMQ_HAVE_OPENVMS +#include +#include +#else +#include +#endif + ], +[[ +fd_set t_rfds; +struct timeval tv; + +FD_ZERO(&t_rfds); +FD_SET(0, &t_rfds); + +tv.tv_sec = 5; +tv.tv_usec = 0; + +select(1, &t_rfds, NULL, NULL, &tv); +]] + )], + [libzmq_cv_have_poller_select="yes" ; $1], + [libzmq_cv_have_poller_select="no" ; $2]) +}]) + +dnl ################################################################################ +dnl # LIBZMQ_CHECK_POLLER([action-if-found], [action-if-not-found]) # +dnl # Choose polling system # +dnl ################################################################################ +AC_DEFUN([LIBZMQ_CHECK_POLLER], [{ + + # Allow user to disable doc build + AC_ARG_WITH([poller], [AS_HELP_STRING([--with-poller], + [choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select [default=autodetect]])]) + + AC_MSG_CHECKING([for suitable polling system]) + + case "${with_poller}" in + kqueue|epoll|devpoll|poll|select) + # User has chosen polling system + libzmq_cv_poller="${with_poller}" + ;; + + *) + # try to find suitable polling system. the order of testing is: + # kqueue -> epoll -> devpoll -> poll -> select + for subsystem in kqueue epoll devpoll poll select; do + + case "${subsystem}" in + kqueue) + LIBZMQ_CHECK_POLLER_KQUEUE([libzmq_cv_poller=$subsystem], []) + ;; + + epoll) + LIBZMQ_CHECK_POLLER_EPOLL([libzmq_cv_poller=$subsystem], []) + ;; + + devpoll) + LIBZMQ_CHECK_POLLER_DEVPOLL([libzmq_cv_poller=$subsystem], []) + ;; + + poll) + LIBZMQ_CHECK_POLLER_POLL([libzmq_cv_poller=$subsystem], []) + ;; + + select) + LIBZMQ_CHECK_POLLER_SELECT([libzmq_cv_poller=$subsystem], []) + ;; + esac + + if test "x${libzmq_cv_poller}" != "x"; then + break + fi + done + ;; + esac + + libzmq_cv_poller_flag=`echo "ZMQ_FORCE_${libzmq_cv_poller}" | tr a-z A-Z` + + AS_IF([test "x${libzmq_cv_poller}" != "x"], + [AC_MSG_RESULT([using $libzmq_cv_poller]) ; $1], [AC_MSG_RESULT(no suitable polling system found) ; $2]) +}]) + + diff --git a/configure b/configure index 5ac6f90..e55298f 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.68 for zeromq 2.1.11. +# Generated by GNU Autoconf 2.68 for zeromq 2.2.0. # # Report bugs to . # @@ -570,8 +570,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='zeromq' PACKAGE_TARNAME='zeromq' -PACKAGE_VERSION='2.1.11' -PACKAGE_STRING='zeromq 2.1.11' +PACKAGE_VERSION='2.2.0' +PACKAGE_STRING='zeromq 2.2.0' PACKAGE_BUGREPORT='zeromq-dev@lists.zeromq.org' PACKAGE_URL='' @@ -774,6 +774,7 @@ enable_debug with_gcov with_dce with_documentation +with_poller with_pgm with_system_pgm ' @@ -1339,7 +1340,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.11 to adapt to many kinds of systems. +\`configure' configures zeromq 2.2.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1409,7 +1410,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of zeromq 2.1.11:";; + short | recursive ) echo "Configuration of zeromq 2.2.0:";; esac cat <<\_ACEOF @@ -1441,6 +1442,9 @@ Optional Packages: functions --without-documentation disable documentation build even if asciidoc and xmlto are present [default=no] + --with-poller choose polling system manually. valid values are + kqueue, epoll, devpoll, poll or select + [default=autodetect] --with-pgm build libzmq with PGM extension [default=no] --with-system-pgm build libzmq with PGM extension. Requires pkg-config [default=no] @@ -1535,7 +1539,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -zeromq configure 2.1.11 +zeromq configure 2.2.0 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2332,7 +2336,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.11, which was +It was created by zeromq $as_me 2.2.0, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3151,7 +3155,7 @@ fi # Define the identity of the package. PACKAGE='zeromq' - VERSION='2.1.11' + VERSION='2.2.0' cat >>confdefs.h <<_ACEOF @@ -3298,9 +3302,10 @@ AM_BACKSLASH='\' # # ZeroMQ versions prior to 2.1.0 use 0.0.0 ("unstable") # ZeroMQ version 2.1.0: 1:0:0 +# ZeroMQ version 2.2.0: 1:1:0 # # libzmq -version-info current:revision:age -LTVER="1:0:0" +LTVER="1:1:0" # Take a copy of original flags @@ -17582,6 +17587,106 @@ _ACEOF fi fi + { + { + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler supports -Ae" >&5 +$as_echo_n "checking whether C compiler supports -Ae... " >&6; } + + libzmq_cv_c_werror_flag_save=$ac_c_werror_flag + ac_c_werror_flag="yes" + + case "xc" in + xc) + libzmq_cv_check_lang_flag_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Ae" + ;; + xcxx) + libzmq_cv_check_lang_flag_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Ae" + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: testing compiler characteristic on an unknown language" >&5 +$as_echo "$as_me: WARNING: testing compiler characteristic on an unknown language" >&2;} + ;; + esac + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # This hack exist for ICC, which outputs unknown options as remarks + # Remarks are not turned into errors even with -Werror on + if ($GREP 'ignoring unknown' conftest.err || + $GREP 'not supported' conftest.err) >/dev/null 2>&1; then + eval libzmq_cv_c_supports_flag__Ae="no" + else + eval libzmq_cv_c_supports_flag__Ae="yes" + fi +else + eval libzmq_cv_c_supports_flag__Ae="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + case "xc" in + xc) + CFLAGS="$libzmq_cv_check_lang_flag_save_CFLAGS" + ;; + xcxx) + CPPFLAGS="$libzmq_cv_check_lang_flag_save_CPPFLAGS" + ;; + *) + # nothing to restore + ;; + esac + + # Restore the werror flag + ac_c_werror_flag=$libzmq_cv_c_werror_flag_save + + # Call the action as the flags are restored + if eval test x$libzmq_cv_c_supports_flag__Ae = "xyes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } ; +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ; +fi + +} + case "xc" in + xc) + if eval test x$libzmq_cv_c_supports_flag__Ae = "xyes"; then : + CFLAGS="-Ae $CFLAGS"; +fi + ;; + xcxx) + if eval test x$libzmq_cv_c_supports_flag__Ae = "xyes"; then : + CPPFLAGS="-Ae $CPPFLAGS"; +fi + ;; + esac +} + for ac_func in gethrtime +do : + ac_fn_c_check_func "$LINENO" "gethrtime" "ac_cv_func_gethrtime" +if test "x$ac_cv_func_gethrtime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETHRTIME 1 +_ACEOF + +fi +done + ;; *mingw32*) @@ -18338,6 +18443,246 @@ fi } +# Check polling system +{ + + # Allow user to disable doc build + +# Check whether --with-poller was given. +if test "${with_poller+set}" = set; then : + withval=$with_poller; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suitable polling system" >&5 +$as_echo_n "checking for suitable polling system... " >&6; } + + case "${with_poller}" in + kqueue|epoll|devpoll|poll|select) + # User has chosen polling system + libzmq_cv_poller="${with_poller}" + ;; + + *) + # try to find suitable polling system. the order of testing is: + # kqueue -> epoll -> devpoll -> poll -> select + for subsystem in kqueue epoll devpoll poll select; do + + case "${subsystem}" in + kqueue) + { + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main () +{ + +struct kevent t_kev; +kqueue(); + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + libzmq_cv_have_poller_kqueue="yes" ; libzmq_cv_poller=$subsystem +else + libzmq_cv_have_poller_kqueue="no" ; +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +} + ;; + + epoll) + { + if test "$cross_compiling" = yes; then : + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + + struct epoll_event t_ev; + epoll_create(10); + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + libzmq_cv_have_poller_epoll="yes" ; libzmq_cv_poller=$subsystem +else + libzmq_cv_have_poller_epoll="no" ; +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +struct epoll_event t_ev; +int r; +r = epoll_create(10); +return(r < 0); + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + libzmq_cv_have_poller_epoll="yes" ; libzmq_cv_poller=$subsystem +else + libzmq_cv_have_poller_epoll="no" ; +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +} + ;; + + devpoll) + { + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +struct pollfd t_devpoll; +int fd = open("/dev/poll", O_RDWR); + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + libzmq_cv_have_poller_devpoll="yes" ; libzmq_cv_poller=$subsystem +else + libzmq_cv_have_poller_devpoll="no" ; +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +} + ;; + + poll) + { + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +struct pollfd t_poll; +poll(&t_poll, 1, 1); + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + libzmq_cv_have_poller_poll="yes" ; libzmq_cv_poller=$subsystem +else + libzmq_cv_have_poller_poll="no" ; +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +} + ;; + + select) + { + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef ZMQ_HAVE_WINDOWS +#include "winsock2.h" +#elif defined ZMQ_HAVE_OPENVMS +#include +#include +#else +#include +#endif + +int +main () +{ + +fd_set t_rfds; +struct timeval tv; + +FD_ZERO(&t_rfds); +FD_SET(0, &t_rfds); + +tv.tv_sec = 5; +tv.tv_usec = 0; + +select(1, &t_rfds, NULL, NULL, &tv); + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + libzmq_cv_have_poller_select="yes" ; libzmq_cv_poller=$subsystem +else + libzmq_cv_have_poller_select="no" ; +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +} + ;; + esac + + if test "x${libzmq_cv_poller}" != "x"; then + break + fi + done + ;; + esac + + libzmq_cv_poller_flag=`echo "ZMQ_FORCE_${libzmq_cv_poller}" | tr a-z A-Z` + + if test "x${libzmq_cv_poller}" != "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $libzmq_cv_poller" >&5 +$as_echo "using $libzmq_cv_poller" >&6; } ; CPPFLAGS="${CPPFLAGS} -D${libzmq_cv_poller_flag}" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no suitable polling system found" >&5 +$as_echo "no suitable polling system found" >&6; } ; as_fn_error $? "Unable to continue without polling system" "$LINENO" 5 +fi +} + # Checks for header files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } @@ -20172,7 +20517,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.11, which was +This file was extended by zeromq $as_me 2.2.0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20238,7 +20583,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.11 +zeromq config.status 2.2.0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" @@ -22436,4 +22781,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi - diff --git a/configure.in b/configure.in index bdff0cf..d3f506d 100644 --- a/configure.in +++ b/configure.in @@ -27,9 +27,10 @@ AC_SUBST(PACKAGE_VERSION) # # ZeroMQ versions prior to 2.1.0 use 0.0.0 ("unstable") # ZeroMQ version 2.1.0: 1:0:0 +# ZeroMQ version 2.2.0: 1:1:0 # # libzmq -version-info current:revision:age -LTVER="1:0:0" +LTVER="1:1:0" AC_SUBST(LTVER) # Take a copy of original flags @@ -187,6 +188,8 @@ case "${host_os}" in AS_IF([test "x$with_dce" != xno], [AC_CHECK_LIB(dcekt, uuid_create)], [AC_CHECK_LIB(crypto, RAND_bytes)]) + LIBZMQ_CHECK_LANG_FLAG_PREPEND([-Ae]) + AC_CHECK_FUNCS(gethrtime) ;; *mingw32*) AC_DEFINE(ZMQ_HAVE_WINDOWS, 1, [Have Windows OS]) @@ -251,6 +254,10 @@ esac # Check whether to build docs / install man pages LIBZMQ_CHECK_DOC_BUILD +# Check polling system +LIBZMQ_CHECK_POLLER([CPPFLAGS="${CPPFLAGS} -D${libzmq_cv_poller_flag}"], + [AC_MSG_ERROR([Unable to continue without polling system])]) + # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(errno.h arpa/inet.h netinet/tcp.h netinet/in.h stddef.h \ @@ -395,4 +402,3 @@ AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile foreign/openpgm/Makefile \ builds/redhat/zeromq.spec]) AC_OUTPUT - diff --git a/doc/zmq.7 b/doc/zmq.7 index 7f60700..e87f35a 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: 11/22/2011 +.\" Date: 04/04/2012 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.10 +.\" Source: 0MQ 2.2.0 .\" Language: English .\" -.TH "ZMQ" "7" "11/22/2011" "0MQ 2\&.1\&.10" "0MQ Manual" +.TH "ZMQ" "7" "04/04/2012" "0MQ 2\&.2\&.0" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -215,27 +215,17 @@ The 0MQ distribution includes a C++ language binding, which is documented separa Other language bindings (Python, Ruby, Java and more) are provided by members of the 0MQ community and pointers can be found on the 0MQ website\&. .SH "AUTHORS" .sp -This 0MQ manual page was written by Martin Sustrik <\m[blue]\fBsustrik@250bpm\&.com\fR\m[]\&\s-2\u[1]\d\s+2> and Martin Lucina <\m[blue]\fBmato@kotelna\&.sk\fR\m[]\&\s-2\u[2]\d\s+2>\&. +This manual page was written by the 0MQ community\&. .SH "RESOURCES" .sp Main web site: \m[blue]\fBhttp://www\&.zeromq\&.org/\fR\m[] .sp -Report bugs to the 0MQ development mailing list: <\m[blue]\fBzeromq\-dev@lists\&.zeromq\&.org\fR\m[]\&\s-2\u[3]\d\s+2> +Report bugs to the 0MQ development mailing list: <\m[blue]\fBzeromq\-dev@lists\&.zeromq\&.org\fR\m[]\&\s-2\u[1]\d\s+2> .SH "COPYING" .sp 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 0MQ distribution\&. .SH "NOTES" .IP " 1." 4 -sustrik@250bpm.com -.RS 4 -\%mailto:sustrik@250bpm.com -.RE -.IP " 2." 4 -mato@kotelna.sk -.RS 4 -\%mailto:mato@kotelna.sk -.RE -.IP " 3." 4 zeromq-dev@lists.zeromq.org .RS 4 \%mailto:zeromq-dev@lists.zeromq.org diff --git a/doc/zmq.html b/doc/zmq.html index e44f8a1..2c3ceee 100644 --- a/doc/zmq.html +++ b/doc/zmq.html @@ -2,15 +2,28 @@ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> - - + + zmq(7) - +
+

SYNOPSIS

#include <zmq.h>

cc [flags] files -lzmq [libraries]

+
+

DESCRIPTION

The ØMQ lightweight messaging kernel is a library which extends the standard @@ -596,7 +615,8 @@ 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

+
+

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:

@@ -618,6 +638,7 @@ Terminate ØMQ context

+

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 @@ -628,12 +649,17 @@ 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

+
+
+
+

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 @@ -677,7 +703,9 @@ Message manipulation

-

Sockets

+
+
+

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.

@@ -731,7 +759,9 @@ Sending and receiving messages 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

+
+
+

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.

@@ -770,13 +800,18 @@ Local in-process (inter-thread) communication transport

-

Devices

+
+
+

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 @@ -790,6 +825,8 @@ to assist in these cases; for details refer to zmq_errn

+
+

MISCELLANEOUS

The following miscellaneous functions are provided:

@@ -804,6 +841,8 @@ Report ØMQ library version
+
+

LANGUAGE BINDINGS

The ØMQ library provides interfaces suitable for calling from programs in any @@ -811,23 +850,32 @@ 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

+
+

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

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

+

This manual page was written by the ØMQ community.

+
+

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 @@ -835,11 +883,12 @@ Public License (LGPL). For details see the files COPYING and COPYIN included with the ØMQ distribution.

+

diff --git a/doc/zmq.txt b/doc/zmq.txt index 16a5d30..1a00c56 100644 --- a/doc/zmq.txt +++ b/doc/zmq.txt @@ -200,8 +200,7 @@ of the 0MQ community and pointers can be found on the 0MQ website. AUTHORS ------- -This 0MQ manual page was written by Martin Sustrik and -Martin Lucina . +This manual page was written by the 0MQ community. RESOURCES diff --git a/doc/zmq_bind.3 b/doc/zmq_bind.3 index ace7588..8aa0ad0 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: 11/22/2011 +.\" Date: 04/04/2012 .\" Manual: 0MQ Manual -.\" Source: 0MQ 2.1.10 +.\" Source: 0MQ 2.2.0 .\" Language: English .\" -.TH "ZMQ_BIND" "3" "11/22/2011" "0MQ 2\&.1\&.10" "0MQ Manual" +.TH "ZMQ_BIND" "3" "04/04/2012" "0MQ 2\&.2\&.0" "0MQ Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -157,15 +157,4 @@ assert (rc == 0); \fBzmq_connect\fR(3) \fBzmq_socket\fR(3) \fBzmq\fR(7) .SH "AUTHORS" .sp -This 0MQ manual page was written by Martin Sustrik <\m[blue]\fBsustrik@250bpm\&.com\fR\m[]\&\s-2\u[1]\d\s+2> and Martin Lucina <\m[blue]\fBmato@kotelna\&.sk\fR\m[]\&\s-2\u[2]\d\s+2>\&. -.SH "NOTES" -.IP " 1." 4 -sustrik@250bpm.com -.RS 4 -\%mailto:sustrik@250bpm.com -.RE -.IP " 2." 4 -mato@kotelna.sk -.RS 4 -\%mailto:mato@kotelna.sk -.RE +This manual page was written by the 0MQ community\&. diff --git a/doc/zmq_bind.html b/doc/zmq_bind.html index e3b1da2..6cb5e28 100644 --- a/doc/zmq_bind.html +++ b/doc/zmq_bind.html @@ -2,15 +2,28 @@ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> - - + + zmq_bind(3) - + <