summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Lucina <martin@lucina.net>2012-01-23 08:54:14 +0100
committerMartin Lucina <martin@lucina.net>2012-01-23 08:54:14 +0100
commit75af6aed482ab16997c1388fe801f74d11ec12a4 (patch)
tree637249631acc81446f6b5c2e25223f3164e132f6
parentb593ea30833ad5dcacb9076c988aec31b0cf26ec (diff)
Imported Upstream version 2.1.9upstream/2.1.9
-rw-r--r--AUTHORS3
-rw-r--r--ChangeLog663
-rw-r--r--MAINTAINERS14
-rw-r--r--NEWS89
-rw-r--r--aclocal.m44
-rwxr-xr-xautogen.sh8
-rw-r--r--builds/msvc/Makefile.am4
-rw-r--r--builds/msvc/Makefile.in4
-rw-r--r--builds/msvc/inproc_lat/inproc_lat.vcproj174
-rw-r--r--builds/msvc/inproc_thr/inproc_thr.vcproj174
-rw-r--r--builds/msvc/libzmq/libzmq.vcproj4
-rwxr-xr-xconfig/ltmain.sh4
-rwxr-xr-xconfigure28
-rw-r--r--configure.in6
-rw-r--r--doc/zmq.76
-rw-r--r--doc/zmq.html158
-rw-r--r--doc/zmq_bind.311
-rw-r--r--doc/zmq_bind.html132
-rw-r--r--doc/zmq_bind.txt2
-rw-r--r--doc/zmq_close.36
-rw-r--r--doc/zmq_close.html122
-rw-r--r--doc/zmq_connect.311
-rw-r--r--doc/zmq_connect.html132
-rw-r--r--doc/zmq_connect.txt2
-rw-r--r--doc/zmq_cpp.76
-rw-r--r--doc/zmq_cpp.html236
-rw-r--r--doc/zmq_device.36
-rw-r--r--doc/zmq_device.html132
-rw-r--r--doc/zmq_epgm.710
-rw-r--r--doc/zmq_epgm.html136
-rw-r--r--doc/zmq_epgm.txt4
-rw-r--r--doc/zmq_errno.36
-rw-r--r--doc/zmq_errno.html122
-rw-r--r--doc/zmq_getsockopt.38
-rw-r--r--doc/zmq_getsockopt.html198
-rw-r--r--doc/zmq_getsockopt.txt2
-rw-r--r--doc/zmq_init.36
-rw-r--r--doc/zmq_init.html122
-rw-r--r--doc/zmq_inproc.76
-rw-r--r--doc/zmq_inproc.html130
-rw-r--r--doc/zmq_ipc.76
-rw-r--r--doc/zmq_ipc.html130
-rw-r--r--doc/zmq_msg_close.36
-rw-r--r--doc/zmq_msg_close.html120
-rw-r--r--doc/zmq_msg_copy.36
-rw-r--r--doc/zmq_msg_copy.html120
-rw-r--r--doc/zmq_msg_data.36
-rw-r--r--doc/zmq_msg_data.html122
-rw-r--r--doc/zmq_msg_init.36
-rw-r--r--doc/zmq_msg_init.html124
-rw-r--r--doc/zmq_msg_init_data.36
-rw-r--r--doc/zmq_msg_init_data.html124
-rw-r--r--doc/zmq_msg_init_size.36
-rw-r--r--doc/zmq_msg_init_size.html122
-rw-r--r--doc/zmq_msg_move.36
-rw-r--r--doc/zmq_msg_move.html120
-rw-r--r--doc/zmq_msg_size.38
-rw-r--r--doc/zmq_msg_size.html124
-rw-r--r--doc/zmq_msg_size.txt2
-rw-r--r--doc/zmq_pgm.710
-rw-r--r--doc/zmq_pgm.html136
-rw-r--r--doc/zmq_pgm.txt4
-rw-r--r--doc/zmq_poll.36
-rw-r--r--doc/zmq_poll.html124
-rw-r--r--doc/zmq_recv.36
-rw-r--r--doc/zmq_recv.html128
-rw-r--r--doc/zmq_send.36
-rw-r--r--doc/zmq_send.html128
-rw-r--r--doc/zmq_setsockopt.38
-rw-r--r--doc/zmq_setsockopt.html190
-rw-r--r--doc/zmq_setsockopt.txt2
-rw-r--r--doc/zmq_socket.310
-rw-r--r--doc/zmq_socket.html160
-rw-r--r--doc/zmq_socket.txt4
-rw-r--r--doc/zmq_strerror.36
-rw-r--r--doc/zmq_strerror.html124
-rw-r--r--doc/zmq_tcp.78
-rw-r--r--doc/zmq_tcp.html132
-rw-r--r--doc/zmq_tcp.txt2
-rw-r--r--doc/zmq_term.36
-rw-r--r--doc/zmq_term.html122
-rw-r--r--doc/zmq_version.36
-rw-r--r--doc/zmq_version.html124
-rw-r--r--include/zmq.h4
-rw-r--r--perf/local_thr.cpp2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in28
-rw-r--r--src/config.hpp7
-rw-r--r--src/ctx.cpp14
-rw-r--r--src/io_thread.cpp2
-rw-r--r--src/ip.cpp20
-rw-r--r--src/mailbox.cpp366
-rw-r--r--src/mailbox.hpp26
-rw-r--r--src/pgm_receiver.cpp4
-rw-r--r--src/pgm_sender.cpp8
-rw-r--r--src/pgm_socket.cpp8
-rw-r--r--src/pgm_socket.hpp7
-rw-r--r--src/platform.hpp.in3
-rw-r--r--src/reaper.cpp2
-rw-r--r--src/rep.cpp2
-rw-r--r--src/select.cpp9
-rw-r--r--src/signaler.cpp344
-rw-r--r--src/signaler.hpp63
-rw-r--r--src/socket_base.cpp79
-rw-r--r--src/socket_base.hpp6
-rw-r--r--src/swap.cpp8
-rw-r--r--src/tcp_connecter.cpp3
-rw-r--r--src/tcp_socket.cpp5
-rw-r--r--src/thread.cpp16
-rw-r--r--src/windows.hpp152
-rw-r--r--src/xrep.cpp4
-rw-r--r--src/zmq.cpp24
-rw-r--r--tests/test_shutdown_stress.cpp2
-rw-r--r--zeromq.spec2
114 files changed, 4049 insertions, 2680 deletions
diff --git a/AUTHORS b/AUTHORS
index 43768e5..7e785bf 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -10,6 +10,7 @@ Bob Beaty <rbeaty@peak6.com>
Brian Buchanan <bwb@holo.org>
Brett Cameron <Brett.Cameron@hp.com>
Burak Arslan <burak-github@arskom.com.tr>
+Carl Clemens <carlclemens1@yahoo.com>
Chia-liang Kao <clkao@clkao.org>
Chris Rempel <csrl@gmx.com>
Chris Wong <chris@chriswongstudio.com>
@@ -62,6 +63,8 @@ Thijs Terlouw <thijsterlouw@gmail.com>
Toralf Wittner <toralf.wittner@gmail.com>
Tore Halvorsen <tore.halvorsen@gmail.com>
Vitaly Mayatskikh <v.mayatskih@gmail.com>
+Ghislain Putois <ghpu@infonie.fr>
+William Roberts <bill.c.roberts@gmail.com>
Credits
=======
diff --git a/ChangeLog b/ChangeLog
index f15734e..2349d55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,649 @@
# Generated by Makefile. Do not edit.
+commit 392c3771c22d0dfe793cc9c4ee5c27d18d38d428
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Mon Aug 29 20:25:11 2011 +0200
+
+ Updated NEWS for 2.1.9
+
+ NEWS | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit bb7f41144b513ebf07698ade91c6d6c4e20bec77
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Mon Aug 29 12:24:45 2011 +0200
+
+ Fixed NEWS to reflect RC status of 2.1.8
+
+ NEWS | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 4df43be69c3f25a4a5f96d379a59d6c6d6f214fa
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Wed Aug 17 18:41:02 2011 +0200
+
+ Fix the PGM support on win64
+
+ On win64 the size of file descriptor is not the same as size of int.
+ The bug in PGM transport caused a runtime error because of this.
+ The problem is fixed now.
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ NEWS | 2 ++
+ src/pgm_receiver.cpp | 4 ++--
+ src/pgm_sender.cpp | 8 ++++----
+ src/pgm_socket.cpp | 8 ++++----
+ src/pgm_socket.hpp | 7 ++++---
+ 5 files changed, 16 insertions(+), 13 deletions(-)
+
+commit 024c4c91098913c7488abde75e9ef0d3fee7e195
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Aug 17 16:40:09 2011 +0200
+
+ Fixed compile error on win32
+
+ src/zmq.cpp | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 323138b81ca71e036200d666b95b96c9b6e58696
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Tue Aug 16 17:45:39 2011 +0200
+
+ Updated NEWS for Android build
+
+ NEWS | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 7b22dccf2fed4cd057876912991fdd61954d6dbc
+Author: Mikko Koppanen <mkoppanen@php.net>
+Date: Mon Aug 15 19:09:04 2011 +0200
+
+ Added Android support
+
+ Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
+
+ configure.in | 6 ++++++
+ src/ip.cpp | 2 +-
+ src/swap.cpp | 2 +-
+ src/thread.cpp | 2 +-
+ 4 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 591e5887e6e32675a7520eac67621416f13bec35
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Sun Aug 14 14:23:16 2011 +0200
+
+ Fixed issue 238
+
+ NEWS | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit ebfdfdf298525c993b8827fe6c7b6f753c56ca52
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Sun Aug 14 14:23:16 2011 +0200
+
+ select version zmq_poll reports invalid FDs
+
+ Till now, passing invalid file descriptor to zmq_poll()
+ caused asseration. Now it returns error.
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ src/zmq.cpp | 18 +++++++++++++-----
+ 1 files changed, 13 insertions(+), 5 deletions(-)
+
+commit d6fbb80a19056cad02ee32e465b12cb0ba29c419
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Sat Aug 13 00:27:13 2011 +0200
+
+ Fixed issue 239
+
+ NEWS | 3 +++
+ src/swap.cpp | 2 --
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 317435e2835b41d98a885883631d024422f5c9ff
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Aug 11 16:54:50 2011 +0200
+
+ usleep is void on Android
+
+ src/zmq.cpp | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 7239640d0282902af047d391b4a41fb5cc914bd1
+Author: wroberts <wroberts@wroberts-P480.(none)>
+Date: Wed Aug 10 13:23:37 2011 -0400
+
+ Added an ndk-build clean command to clean script and fixed usleep error.
+
+ - Fixed incorrect directory removal in clean script
+
+ builds/android/clean.sh | 2 +-
+ src/zmq.cpp | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit eeca373616e347e947ff73f1cf8c11f7b53fc1a8
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Aug 10 18:18:15 2011 +0200
+
+ Updated NEWS for Android
+
+ NEWS | 11 ++++++++---
+ 1 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 880e5c324031bc390bc88d07f5137ce31d1c8c69
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Aug 10 17:58:16 2011 +0200
+
+ Fixed use of ANDROID macro
+
+ src/thread.cpp | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 98b96e7d8fd60605ad1498cd540b07dd7040f168
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Aug 10 17:51:34 2011 +0200
+
+ Whitespace and comment changes
+
+ builds/android/build.sh | 35 ++++++++++++++++++++++-------------
+ builds/android/clean.sh | 15 ++++++++++-----
+ 2 files changed, 32 insertions(+), 18 deletions(-)
+
+commit f2b76414f70d462e7863e4d79f61227d7315cf9d
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Aug 10 17:13:40 2011 +0200
+
+ Added William Roberts to AUTHORS
+
+ AUTHORS | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 7f2a522a85a2379120ad6d809be56b9f34e3b89b
+Author: wroberts <wroberts@wroberts-P480.(none)>
+Date: Tue Aug 9 19:24:11 2011 -0400
+
+ Finished with clean android build
+
+ builds/android/Android.mk | 6 ++----
+ builds/android/build.sh | 5 +++++
+ builds/android/clean.sh | 14 +++++++++++---
+ 3 files changed, 18 insertions(+), 7 deletions(-)
+
+commit 62a8d76aa32cc9579811f32d06cbc6ae0a00dbb2
+Author: wroberts <wroberts@wroberts-P480.(none)>
+Date: Tue Aug 9 18:47:59 2011 -0400
+
+ Android wip
+
+ builds/android/Android.mk | 42 ++
+ builds/android/Application.mk | 1 +
+ builds/android/build.sh | 38 ++
+ builds/android/clean.sh | 13 +
+ builds/android/include/platform.hpp | 1 +
+ builds/android/include/platform_android.hpp | 229 +++++++++
+ builds/android/uuid/clear.c | 43 ++
+ builds/android/uuid/compare.c | 55 +++
+ builds/android/uuid/copy.c | 45 ++
+ builds/android/uuid/gen_uuid.c | 680 +++++++++++++++++++++++++++
+ builds/android/uuid/gen_uuid_nt.c | 92 ++++
+ builds/android/uuid/isnull.c | 48 ++
+ builds/android/uuid/pack.c | 69 +++
+ builds/android/uuid/parse.c | 79 +++
+ builds/android/uuid/unpack.c | 63 +++
+ builds/android/uuid/unparse.c | 76 +++
+ builds/android/uuid/uuid.h | 103 ++++
+ builds/android/uuid/uuidP.h | 59 +++
+ builds/android/uuid/uuid_time.c | 171 +++++++
+ builds/android/uuid/uuidd.h | 54 +++
+ 20 files changed, 1961 insertions(+), 0 deletions(-)
+
+commit ad6bf4aa3e77d8aec72951ac88e0e916c6e63a0d
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Tue Aug 9 20:48:04 2011 +0200
+
+ Provisional Android support, from Ghislain Putois
+
+ AUTHORS | 1 +
+ builds/android/Makefile | 10 ++++++++++
+ src/ip.cpp | 20 ++++++++++----------
+ src/swap.cpp | 6 +++---
+ src/thread.cpp | 10 ++++++----
+ 5 files changed, 30 insertions(+), 17 deletions(-)
+
+commit 9b2c16cb42fd559cfac1c86f420392a2e4cb7b2e
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Sat Jul 30 17:26:42 2011 +0200
+
+ Fixed issue 236
+
+ NEWS | 11 +++++++++++
+ src/socket_base.cpp | 4 ++++
+ 2 files changed, 15 insertions(+), 0 deletions(-)
+
+commit b7d1b669ce9c3f27202b8daf46425766a877de3e
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jul 28 14:07:25 2011 +0200
+
+ Debian packaging wasn't distributed
+
+ NEWS | 6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+commit 764c4f5a8fa2f21d0f755811ba8b4c38c24e7ae5
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jul 28 13:52:55 2011 +0200
+
+ Updated version number for next release
+
+ include/zmq.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 3c913026c72dd83e2d6ffbb6d9866a748502ffcf
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jul 28 13:44:40 2011 +0200
+
+ Updated NEWS for 2.1.8 release
+
+ NEWS | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9d9fb596ab0eaa00da36f79b442d40fd42dfe4eb
+Merge: 3cb929e 59a84ab
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Fri Jul 22 11:38:32 2011 +0200
+
+ Merge branch 'master' of github.com:zeromq/zeromq2-1
+
+commit 3cb929e46affd5ebf8c456acba594bae5c106cc8
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Thu Jul 21 23:35:26 2011 +0200
+
+ mailbox::recv correctly passes EINTR to the caller
+
+ This bug caused signal during blocking call to assert.
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ NEWS | 3 +++
+ src/mailbox.cpp | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 59a84abbfbb3be79d8f765da95de23ebdac16630
+Merge: 5227717 1b9bc37
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Jul 20 16:40:12 2011 +0200
+
+ Merge branch 'master' of github.com:zeromq/zeromq2-1
+
+commit 1b9bc37ff76826069de846fe0c3220b78b357e72
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Jul 20 13:12:18 2011 +0200
+
+ Fixed build for MSVC
+
+ builds/msvc/libzmq/libzmq.vcproj | 4 ++++
+ src/signaler.cpp | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit d897a2b45b422ff87da6007b06c6147e535491dd
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Tue Jul 19 23:08:02 2011 +0200
+
+ Fixed build for Windows (signaler.cpp)
+
+ src/signaler.cpp | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 8dd8c71dab33bfd903e05d238b2e8ec507c23c7e
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Mon Jul 18 14:29:20 2011 +0200
+
+ Fixed email addresses in the MAITAINERS file
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ MAINTAINERS | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit b69aee1b5e5aee9bdcab75aa1b5af88bfc7b0339
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Mon Jul 18 13:39:51 2011 +0200
+
+ Avoid SIGPIPE errors on FreeBSD
+
+ MAINTAINERS | 8 ++++----
+ src/tcp_socket.cpp | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 846769d809dea727bb6aeb58155aeb9afb357bce
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Mon Jul 18 09:41:26 2011 +0200
+
+ Signaler timeout bug on Windows fixed
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ src/signaler.cpp | 12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+commit b613c297897cfca15024d493e181f4f1973b1abe
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Mon Jul 18 11:53:58 2011 +0200
+
+ Avoid SIGPIPE errors on FreeBSD
+
+ src/tcp_socket.cpp | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 5227717f9b8ccb8cf89967f470e017884edbd10f
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Fri Jul 15 13:43:20 2011 +0200
+
+ ROUTER can talk to ZMQ_REP, DEALER to ZMQ_REQ
+
+ doc/zmq_socket.txt | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit e496d49f57d6b3a377c11b6d5a58f175200ddbde
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Fri Jul 15 07:08:00 2011 +0200
+
+ Updated NEWS for issue 230
+
+ NEWS | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 5fd65d8f62e4c6e70b23a3e8f0195526b03a2e4f
+Merge: a8c9eed 61233d0
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Fri Jul 15 07:06:42 2011 +0200
+
+ Merge branch 'issue230'
+
+commit a8c9eedc031ef68d01b5515ff1108bb7f5ada3ac
+Merge: d17cae2 2c89920
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jul 14 23:29:15 2011 +0200
+
+ Merge branch 'master' of github.com:zeromq/zeromq2-1
+
+commit d17cae20c5365fe2695b5e9027d8b91916eb9174
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jul 14 22:32:45 2011 +0200
+
+ Backported fix for issue 231
+
+ NEWS | 4 +
+ src/Makefile.am | 2 +
+ src/config.hpp | 7 +
+ src/ctx.cpp | 2 +-
+ src/io_thread.cpp | 2 +-
+ src/mailbox.cpp | 366 ++++------------------------------------
+ src/mailbox.hpp | 26 ++-
+ src/reaper.cpp | 2 +-
+ src/signaler.cpp | 340 +++++++++++++++++++++++++++++++++++++
+ src/signaler.hpp | 63 +++++++
+ src/socket_base.cpp | 75 ++++++---
+ src/socket_base.hpp | 6 +-
+ tests/test_shutdown_stress.cpp | 2 +-
+ 13 files changed, 529 insertions(+), 368 deletions(-)
+
+commit 2c899206691f528aa21ed52a4eb52ea7d59436cd
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jul 14 22:32:45 2011 +0200
+
+ Backported fix for issue 231
+
+ src/Makefile.am | 2 +
+ src/config.hpp | 7 +
+ src/ctx.cpp | 2 +-
+ src/io_thread.cpp | 2 +-
+ src/mailbox.cpp | 366 ++++------------------------------------
+ src/mailbox.hpp | 26 ++-
+ src/reaper.cpp | 2 +-
+ src/signaler.cpp | 340 +++++++++++++++++++++++++++++++++++++
+ src/signaler.hpp | 63 +++++++
+ src/socket_base.cpp | 75 ++++++---
+ src/socket_base.hpp | 6 +-
+ tests/test_shutdown_stress.cpp | 2 +-
+ 12 files changed, 525 insertions(+), 368 deletions(-)
+
+commit 61233d00877dfb0322bb1a1fd3d7916a1e779d9b
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jul 14 22:09:45 2011 +0200
+
+ Fixed issue 230
+
+ src/tcp_socket.cpp | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit a5972520e9961eaf6f6948036c99dbfd03812c1e
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Wed Jul 13 18:10:54 2011 +0200
+
+ Fixed issue 228, backported from 3.0
+
+ NEWS | 2 ++
+ src/rep.cpp | 2 +-
+ src/xrep.cpp | 4 ----
+ 3 files changed, 3 insertions(+), 5 deletions(-)
+
+commit 647dca9650d54637a0e763216825875d1ac915d1
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Mon Jul 11 16:05:04 2011 +0200
+
+ zmq_bind(3) and zmq_connect(3) describe EINVAL error
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ doc/zmq_bind.txt | 2 ++
+ doc/zmq_connect.txt | 2 ++
+ 2 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 89fc94cc7e3bb7f23c27dcc57877ec582f4af790
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Tue Jul 12 15:47:01 2011 +0200
+
+ Updated NEWS
+
+ NEWS | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 994dbe48e74ddfa30a66c46430e878e60dfdd61e
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Tue Jul 12 15:45:38 2011 +0200
+
+ Removed debian packaging, it's now at http://packages.debian.org/source/sid/zeromq
+
+ debian/README.Debian | 4 --
+ debian/changelog | 24 ----------
+ debian/compat | 1 -
+ debian/control | 76 --------------------------------
+ debian/copyright | 105 --------------------------------------------
+ debian/libzmq-dev.install | 5 --
+ debian/libzmq-dev.manpages | 2 -
+ debian/libzmq0.install | 1 -
+ debian/libzmq0.manpages | 5 --
+ debian/rules | 92 --------------------------------------
+ debian/source/format | 1 -
+ debian/source/options | 1 -
+ debian/zeromq-bin.install | 3 -
+ debian/zeromq-bin.manpages | 3 -
+ 14 files changed, 0 insertions(+), 323 deletions(-)
+
+commit d27374c8346cdde9b0e77fb625249df6d185c6e0
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Mon Jul 4 09:27:50 2011 +0200
+
+ License text in autogen.sh fixed
+
+ autogen.sh incorrectly referred to the license as GPL.
+ Changed to LGPL.
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ autogen.sh | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+commit c35a14beaba8d60e473f15d9978b075d33423a55
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Thu Jun 30 00:05:03 2011 +0200
+
+ Testing for errors from pthread_* functions fixed
+
+ pthread_* functions return the error number rather than
+ setting errno. This was not accounter for till now.
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ src/thread.cpp | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 257859d1175d361eb9064dc94d8ad80bed6eec58
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Tue Jun 28 10:22:27 2011 +0200
+
+ Packaging for MSVC build fixed
+
+ MSVC project files for inproc_lat and inproc_thr were not
+ packaged during make dist phase.
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ builds/msvc/Makefile.am | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit a26c5bfe99dcc574e4899cc7472bffbc092511f5
+Author: Carl Clemens <carlclemens1@yahoo.com>
+Date: Sun Jun 26 16:19:45 2011 +0200
+
+ Typo in zmq_msg_size(3) fixed
+
+ Signed-off-by: Carl Clemens <carlclemens1@yahoo.com>
+
+ AUTHORS | 1 +
+ doc/zmq_msg_size.txt | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletions(-)
+
+commit fa6b54fccc281ed5f7d2d7b4f60c8f5f3f019167
+Merge: 21ea666 2008917
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Sun Jun 19 10:31:58 2011 +0200
+
+ Merge branch 'master' of github.com:zeromq/zeromq2-1
+
+commit 21ea66635f5bc202ca64299d9f70687d224d55fc
+Author: Steven McCoy <steven.mccoy@miru.hk>
+Date: Fri Jun 17 15:02:48 2011 -0400
+
+ Refactor Windows versioning and WinSock usage.
+
+ Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
+
+ include/zmq.h | 2 +-
+ src/ctx.cpp | 12 +++--
+ src/select.cpp | 9 ++--
+ src/windows.hpp | 152 +++++++++++++++++++++++++++++++++++++++++++++----------
+ 4 files changed, 138 insertions(+), 37 deletions(-)
+
+commit 20089170eabc1614d4b3e946ae9a363cfa8d3e47
+Author: Martin Sustrik <sustrik@250bpm.com>
+Date: Tue Jun 14 09:58:18 2011 +0200
+
+ Fixed issue 223 - ENETUNREACH is a valid error from connect
+
+ This patch fixed the JIRA issue 223
+
+ Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
+
+ NEWS | 4 ++++
+ src/tcp_connecter.cpp | 3 ++-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 0a533915b4cb2d3910ee3f128e882376e340f87b
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Mon Jun 13 11:45:06 2011 +0200
+
+ Revert "Fix scope on Windows includes."
+
+ This reverts commit c55e8b47b63ba69b7e240edd8270629f99a00b0d.
+
+ src/ctx.cpp | 8 ++------
+ src/select.cpp | 2 +-
+ src/select.hpp | 2 +-
+ src/windows.hpp | 5 +++--
+ 4 files changed, 7 insertions(+), 10 deletions(-)
+
+commit c55e8b47b63ba69b7e240edd8270629f99a00b0d
+Author: Steven McCoy <steven.mccoy@miru.hk>
+Date: Sun Jun 12 19:37:11 2011 +0200
+
+ Fix scope on Windows includes.
+
+ Fix windows.h included before winsock2.h.
+ Remove definition of _WINSOCKAPI_.
+
+ Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
+
+ src/ctx.cpp | 8 ++++++--
+ src/select.cpp | 2 +-
+ src/select.hpp | 2 +-
+ src/windows.hpp | 5 ++---
+ 4 files changed, 10 insertions(+), 7 deletions(-)
+
+commit 69bce48516554cb1f2ac5e52ebb59632ae967c48
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu Jun 9 19:55:21 2011 +0200
+
+ Fixed NEWS for broken 2.1.6 release
+
+ NEWS | 42 ++++++++++++++++++++----------------------
+ 1 files changed, 20 insertions(+), 22 deletions(-)
+
+commit 71012227f8615b398f755a82f73a70c61ba4fc55
+Merge: 143b64b 47245e1
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Thu May 26 11:07:51 2011 -0700
+
+ Merge branch 'master' of github.com:zeromq/zeromq2-1
+
+commit 2f6bc9ce9260a3234a1f1de5c63956b081695f40
+Merge: 6a8b691 47245e1
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Mon May 23 12:53:30 2011 +0200
+
+ Merge branch 'master' of github.com:zeromq/zeromq2-1
+
+commit 47245e189c81aa083824d732c238d64d5ea32fce
+Merge: dae5a6c f94a700
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Mon May 23 03:47:04 2011 -0700
+
+ Merge pull request #19 from grk/patch-1
+
+ Fix overflow of megabits on 32bit machines.
+
+commit 6a8b691a3117e8d925ee29392c6463568f37108c
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Fri May 20 17:22:42 2011 +0200
+
+ Prepared for 2.1.8
+
+ NEWS | 10 ++++++++++
+ include/zmq.h | 2 +-
+ 2 files changed, 11 insertions(+), 1 deletions(-)
+
+commit f94a700626d2d7fc48fce2f0400c764416483e88
+Author: Grzesiek Kolodziejczyk <gkolodziejczyk@gmail.com>
+Date: Thu May 12 03:46:08 2011 -0700
+
+ Fix overflow of megabits on 32bit machines.
+
+ perf/local_thr.cpp | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
commit c35f65a82f1dace3a0b9afc5185dc3efc35595b5
Author: Pieter Hintjens <ph@imatix.com>
Date: Thu May 12 12:07:51 2011 +0200
@@ -9,6 +653,13 @@ Date: Thu May 12 12:07:51 2011 +0200
NEWS | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
+commit 143b64bf5ccd59227135cf151a4dc3ed60384360
+Merge: 6bb9e7b dae5a6c
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Tue May 10 08:05:23 2011 +0200
+
+ Merge branch 'master' of github.com:zeromq/zeromq2-1
+
commit dae5a6cb9e589e2471558dc86c55202558e918c2
Author: Martin Sustrik <sustrik@250bpm.com>
Date: Sun May 8 09:03:49 2011 +0200
@@ -34,6 +685,18 @@ Date: Sat Apr 9 09:46:59 2011 +0200
include/zmq.h | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
+commit 6bb9e7b55db32090763c7f4a43bda8be24f29fd3
+Author: Pieter Hintjens <ph@imatix.com>
+Date: Sat May 7 09:03:38 2011 +0200
+
+ Fixed spelling errors in man pages
+
+ doc/zmq_getsockopt.txt | 2 +-
+ doc/zmq_pgm.txt | 4 ++--
+ doc/zmq_setsockopt.txt | 2 +-
+ doc/zmq_tcp.txt | 2 +-
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
commit 52318cf705f9b0a73e88b8296d10291f7ba22a86
Merge: c42d156 141a001
Author: Pieter Hintjens <ph@imatix.com>
diff --git a/MAINTAINERS b/MAINTAINERS
index 539c807..00f5030 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1,6 +1,6 @@
Component: Atomic Operations
-Maintainer: Martin Lucina
-Contact: mato@kotelna.sk
+Maintainer: Martin Sustrik
+Contact: sustrik@250bpm.com
Component: Lock-free Algorithms
Maintainer: Martin Sustrik
@@ -38,13 +38,13 @@ Component: Generic Infrastructure (context, mailbox, command, pipe)
Maintainer: Martin Sustrik
Contact: sustrik@250bpm.com
-Component: Reference manual
-Maintainer: Martin Lucina
-Contact: mato@kotelna.sk
+Component: Documentation
+Maintainer: Martin Sustrik
+Contact: sustrik@250bpm.com
Component: Autotools build system
-Maintainer: Mikko Koppanen, Martin Lucina
-Contact: mato@kotelna.sk
+Maintainer: Mikko Koppanen
+Contact: mikko.koppanen@gmail.com
Component: MSVC build system
Maintainer: Martin Sustrik
diff --git a/NEWS b/NEWS
index 8fc0892..9f7a789 100644
--- a/NEWS
+++ b/NEWS
@@ -1,46 +1,78 @@
-0MQ version 2.1.7 (Stable), released on 2011/05/12
+0MQ version 2.1.9 (Stable), released on 2011/08/29
==================================================
Bug fixes
---------
-* Fixed issue 191, message atomicity issue with PUB sockets (an old issue).
+* Fixed issue 240, assertion failure in pgm_socket.cpp:437.
-* Fixed issue 199 (affected ROUTER/XREP sockets, an old issue).
+* Fixed issue 238, assertion failure in zmq.cpp:655, when zmq_poll is
+ used on an empty set, on Windows.
-* Fixed issue 206, assertion failure in zmq.cpp:223, affected all sockets
- (bug was introduced in 2.1.6 as part of message validity checking).
+* Fixed issue 239, assertion failure in zmq.cpp:223, when ZMQ_SWAP was
+ used with explicit identities and multiple SUB sockets.
-* Fixed issue 211, REP socket asserted if sent malformed envelope (old issue
- due to abuse of assertions for error checking).
+* Fixed issue 236, zmq_send() and zmq_recv() did not always return
+ error conditions such as EFSM properly. This bug was introduced in
+ version 2.1.8 by the backport of changes for issue 231.
-* Fixed issue 212, reconnect failing after resume from sleep on Windows
- (due to not handling WSAENETDOWN).
+Building
+--------
-* Properly handle WSAENETUNREACH on Windows (e.g. if client connects
- before server binds).
+* 0MQ support for Android added (Bill Roberts, Mikko Koppanen).
-Changes
--------
-* Runtime checking of socket and context validity, to catch e.g. using a
- socket after closing it, or passing an invalid pointer to context/socket
- methods.
+0MQ version 2.1.8 (RC), released on 2011/07/28
+==============================================
-* Test cases moved off port 5555, which conflicts with other services.
+Bug fixes
+---------
-* Clarified zmq_poll man page that the resolution of the timeout is 1msec.
+* Fixed issue 223, assertion failure in tcp_connecter.cpp:300 when
+ connecting to a server that is on an unreachable network (errno is
+ equal to ENETUNREACH).
+
+* Fixed issue 228, assertion failure at rep.cpp:88 when HWM was reached.
+* Fixed issue 231, assertion failure at mailbox.cpp:183 when too many
+ pending socketpair operations were queued (major backport from 3.0).
-0MQ version 2.1.6 (Stable), released on 2011/04/26
+* Fixed issue 234, assertion failure at mailbox.cpp:77 when Ctrl-C was
+ used (only affected git master following backport for 231).
+
+* Fixed issue 230, SIGPIPE killing servers when client disconnected, hit
+ OS/X only.
+
+Note: this release was renamed "release candidate" due to issue 236,
+fixed in 2.1.9.
+
+
+0MQ version 2.1.7 (Stable), released on 2011/05/12
==================================================
Bug fixes
---------
-* Fixed memory leak with threads on Windows.
+* Fixed issue 188, assert when closing socket that had unread multipart
+ data still on it (affected PULL, SUB, ROUTER, and DEALER sockets).
-* Assert during SUB socket termination fixed.
+* Fixed issue 191, message atomicity issue with PUB sockets (an old issue).
+
+* Fixed issue 199 (affected ROUTER/XREP sockets, an old issue).
+
+* Fixed issue 206, assertion failure in zmq.cpp:223, affected all sockets
+ (bug was introduced in 2.1.6 as part of message validity checking).
+
+* Fixed issue 211, REP socket asserted if sent malformed envelope (old issue
+ due to abuse of assertions for error checking).
+
+* Fixed issue 212, reconnect failing after resume from sleep on Windows
+ (due to not handling WSAENETDOWN).
+
+* Properly handle WSAENETUNREACH on Windows (e.g. if client connects
+ before server binds).
+
+* Fixed memory leak with threads on Windows.
Changes
-------
@@ -56,6 +88,21 @@ Changes
* Added "--with-system-pgm" configure option to use already installed
OpenPGM.
+* Runtime checking of socket and context validity, to catch e.g. using a
+ socket after closing it, or passing an invalid pointer to context/socket
+ methods.
+
+* Test cases moved off port 5555, which conflicts with other services.
+
+* Clarified zmq_poll man page that the resolution of the timeout is 1msec.
+
+
+0MQ version 2.1.6 (Broken), released on 2011/04/26
+==================================================
+
+Note that this version contained a malformed patch and is not usable.
+It is not available for download, but is available in the git via the
+2.1.6 tag.
0MQ version 2.1.5 (Broken), released on 2011/04/20
==================================================
diff --git a/aclocal.m4 b/aclocal.m4
index bd741d2..f9e8889 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -156,7 +156,7 @@ $$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-_PKG_TEXT])dnl
+_PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
@@ -167,7 +167,7 @@ path to pkg-config.
_PKG_TEXT
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
diff --git a/autogen.sh b/autogen.sh
index 2cc40b9..d03084b 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -5,17 +5,17 @@
#
# This file is part of 0MQ.
#
-# 0MQ is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 0MQ is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# 0MQ is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# GNU Lesser General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
+# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Script to generate all required files from fresh git checkout.
diff --git a/builds/msvc/Makefile.am b/builds/msvc/Makefile.am
index 9ce00aa..0b0af6f 100644
--- a/builds/msvc/Makefile.am
+++ b/builds/msvc/Makefile.am
@@ -3,6 +3,8 @@ LIBZMQ_DIST = libzmq/libzmq.vcproj platform.hpp msvc.sln
PERF_DIST = c_local_thr/c_local_thr.vcproj \
c_remote_thr/c_remote_thr.vcproj \
c_local_lat/c_local_lat.vcproj \
- c_remote_lat/c_remote_lat.vcproj
+ c_remote_lat/c_remote_lat.vcproj \
+ inproc_lat/inproc_lat.vcproj \
+ inproc_thr/inproc_thr.vcproj
EXTRA_DIST = $(LIBZMQ_DIST) $(PERF_DIST)
diff --git a/builds/msvc/Makefile.in b/builds/msvc/Makefile.in
index 20d9e1d..6283062 100644
--- a/builds/msvc/Makefile.in
+++ b/builds/msvc/Makefile.in
@@ -197,7 +197,9 @@ LIBZMQ_DIST = libzmq/libzmq.vcproj platform.hpp msvc.sln
PERF_DIST = c_local_thr/c_local_thr.vcproj \
c_remote_thr/c_remote_thr.vcproj \
c_local_lat/c_local_lat.vcproj \
- c_remote_lat/c_remote_lat.vcproj
+ c_remote_lat/c_remote_lat.vcproj \
+ inproc_lat/inproc_lat.vcproj \
+ inproc_thr/inproc_thr.vcproj
EXTRA_DIST = $(LIBZMQ_DIST) $(PERF_DIST)
all: all-am
diff --git a/builds/msvc/inproc_lat/inproc_lat.vcproj b/builds/msvc/inproc_lat/inproc_lat.vcproj
new file mode 100644
index 0000000..15549ff
--- /dev/null
+++ b/builds/msvc/inproc_lat/inproc_lat.vcproj
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="inproc_lat"
+ ProjectGUID="{6FF7436F-B3F6-4AE9-A3AC-CFDE8A3872A0}"
+ RootNamespace="inproc_lat"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../bin/inproc_lat.exe"
+ GenerateDebugInformation="true"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../bin/inproc_lat.exe"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\perf\inproc_lat.cpp"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/builds/msvc/inproc_thr/inproc_thr.vcproj b/builds/msvc/inproc_thr/inproc_thr.vcproj
new file mode 100644
index 0000000..96415c9
--- /dev/null
+++ b/builds/msvc/inproc_thr/inproc_thr.vcproj
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="inproc_thr"
+ ProjectGUID="{1077E977-95DD-4E73-A692-74647DD0CC1E}"
+ RootNamespace="inproc_thr"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../bin/inproc_thr.exe"
+ GenerateDebugInformation="true"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../bin/inproc_thr.exe"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\perf\inproc_thr.cpp"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/builds/msvc/libzmq/libzmq.vcproj b/builds/msvc/libzmq/libzmq.vcproj
index c774ac2..370223d 100644
--- a/builds/msvc/libzmq/libzmq.vcproj
+++ b/builds/msvc/libzmq/libzmq.vcproj
@@ -395,6 +395,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\signaler.cpp"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\socket_base.cpp"
>
</File>
diff --git a/config/ltmain.sh b/config/ltmain.sh
index 7ed280b..fa4b1e1 100755
--- a/config/ltmain.sh
+++ b/config/ltmain.sh
@@ -65,7 +65,7 @@
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3
# automake: $automake_version
# autoconf: $autoconf_version
#
@@ -73,7 +73,7 @@
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
+VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"
TIMESTAMP=""
package_revision=1.3017
diff --git a/configure b/configure
index 1344c83..edd17fa 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.7.
+# Generated by GNU Autoconf 2.67 for zeromq 2.1.9.
#
# Report bugs to <zeromq-dev@lists.zeromq.org>.
#
@@ -701,8 +701,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='zeromq'
PACKAGE_TARNAME='zeromq'
-PACKAGE_VERSION='2.1.7'
-PACKAGE_STRING='zeromq 2.1.7'
+PACKAGE_VERSION='2.1.9'
+PACKAGE_STRING='zeromq 2.1.9'
PACKAGE_BUGREPORT='zeromq-dev@lists.zeromq.org'
PACKAGE_URL=''
@@ -1467,7 +1467,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.7 to adapt to many kinds of systems.
+\`configure' configures zeromq 2.1.9 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1537,7 +1537,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of zeromq 2.1.7:";;
+ short | recursive ) echo "Configuration of zeromq 2.1.9:";;
esac
cat <<\_ACEOF
@@ -1659,7 +1659,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-zeromq configure 2.1.7
+zeromq configure 2.1.9
generated by GNU Autoconf 2.67
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2414,7 +2414,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.7, which was
+It was created by zeromq $as_me 2.1.9, which was
generated by GNU Autoconf 2.67. Invocation command line was
$ $0 $@
@@ -3233,7 +3233,7 @@ fi
# Define the identity of the package.
PACKAGE='zeromq'
- VERSION='2.1.7'
+ VERSION='2.1.9'
cat >>confdefs.h <<_ACEOF
@@ -16207,6 +16207,14 @@ else
as_fn_error $? "cannot link with -luuid, install uuid-dev." "$LINENO" 5
fi
+
+ case "${host_os}" in
+ *android*)
+
+$as_echo "#define ZMQ_HAVE_ANDROID 1" >>confdefs.h
+
+ ;;
+ esac
;;
*solaris*)
# Define on Solaris to enable all library features
@@ -19405,7 +19413,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.7, which was
+This file was extended by zeromq $as_me 2.1.9, which was
generated by GNU Autoconf 2.67. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19471,7 +19479,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.7
+zeromq config.status 2.1.9
configured by $0, generated by GNU Autoconf 2.67,
with options \\"\$ac_cs_config\\"
diff --git a/configure.in b/configure.in
index 25d3c93..0f9b358 100644
--- a/configure.in
+++ b/configure.in
@@ -91,6 +91,12 @@ case "${host_os}" in
AC_CHECK_LIB(rt, sem_init)
AC_CHECK_LIB(uuid, uuid_generate, ,
[AC_MSG_ERROR([cannot link with -luuid, install uuid-dev.])])
+
+ case "${host_os}" in
+ *android*)
+ AC_DEFINE(ZMQ_HAVE_ANDROID, 1, [Have Android OS])
+ ;;
+ esac
;;
*solaris*)
# Define on Solaris to enable all library features
diff --git a/doc/zmq.7 b/doc/zmq.7
index 60394d0..07ec236 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ" "7" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ" "7" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq.html b/doc/zmq.html
index b35c57e..bce168f 100644
--- a/doc/zmq.html
+++ b/doc/zmq.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq(7)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq(7) Manual Page
@@ -580,11 +560,14 @@ zmq(7) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>#include &lt;zmq.h&gt;</strong></p></div>
<div class="paragraph"><p><strong>cc</strong> [<em>flags</em>] <em>files</em> <strong>-lzmq</strong> [<em>libraries</em>]</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The ØMQ lightweight messaging kernel is a library which extends the standard
@@ -596,7 +579,8 @@ and more.</p></div>
<div class="paragraph"><p>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.</p></div>
-<h3 id="_context">Context</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_context">Context</h3>
<div class="paragraph"><p>Before using any ØMQ library functions the caller must initialise a ØMQ
<em>context</em> using <em>zmq_init()</em>. The following functions are provided to handle
initialisation and termination of a <em>context</em>:</p></div>
@@ -618,6 +602,7 @@ Terminate ØMQ context
</p>
</dd>
</dl></div>
+<div class="sect3">
<h4 id="_thread_safety">Thread safety</h4>
<div class="paragraph"><p>A ØMQ <em>context</em> 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 +613,17 @@ In practice this means applications can create a socket in one thread with
<em>zmq_socket()</em> and then pass it to a <em>newly created</em> thread as part of thread
initialization, for example via a structure passed as an argument to
<em>pthread_create()</em>.</p></div>
+</div>
+<div class="sect3">
<h4 id="_multiple_contexts">Multiple contexts</h4>
<div class="paragraph"><p>Multiple <em>contexts</em> 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.</p></div>
-<h3 id="_messages">Messages</h3><div style="clear:left"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_messages">Messages</h3>
<div class="paragraph"><p>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 +667,9 @@ Message manipulation
</p>
</dd>
</dl></div>
-<h3 id="_sockets">Sockets</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_sockets">Sockets</h3>
<div class="paragraph"><p>ØMQ sockets present an abstraction of a asynchronous <em>message queue</em>, with the
exact queueing semantics depending on the socket type in use. See
<a href="zmq_socket.html">zmq_socket(3)</a> for the socket types provided.</p></div>
@@ -731,7 +723,9 @@ Sending and receiving messages
a set containing both ØMQ sockets and standard sockets. This mechanism mirrors
the standard <em>poll()</em> system call, and is described in detail in
<a href="zmq_poll.html">zmq_poll(3)</a>.</p></div>
-<h3 id="_transports">Transports</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_transports">Transports</h3>
<div class="paragraph"><p>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.</p></div>
@@ -770,13 +764,18 @@ Local in-process (inter-thread) communication transport
</p>
</dd>
</dl></div>
-<h3 id="_devices">Devices</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_devices">Devices</h3>
<div class="paragraph"><p>ØMQ provides <em>devices</em>, 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.</p></div>
<div class="paragraph"><p>You can start a device in an application thread, see <a href="zmq_device.html">zmq_device(3)</a>.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_error_handling">ERROR HANDLING</h2>
<div class="sectionbody">
<div class="paragraph"><p>The ØMQ library functions handle errors using the standard conventions found on
@@ -790,6 +789,8 @@ to assist in these cases; for details refer to <a href="zmq_errno.html">zmq_errn
<div class="paragraph"><p>The <em>zmq_strerror()</em> function is provided to translate ØMQ-specific error codes
into error message strings; for details refer to <a href="zmq_strerror.html">zmq_strerror(3)</a>.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_miscellaneous">MISCELLANEOUS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The following miscellaneous functions are provided:</p></div>
@@ -804,6 +805,8 @@ Report ØMQ library version
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_language_bindings">LANGUAGE BINDINGS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The ØMQ library provides interfaces suitable for calling from programs in any
@@ -811,23 +814,33 @@ 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.</p></div>
-<h3 id="_c_language_binding">C++ language binding</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_c_language_binding">C++ language binding</h3>
<div class="paragraph"><p>The ØMQ distribution includes a C++ language binding, which is documented
separately in <a href="zmq_cpp.html">zmq_cpp(7)</a>.</p></div>
-<h3 id="_other_language_bindings">Other language bindings</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_other_language_bindings">Other language bindings</h3>
<div class="paragraph"><p>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.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_resources">RESOURCES</h2>
<div class="sectionbody">
<div class="paragraph"><p>Main web site: <a href="http://www.zeromq.org/">http://www.zeromq.org/</a></p></div>
<div class="paragraph"><p>Report bugs to the ØMQ development mailing list: &lt;<a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a>&gt;</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_copying">COPYING</h2>
<div class="sectionbody">
<div class="paragraph"><p>Free use of this software is granted under the terms of the GNU Lesser General
@@ -835,11 +848,12 @@ Public License (LGPL). For details see the files <tt>COPYING</tt> and <tt>COPYIN
included with the ØMQ distribution.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_bind.3 b/doc/zmq_bind.3
index ce589e9..997f7a0 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_BIND" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_BIND" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -70,6 +70,11 @@ With the exception of \fIZMQ_PAIR\fR sockets, a single socket may be connected t
The \fIzmq_bind()\fR function shall return zero if successful\&. Otherwise it shall return \-1 and set \fIerrno\fR to one of the values defined below\&.
.SH "ERRORS"
.PP
+\fBEINVAL\fR
+.RS 4
+The endpoint supplied is invalid\&.
+.RE
+.PP
\fBEPROTONOSUPPORT\fR
.RS 4
The requested
diff --git a/doc/zmq_bind.html b/doc/zmq_bind.html
index 034113d..ef04708 100644
--- a/doc/zmq_bind.html
+++ b/doc/zmq_bind.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_bind(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_bind(3) Manual Page
@@ -580,10 +560,13 @@ zmq_bind(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_bind (void <em>*socket</em>, const char <em>*endpoint</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_bind()</em> function shall create an endpoint for accepting connections
@@ -633,15 +616,27 @@ incoming connections from multiple endpoints bound to the socket using
<em>zmq_bind()</em>. Refer to <a href="zmq_socket.html">zmq_socket(3)</a> for a description of the exact
semantics involved when connecting or binding a socket to multiple endpoints.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_bind()</em> function shall return zero if successful. Otherwise it shall
return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
+<strong>EINVAL</strong>
+</dt>
+<dd>
+<p>
+The endpoint supplied is invalid.
+</p>
+</dd>
+<dt class="hdlist1">
<strong>EPROTONOSUPPORT</strong>
</dt>
<dd>
@@ -707,6 +702,8 @@ No I/O thread is available to accomplish the task.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -723,23 +720,28 @@ rc = zmq_bind (socket, "tcp://eth0:5555");
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_connect.html">zmq_connect(3)</a>
<a href="zmq_socket.html">zmq_socket(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_bind.txt b/doc/zmq_bind.txt
index 06fd79c..1d7c2ff 100644
--- a/doc/zmq_bind.txt
+++ b/doc/zmq_bind.txt
@@ -44,6 +44,8 @@ return `-1` and set 'errno' to one of the values defined below.
ERRORS
------
+*EINVAL*::
+The endpoint supplied is invalid.
*EPROTONOSUPPORT*::
The requested 'transport' protocol is not supported.
*ENOCOMPATPROTO*::
diff --git a/doc/zmq_close.3 b/doc/zmq_close.3
index 86e5666..82a3cc8 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_CLOSE" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_CLOSE" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_close.html b/doc/zmq_close.html
index 015030a..bca12dc 100644
--- a/doc/zmq_close.html
+++ b/doc/zmq_close.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_close(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_close(3) Manual Page
@@ -580,10 +560,13 @@ zmq_close(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_close (void <em>*socket</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_close()</em> function shall destroy the socket referenced by the <em>socket</em>
@@ -603,11 +586,15 @@ For details refer to <a href="zmq_setsockopt.html">zmq_setsockopt(3)</a> and <a
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_close()</em> function shall return zero if successful. Otherwise it shall
return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -621,6 +608,8 @@ The provided <em>socket</em> was invalid.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_socket.html">zmq_socket(3)</a>
@@ -628,17 +617,20 @@ The provided <em>socket</em> was invalid.
<a href="zmq_setsockopt.html">zmq_setsockopt(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-06-09 19:50:07 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_connect.3 b/doc/zmq_connect.3
index 1adc6af..4f50086 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_CONNECT" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_CONNECT" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -86,6 +86,11 @@ The connection will not be performed immediately but as needed by 0MQ\&. Thus a
The \fIzmq_connect()\fR function shall return zero if successful\&. Otherwise it shall return \-1 and set \fIerrno\fR to one of the values defined below\&.
.SH "ERRORS"
.PP
+\fBEINVAL\fR
+.RS 4
+The endpoint supplied is invalid\&.
+.RE
+.PP
\fBEPROTONOSUPPORT\fR
.RS 4
The requested
diff --git a/doc/zmq_connect.html b/doc/zmq_connect.html
index b67ced9..52c0ad3 100644
--- a/doc/zmq_connect.html
+++ b/doc/zmq_connect.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_connect(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_connect(3) Manual Page
@@ -580,10 +560,13 @@ zmq_connect(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_connect (void <em>*socket</em>, const char <em>*endpoint</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_connect()</em> function shall connect the socket referenced by the
@@ -643,15 +626,27 @@ physical connection was or can actually be established.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_connect()</em> function shall return zero if successful. Otherwise it
shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
+<strong>EINVAL</strong>
+</dt>
+<dd>
+<p>
+The endpoint supplied is invalid.
+</p>
+</dd>
+<dt class="hdlist1">
<strong>EPROTONOSUPPORT</strong>
</dt>
<dd>
@@ -693,6 +688,8 @@ No I/O thread is available to accomplish the task.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -709,23 +706,28 @@ rc = zmq_connect (socket, "tcp://server001:5555");
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_bind.html">zmq_bind(3)</a>
<a href="zmq_socket.html">zmq_socket(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_connect.txt b/doc/zmq_connect.txt
index 1c69631..6ec56b0 100644
--- a/doc/zmq_connect.txt
+++ b/doc/zmq_connect.txt
@@ -48,6 +48,8 @@ shall return `-1` and set 'errno' to one of the values defined below.
ERRORS
------
+*EINVAL*::
+The endpoint supplied is invalid.
*EPROTONOSUPPORT*::
The requested 'transport' protocol is not supported.
*ENOCOMPATPROTO*::
diff --git a/doc/zmq_cpp.7 b/doc/zmq_cpp.7
index 835da89..72c2f97 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_CPP" "7" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_CPP" "7" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_cpp.html b/doc/zmq_cpp.html
index 31aea45..6b31c9f 100644
--- a/doc/zmq_cpp.html
+++ b/doc/zmq_cpp.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_cpp(7)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_cpp(7) Manual Page
@@ -580,11 +560,14 @@ zmq_cpp(7) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>#include &lt;zmq.hpp&gt;</strong></p></div>
<div class="paragraph"><p><strong>c++</strong> [<em>flags</em>] <em>files</em> <strong>-lzmq</strong> [<em>libraries</em>]</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>This manual page describes how the ØMQ C++ language binding maps to the
@@ -592,126 +575,151 @@ underlying ØMQ C library functions.</p></div>
<div class="paragraph"><p>All ØMQ constants defined by <em>zmq.h</em> are also available to the C++ language
binding.</p></div>
<div class="paragraph"><p>The following classes are provided in the <em>zmq</em> namespace:</p></div>
-<h3 id="_context">Context</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_context">Context</h3>
<div class="paragraph"><p>The <em>context_t</em> class encapsulates functionality dealing with the
initialisation and termination of a ØMQ <em>context</em>.</p></div>
+<div class="sect3">
<h4 id="_constructor">Constructor</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>context_t::context_t(int <em>io_threads</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>context_t::context_t(int <em>io_threads</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_init()</em> function, as described in <a href="zmq_init.html">zmq_init(3)</a>.</p></div>
+</div>
+<div class="sect3">
<h4 id="_destructor">Destructor</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>context_t::~context_t(void)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>context_t::~context_t(void)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_term()</em> function, as described in <a href="zmq_term.html">zmq_term(3)</a>.</p></div>
+</div>
+<div class="sect3">
<h4 id="_methods">Methods</h4>
<div class="paragraph"><p>None.</p></div>
-<h3 id="_socket">Socket</h3><div style="clear:left"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_socket">Socket</h3>
<div class="paragraph"><p>The <em>socket_t</em> class encapsulates a ØMQ socket.</p></div>
+<div class="sect3">
<h4 id="_constructor_2">Constructor</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>socket_t::socket_t(context_t <em>&amp;context</em>, int <em>type</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>socket_t::socket_t(context_t <em>&amp;context</em>, int <em>type</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_socket()</em> function, as described in <a href="zmq_socket.html">zmq_socket(3)</a>.</p></div>
+</div>
+<div class="sect3">
<h4 id="_destructor_2">Destructor</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>socket_t::~socket_t(void)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>socket_t::~socket_t(void)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Calls the <em>zmq_close()</em> function, as described in <a href="zmq_close.html">zmq_close(3)</a>.</p></div>
+</div>
+<div class="sect3">
<h4 id="_methods_2">Methods</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>void socket_t::getsockopt(int <em>option_name</em>, void <em>*option_value</em>, size_t
-<em>*option_len</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>void socket_t::getsockopt(int <em>option_name</em>, void <em>*option_value</em>, size_t
+<em>*option_len</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_getsockopt()</em> function, as described in
<a href="zmq_getsockopt.html">zmq_getsockopt(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>void socket_t::setsockopt(int <em>option_name</em>, const void <em>*option_value</em>, size_t
-<em>option_len</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>void socket_t::setsockopt(int <em>option_name</em>, const void <em>*option_value</em>, size_t
+<em>option_len</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_setsockopt()</em> function, as described in
<a href="zmq_setsockopt.html">zmq_setsockopt(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>void socket_t::bind(const char <em>*endpoint</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>void socket_t::bind(const char <em>*endpoint</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_bind()</em> function, as described in <a href="zmq_bind.html">zmq_bind(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>void socket_t::connect(const char <em>*endpoint</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>void socket_t::connect(const char <em>*endpoint</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_connect()</em> function, as described in <a href="zmq_connect.html">zmq_connect(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>bool socket_t::send(message_t <em>&amp;msg</em>, int <em>flags</em> = 0)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>bool socket_t::send(message_t <em>&amp;msg</em>, int <em>flags</em> = 0)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_send()</em> function, as described in <a href="zmq_send.html">zmq_send(3)</a>.
Returns true if message is successfully sent, false if it is not.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>bool socket_t::recv(message_t <em>*msg</em>, int <em>flags</em> = 0)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>bool socket_t::recv(message_t <em>*msg</em>, int <em>flags</em> = 0)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_recv()</em> function, as described in <a href="zmq_recv.html">zmq_recv(3)</a>.
Returns true if message is successfully received, false if it is not.</p></div>
-<h3 id="_message">Message</h3><div style="clear:left"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_message">Message</h3>
<div class="paragraph"><p>The <em>zmq::message_t</em> class encapsulates the <em>zmq_msg_t</em> structure and
functions to construct, destruct and manipulate ØMQ messages.</p></div>
+<div class="sect3">
<h4 id="_constructor_3">Constructor</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>message_t::message_t(void)</strong>
+<pre class="content"><strong>message_t::message_t(void)</strong>
<strong>message_t::message_t(size_t <em>size</em>)</strong>
-<strong>message_t::message_t(void <em>*data</em>, size_t <em>size</em>, free_fn <em>*ffn</em>)</strong></div>
-<div class="verseblock-attribution">
+<strong>message_t::message_t(void <em>*data</em>, size_t <em>size</em>, free_fn <em>*ffn</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>These map to the <em>zmq_msg_init()</em>, <em>zmq_msg_init_size()</em> and
<em>zmq_msg_init_data()</em> functions, described in <a href="zmq_msg_init.html">zmq_msg_init(3)</a>,
<a href="zmq_msg_init_size.html">zmq_msg_init_size(3)</a> and <a href="zmq_msg_init_data.html">zmq_msg_init_data(3)</a> respectively.</p></div>
+</div>
+<div class="sect3">
<h4 id="_destructor_3">Destructor</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>message_t::~message_t(void)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>message_t::~message_t(void)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Calls the <em>zmq_msg_close()</em> function, as described in <a href="zmq_msg_close.html">zmq_msg_close(3)</a>.</p></div>
+</div>
+<div class="sect3">
<h4 id="_methods_3">Methods</h4>
<div class="verseblock">
-<div class="verseblock-content"><strong>void *message_t::data (void)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>void *message_t::data (void)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_msg_data()</em> function, as described in <a href="zmq_msg_data.html">zmq_msg_data(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>size_t message_t::size (void)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>size_t message_t::size (void)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_msg_size()</em> function, as described in <a href="zmq_msg_size.html">zmq_msg_size(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>void message_t::copy (message_t <em>*src</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>void message_t::copy (message_t <em>*src</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_msg_copy()</em> function, as described in <a href="zmq_msg_copy.html">zmq_msg_copy(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>void message_t::move (message_t <em>*src</em>)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>void message_t::move (message_t <em>*src</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Maps to the <em>zmq_msg_move()</em> function, as described in <a href="zmq_msg_move.html">zmq_msg_move(3)</a>.</p></div>
<div class="verseblock">
-<div class="verseblock-content"><strong>message_t::rebuild(void)</strong>
+<pre class="content"><strong>message_t::rebuild(void)</strong>
<strong>message_t::rebuild(size_t <em>size</em>)</strong>
-<strong>message_t::rebuild(void <em>*data</em>, size_t <em>size</em>, free_fn <em>*ffn</em>)</strong></div>
-<div class="verseblock-attribution">
+<strong>message_t::rebuild(void <em>*data</em>, size_t <em>size</em>, free_fn <em>*ffn</em>)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>Equivalent to calling the <em>zmq_msg_close()</em> function followed by the
corresponding <em>zmq_msg_init()</em> function.</p></div>
-<h3 id="_input_output_multiplexing">Input/output multiplexing</h3><div style="clear:left"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_input_output_multiplexing">Input/output multiplexing</h3>
<div class="verseblock">
-<div class="verseblock-content"><strong>int poll (zmq_pollitem_t *items, int nitems, long timeout = -1)</strong></div>
-<div class="verseblock-attribution">
+<pre class="content"><strong>int poll (zmq_pollitem_t *items, int nitems, long timeout = -1)</strong></pre>
+<div class="attribution">
</div></div>
<div class="paragraph"><p>The <em>poll()</em> function is a namespaced equivalent of the <em>zmq_poll()</em> function,
as described in <a href="zmq_poll.html">zmq_poll(3)</a>.</p></div>
@@ -725,6 +733,9 @@ should cast an instance of the <em>socket_t</em> class to <tt>(void *)</tt>.</td
</tr></table>
</div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_error_handling">ERROR HANDLING</h2>
<div class="sectionbody">
<div class="paragraph"><p>All errors reported by the underlying ØMQ C library functions are automatically
@@ -732,6 +743,8 @@ converted to exceptions by the C++ language binding. The <em>zmq::error_t</em>
is derived from the <em>std::exception</em> class and uses the <em>zmq_strerror()</em>
function to convert the error code to human-readable string.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -744,21 +757,26 @@ memset (msg.data (), 0, 100);
s.send (msg);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_device.3 b/doc/zmq_device.3
index eb6d4c4..7888546 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_DEVICE" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_DEVICE" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_device.html b/doc/zmq_device.html
index 21a2fbc..f5ea972 100644
--- a/doc/zmq_device.html
+++ b/doc/zmq_device.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_device(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_device(3) Manual Page
@@ -580,10 +560,13 @@ zmq_device(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_device (int <em>device</em>, const void <em>*frontend</em>, const void <em>*backend</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_device()</em> function starts a built-in ØMQ device. The <em>device</em> argument
@@ -646,6 +629,8 @@ bind both frontend and backend sockets. The two conventional device models are:<
<div class="paragraph"><p><em>zmq_device()</em> runs in the current thread and returns only if/when the current
context is closed.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_queue_device">QUEUE DEVICE</h2>
<div class="sectionbody">
<div class="paragraph"><p><em>ZMQ_QUEUE</em> creates a shared queue that collects requests from a set of clients,
@@ -658,6 +643,8 @@ clients and the backend speaks to services. You should use <em>ZMQ_QUEUE</em> wi
Other combinations are not documented.</p></div>
<div class="paragraph"><p>Refer to <a href="zmq_socket.html">zmq_socket(3)</a> for a description of these socket types.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_forwarder_device">FORWARDER DEVICE</h2>
<div class="sectionbody">
<div class="paragraph"><p><em>ZMQ_FORWARDER</em> collects messages from a set of publishers and forwards these to
@@ -669,6 +656,8 @@ publishers and the backend speaks to subscribers. You should use
for the backend. Other combinations are not documented.</p></div>
<div class="paragraph"><p>Refer to <a href="zmq_socket.html">zmq_socket(3)</a> for a description of these socket types.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_streamer_device">STREAMER DEVICE</h2>
<div class="sectionbody">
<div class="paragraph"><p><em>ZMQ_STREAMER</em> collects tasks from a set of pushers and forwards these to a set
@@ -680,11 +669,15 @@ and the backend speaks to pullers. You should use <em>ZMQ_STREAMER</em> with a
Other combinations are not documented.</p></div>
<div class="paragraph"><p>Refer to <a href="zmq_socket.html">zmq_socket(3)</a> for a description of these socket types.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_device()</em> function always returns <tt>-1</tt> and <em>errno</em> set to <strong>ETERM</strong> (the
ØMQ <em>context</em> associated with either of the specified sockets was terminated).</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -702,6 +695,8 @@ assert (zmq_bind (backend, "tcp://*:5556") == 0);
zmq_device (ZMQ_QUEUE, frontend, backend);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_bind.html">zmq_bind(3)</a>
@@ -709,15 +704,21 @@ zmq_device (ZMQ_QUEUE, frontend, backend);</tt></pre>
<a href="zmq_socket.html">zmq_socket(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Pieter Hintjens &lt;<a href="mailto:ph@imatix.com">ph@imatix.com</a>&gt;</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_resources">RESOURCES</h2>
<div class="sectionbody">
<div class="paragraph"><p>Main web site: <a href="http://www.zeromq.org/">http://www.zeromq.org/</a></p></div>
<div class="paragraph"><p>Report bugs to the ØMQ development mailing list: &lt;<a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a>&gt;</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_copying">COPYING</h2>
<div class="sectionbody">
<div class="paragraph"><p>Free use of this software is granted under the terms of the GNU Lesser General
@@ -725,11 +726,12 @@ Public License (LGPL). For details see the files <tt>COPYING</tt> and <tt>COPYIN
included with the ØMQ distribution.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 18:00:00 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 18:00:00 CET
</div>
</div>
</body>
diff --git a/doc/zmq_epgm.7 b/doc/zmq_epgm.7
index 8ee8ef3..66250f5 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_PGM" "7" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_PGM" "7" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -83,7 +83,7 @@ The interface name as defined by the operating system\&.
.sp -1
.IP \(bu 2.3
.\}
-The primary IPv4 address assigned to the interface, in it\(cqs numeric representation\&.
+The primary IPv4 address assigned to the interface, in its numeric representation\&.
.RE
.if n \{\
.sp
@@ -102,7 +102,7 @@ Interface names are not standardised in any way and should be assumed to be arbi
.sp .5v
.RE
.sp
-A \fImulticast address\fR is specified by an IPv4 multicast address in it\(cqs numeric representation\&.
+A \fImulticast address\fR is specified by an IPv4 multicast address in its numeric representation\&.
.SH "WIRE FORMAT"
.sp
Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream of data where 0MQ messages are not necessarily aligned with PGM datagram boundaries and a single 0MQ message may span several PGM datagrams\&. This stream of data consists of 0MQ messages encapsulated in \fIframes\fR as described in \fBzmq_tcp\fR(7)\&.
diff --git a/doc/zmq_epgm.html b/doc/zmq_epgm.html
index 9383d71..64e3e75 100644
--- a/doc/zmq_epgm.html
+++ b/doc/zmq_epgm.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_pgm(7)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_pgm(7) Manual Page
@@ -580,11 +560,14 @@ zmq_pgm(7) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p>PGM (Pragmatic General Multicast) is a protocol for reliable multicast
transport of data over IP networks.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>ØMQ implements two variants of PGM, the standard protocol where PGM datagrams
@@ -610,6 +593,8 @@ not require any special privileges.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_addressing">ADDRESSING</h2>
<div class="sectionbody">
<div class="paragraph"><p>A ØMQ address string consists of two parts as follows:
@@ -618,7 +603,8 @@ transport protocol to use. For the standard PGM protocol, <em>transport</em> sha
set to <tt>pgm</tt>. For the "Encapsulated PGM" protocol <em>transport</em> shall be set to
<tt>epgm</tt>. The meaning of the <em>endpoint</em> part for both the <em>pgm</em> and <em>epgm</em>
transport is defined below.</p></div>
-<h3 id="_connecting_a_socket">Connecting a socket</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_connecting_a_socket">Connecting a socket</h3>
<div class="paragraph"><p>When connecting a socket to a peer address using <em>zmq_connect()</em> with the <em>pgm</em>
or <em>epgm</em> transport, the <em>endpoint</em> shall be interpreted as an <em>interface</em>
followed by a semicolon, followed by a <em>multicast address</em>, followed by a colon
@@ -632,7 +618,7 @@ The interface name as defined by the operating system.
</li>
<li>
<p>
-The primary IPv4 address assigned to the interface, in it&#8217;s numeric
+The primary IPv4 address assigned to the interface, in its numeric
representation.
</p>
</li>
@@ -648,9 +634,12 @@ names exist, thus only the primary IPv4 address may be used to specify an
<em>interface</em>.</td>
</tr></table>
</div>
-<div class="paragraph"><p>A <em>multicast address</em> is specified by an IPv4 multicast address in it&#8217;s numeric
+<div class="paragraph"><p>A <em>multicast address</em> is specified by an IPv4 multicast address in its numeric
representation.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_wire_format">WIRE FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Consecutive PGM datagrams are interpreted by ØMQ as a single continuous stream
@@ -658,7 +647,8 @@ 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 <em>frames</em> as described in
<a href="zmq_tcp.html">zmq_tcp(7)</a>.</p></div>
-<h3 id="_pgm_datagram_payload">PGM datagram payload</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_pgm_datagram_payload">PGM datagram payload</h3>
<div class="paragraph"><p>The following ABNF grammar represents the payload of a single PGM datagram as
used by ØMQ:</p></div>
<div class="literalblock">
@@ -706,6 +696,9 @@ Third datagram payload
+--------------+----------------------------+-------------+</tt></pre>
</div></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -723,6 +716,8 @@ rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555");
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_connect.html">zmq_connect(3)</a>
@@ -732,17 +727,20 @@ assert (rc == 0);</tt></pre>
<a href="zmq_inproc.html">zmq_inproc(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.5<br />
-Last updated 2011-04-16 10:29:20 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_epgm.txt b/doc/zmq_epgm.txt
index 9a48afd..68ec504 100644
--- a/doc/zmq_epgm.txt
+++ b/doc/zmq_epgm.txt
@@ -55,7 +55,7 @@ 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
+* The primary IPv4 address assigned to the interface, in its numeric
representation.
NOTE: Interface names are not standardised in any way and should be assumed to
@@ -63,7 +63,7 @@ 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
+A 'multicast address' is specified by an IPv4 multicast address in its numeric
representation.
diff --git a/doc/zmq_errno.3 b/doc/zmq_errno.3
index 3eeeab8..fd3694c 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_ERRNO" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_ERRNO" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_errno.html b/doc/zmq_errno.html
index b84c35b..ee4d04b 100644
--- a/doc/zmq_errno.html
+++ b/doc/zmq_errno.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_errno(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_errno(3) Manual Page
@@ -580,10 +560,13 @@ zmq_errno(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_errno (void);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_errno()</em> function shall retrieve the value of the <em>errno</em> variable for
@@ -604,30 +587,39 @@ variable directly.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_errno()</em> function shall return the value of the <em>errno</em> variable for
the calling thread.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>No errors are defined.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_getsockopt.3 b/doc/zmq_getsockopt.3
index c744803..c11b5f0 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_GETSOCKOPT" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_GETSOCKOPT" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -162,7 +162,7 @@ T}
.sp 1
.SS "ZMQ_SWAP: Retrieve disk offload size"
.sp
-The \fIZMQ_SWAP\fR option shall retrieve the disk offload (swap) size for the specified \fIsocket\fR\&. A socket which has \fIZMQ_SWAP\fR set to a non\-zero value may exceed it\(cqs high water mark; in this case outstanding messages shall be offloaded to storage on disk rather than held in memory\&.
+The \fIZMQ_SWAP\fR option shall retrieve the disk offload (swap) size for the specified \fIsocket\fR\&. A socket which has \fIZMQ_SWAP\fR set to a non\-zero value may exceed its high water mark; in this case outstanding messages shall be offloaded to storage on disk rather than held in memory\&.
.sp
The value of \fIZMQ_SWAP\fR defines the maximum size of the swap space in bytes\&.
.TS
diff --git a/doc/zmq_getsockopt.html b/doc/zmq_getsockopt.html
index 3c0b0e4..e77e2e1 100644
--- a/doc/zmq_getsockopt.html
+++ b/doc/zmq_getsockopt.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_getsockopt(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_getsockopt(3) Manual Page
@@ -580,10 +560,13 @@ zmq_getsockopt(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_getsockopt (void <em>*socket</em>, int <em>option_name</em>, void <em>*option_value</em>, size_t <em>*option_len</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_getsockopt()</em> function shall retrieve the value for the option
@@ -594,7 +577,8 @@ to by <em>option_value</em>; upon successful completion <em>zmq_getsockopt()</em
modify the <em>option_len</em> argument to indicate the actual size of the option
value stored in the buffer.</p></div>
<div class="paragraph"><p>The following options can be retrieved with the <em>zmq_getsockopt()</em> function:</p></div>
-<h3 id="_zmq_type_retrieve_socket_type">ZMQ_TYPE: Retrieve socket type</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_zmq_type_retrieve_socket_type">ZMQ_TYPE: Retrieve socket type</h3>
<div class="paragraph"><p>The <em>ZMQ_TYPE</em> option shall retrieve the socket type for the specified
<em>socket</em>. The socket type is specified at socket creation time and
cannot be modified afterwards.</p></div>
@@ -644,7 +628,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_rcvmore_more_message_parts_to_follow">ZMQ_RCVMORE: More message parts to follow</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_rcvmore_more_message_parts_to_follow">ZMQ_RCVMORE: More message parts to follow</h3>
<div class="paragraph"><p>The <em>ZMQ_RCVMORE</em> option shall return a boolean value indicating if the
multi-part message currently being read from the specified <em>socket</em> has more
message parts to follow. If there are no message parts to follow or if the
@@ -698,7 +684,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_hwm_retrieve_high_water_mark">ZMQ_HWM: Retrieve high water mark</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_hwm_retrieve_high_water_mark">ZMQ_HWM: Retrieve high water mark</h3>
<div class="paragraph"><p>The <em>ZMQ_HWM</em> option shall retrieve the high water mark for the specified
<em>socket</em>. 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
@@ -755,10 +743,12 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_swap_retrieve_disk_offload_size">ZMQ_SWAP: Retrieve disk offload size</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_swap_retrieve_disk_offload_size">ZMQ_SWAP: Retrieve disk offload size</h3>
<div class="paragraph"><p>The <em>ZMQ_SWAP</em> option shall retrieve the disk offload (swap) size for the
specified <em>socket</em>. A socket which has <em>ZMQ_SWAP</em> set to a non-zero value may
-exceed it&#8217;s high water mark; in this case outstanding messages shall be
+exceed its high water mark; in this case outstanding messages shall be
offloaded to storage on disk rather than held in memory.</p></div>
<div class="paragraph"><p>The value of <em>ZMQ_SWAP</em> defines the maximum size of the swap space in bytes.</p></div>
<div class="hdlist"><table>
@@ -807,7 +797,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_affinity_retrieve_i_o_thread_affinity">ZMQ_AFFINITY: Retrieve I/O thread affinity</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_affinity_retrieve_i_o_thread_affinity">ZMQ_AFFINITY: Retrieve I/O thread affinity</h3>
<div class="paragraph"><p>The <em>ZMQ_AFFINITY</em> option shall retrieve the I/O thread affinity for newly
created connections on the specified <em>socket</em>.</p></div>
<div class="paragraph"><p>Affinity determines which threads from the ØMQ I/O thread pool associated with
@@ -865,7 +857,9 @@ N/A
</td>
</tr>
</table></div>
-<h3 id="_zmq_identity_retrieve_socket_identity">ZMQ_IDENTITY: Retrieve socket identity</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_identity_retrieve_socket_identity">ZMQ_IDENTITY: Retrieve socket identity</h3>
<div class="paragraph"><p>The <em>ZMQ_IDENTITY</em> option shall retrieve the identity of the specified
<em>socket</em>. Socket identity determines if existing ØMQ infrastructure (<em>message
queues</em>, <em>forwarding devices</em>) shall be identified with a specific application
@@ -923,7 +917,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_rate_retrieve_multicast_data_rate">ZMQ_RATE: Retrieve multicast data rate</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_rate_retrieve_multicast_data_rate">ZMQ_RATE: Retrieve multicast data rate</h3>
<div class="paragraph"><p>The <em>ZMQ_RATE</em> option shall retrieve the maximum send or receive data rate for
multicast transports using the specified <em>socket</em>.</p></div>
<div class="hdlist"><table>
@@ -972,7 +968,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_recovery_ivl_get_multicast_recovery_interval">ZMQ_RECOVERY_IVL: Get multicast recovery interval</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_recovery_ivl_get_multicast_recovery_interval">ZMQ_RECOVERY_IVL: Get multicast recovery interval</h3>
<div class="paragraph"><p>The <em>ZMQ_RECOVERY_IVL</em> option shall retrieve the recovery interval for
multicast transports using the specified <em>socket</em>. The recovery interval
determines the maximum time in seconds that a receiver can be absent from a
@@ -1023,7 +1021,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_recovery_ivl_msec_get_multicast_recovery_interval_in_milliseconds">ZMQ_RECOVERY_IVL_MSEC: Get multicast recovery interval in milliseconds</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_recovery_ivl_msec_get_multicast_recovery_interval_in_milliseconds">ZMQ_RECOVERY_IVL_MSEC: Get multicast recovery interval in milliseconds</h3>
<div class="paragraph"><p>The <em>ZMQ_RECOVERY_IVL&#8217;_MSEC option shall retrieve the recovery interval, in
milliseconds, for multicast transports using the specified 'socket</em>. The
recovery interval determines the maximum time in seconds that a receiver
@@ -1079,7 +1079,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_mcast_loop_control_multicast_loop_back">ZMQ_MCAST_LOOP: Control multicast loop-back</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_mcast_loop_control_multicast_loop_back">ZMQ_MCAST_LOOP: Control multicast loop-back</h3>
<div class="paragraph"><p>The <em>ZMQ_MCAST_LOOP</em> 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
@@ -1133,7 +1135,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_sndbuf_retrieve_kernel_transmit_buffer_size">ZMQ_SNDBUF: Retrieve kernel transmit buffer size</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_sndbuf_retrieve_kernel_transmit_buffer_size">ZMQ_SNDBUF: Retrieve kernel transmit buffer size</h3>
<div class="paragraph"><p>The <em>ZMQ_SNDBUF</em> option shall retrieve the underlying kernel transmit buffer
size for the specified <em>socket</em>. A value of zero means that the OS default is
in effect. For details refer to your operating system documentation for the
@@ -1184,7 +1188,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_rcvbuf_retrieve_kernel_receive_buffer_size">ZMQ_RCVBUF: Retrieve kernel receive buffer size</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_rcvbuf_retrieve_kernel_receive_buffer_size">ZMQ_RCVBUF: Retrieve kernel receive buffer size</h3>
<div class="paragraph"><p>The <em>ZMQ_RCVBUF</em> option shall retrieve the underlying kernel receive buffer
size for the specified <em>socket</em>. A value of zero means that the OS default is
in effect. For details refer to your operating system documentation for the
@@ -1235,7 +1241,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_linger_retrieve_linger_period_for_socket_shutdown">ZMQ_LINGER: Retrieve linger period for socket shutdown</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_linger_retrieve_linger_period_for_socket_shutdown">ZMQ_LINGER: Retrieve linger period for socket shutdown</h3>
<div class="paragraph"><p>The <em>ZMQ_LINGER</em> option shall retrieve the linger period for the specified
<em>socket</em>. 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
@@ -1313,7 +1321,9 @@ all
</table></div>
</li>
</ul></div>
-<h3 id="_zmq_reconnect_ivl_retrieve_reconnection_interval">ZMQ_RECONNECT_IVL: Retrieve reconnection interval</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_reconnect_ivl_retrieve_reconnection_interval">ZMQ_RECONNECT_IVL: Retrieve reconnection interval</h3>
<div class="paragraph"><p>The <em>ZMQ_RECONNECT_IVL</em> option shall retrieve the initial reconnection interval
for the specified <em>socket</em>. The reconnection interval is the period ØMQ shall
wait between attempts to reconnect disconnected peers when using
@@ -1373,7 +1383,9 @@ all, only for connection-oriented transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_reconnect_ivl_max_retrieve_maximum_reconnection_interval">ZMQ_RECONNECT_IVL_MAX: Retrieve maximum reconnection interval</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_reconnect_ivl_max_retrieve_maximum_reconnection_interval">ZMQ_RECONNECT_IVL_MAX: Retrieve maximum reconnection interval</h3>
<div class="paragraph"><p>The <em>ZMQ_RECONNECT_IVL_MAX</em> option shall retrieve the maximum reconnection
interval for the specified <em>socket</em>. This is the maximum period ØMQ shall wait
between attempts to reconnect. On each reconnect attempt, the previous interval
@@ -1434,7 +1446,9 @@ all, only for connection-oriented transport
</td>
</tr>
</table></div>
-<h3 id="_zmq_backlog_retrieve_maximum_length_of_the_queue_of_outstanding_connections">ZMQ_BACKLOG: Retrieve maximum length of the queue of outstanding connections</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_backlog_retrieve_maximum_length_of_the_queue_of_outstanding_connections">ZMQ_BACKLOG: Retrieve maximum length of the queue of outstanding connections</h3>
<div class="paragraph"><p>The <em>ZMQ_BACKLOG</em> option shall retrieve the maximum length of the queue of
outstanding peer connections for the specified <em>socket</em>; this only applies to
connection-oriented transports. For details refer to your operating system
@@ -1485,7 +1499,9 @@ all, only for connection-oriented transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_fd_retrieve_file_descriptor_associated_with_the_socket">ZMQ_FD: Retrieve file descriptor associated with the socket</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_fd_retrieve_file_descriptor_associated_with_the_socket">ZMQ_FD: Retrieve file descriptor associated with the socket</h3>
<div class="paragraph"><p>The <em>ZMQ_FD</em> option shall retrieve the file descriptor associated with the
specified <em>socket</em>. The returned file descriptor can be used to integrate the
socket into an existing event loop; the ØMQ library shall signal any pending
@@ -1558,7 +1574,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_events_retrieve_socket_event_state">ZMQ_EVENTS: Retrieve socket event state</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_events_retrieve_socket_event_state">ZMQ_EVENTS: Retrieve socket event state</h3>
<div class="paragraph"><p>The <em>ZMQ_EVENTS</em> option shall retrieve the event state for the specified
<em>socket</em>. The returned value is a bit mask constructed by OR&#8217;ing a combination
of the following event flags:</p></div>
@@ -1633,11 +1651,16 @@ all
</tr>
</table></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_getsockopt()</em> function shall return zero if successful. Otherwise it
shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -1678,6 +1701,8 @@ The operation was interrupted by delivery of a signal.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -1690,23 +1715,28 @@ rc = zmq_getsockopt (socket, ZMQ_HWM, &amp;hwm, &amp;hwm_size);
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_setsockopt.html">zmq_setsockopt(3)</a>
<a href="zmq_socket.html">zmq_socket(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_getsockopt.txt b/doc/zmq_getsockopt.txt
index e211d83..1e075d7 100644
--- a/doc/zmq_getsockopt.txt
+++ b/doc/zmq_getsockopt.txt
@@ -83,7 +83,7 @@ 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
+exceed its 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.
diff --git a/doc/zmq_init.3 b/doc/zmq_init.3
index ea2d43f..13a1686 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_INIT" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_INIT" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_init.html b/doc/zmq_init.html
index 17f2614..7629e0a 100644
--- a/doc/zmq_init.html
+++ b/doc/zmq_init.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_init(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_init(3) Manual Page
@@ -580,10 +560,13 @@ zmq_init(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>void *zmq_init (int <em>io_threads</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_init()</em> function initialises a ØMQ <em>context</em>.</p></div>
@@ -594,12 +577,16 @@ messaging you may set this to zero, otherwise set it to at least one.</p></div>
threads as necessary, without any additional locking required on the part of
the caller.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_init()</em> function shall return an opaque handle to the initialised
<em>context</em> if successful. Otherwise it shall return NULL and set <em>errno</em> to one
of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -613,22 +600,27 @@ An invalid number of <em>io_threads</em> was requested.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq.html">zmq(7)</a>
<a href="zmq_term.html">zmq_term(3)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_inproc.7 b/doc/zmq_inproc.7
index aedbed4..a0d6a5d 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_INPROC" "7" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_INPROC" "7" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_inproc.html b/doc/zmq_inproc.html
index 6bc6959..a46d127 100644
--- a/doc/zmq_inproc.html
+++ b/doc/zmq_inproc.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_inproc(7)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_inproc(7) Manual Page
@@ -580,6 +560,7 @@ zmq_inproc(7) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The in-process transport passes messages via memory directly between threads
@@ -596,6 +577,8 @@ only you can initialise the <em>context</em> with zero I/O threads. See
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_addressing">ADDRESSING</h2>
<div class="sectionbody">
<div class="paragraph"><p>A ØMQ address string consists of two parts as follows:
@@ -603,23 +586,31 @@ only you can initialise the <em>context</em> with zero I/O threads. See
transport protocol to use, and for the in-process transport shall be set to
<tt>inproc</tt>. The meaning of the <em>endpoint</em> part for the in-process transport is
defined below.</p></div>
-<h3 id="_assigning_a_local_address_to_a_socket">Assigning a local address to a socket</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_assigning_a_local_address_to_a_socket">Assigning a local address to a socket</h3>
<div class="paragraph"><p>When assigning a local address to a <em>socket</em> using <em>zmq_bind()</em> with the
<em>inproc</em> transport, the <em>endpoint</em> shall be interpreted as an arbitrary string
identifying the <em>name</em> to create. The <em>name</em> must be unique within the ØMQ
<em>context</em> associated with the <em>socket</em> and may be up to 256 characters in
length. No other restrictions are placed on the format of the <em>name</em>.</p></div>
-<h3 id="_connecting_a_socket">Connecting a socket</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_connecting_a_socket">Connecting a socket</h3>
<div class="paragraph"><p>When connecting a <em>socket</em> to a peer address using <em>zmq_connect()</em> with the
<em>inproc</em> transport, the <em>endpoint</em> shall be interpreted as an arbitrary string
identifying the <em>name</em> to connect to. The <em>name</em> must have been previously
created by assigning it to at least one <em>socket</em> within the same ØMQ <em>context</em>
as the <em>socket</em> being connected.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_wire_format">WIRE FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Not applicable.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -643,6 +634,8 @@ rc = zmq_connect(socket, "inproc://my-endpoint");
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_bind.html">zmq_bind(3)</a>
@@ -652,17 +645,20 @@ assert (rc == 0);</tt></pre>
<a href="zmq_pgm.html">zmq_pgm(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_ipc.7 b/doc/zmq_ipc.7
index 4aaeffa..0e19c95 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_IPC" "7" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_IPC" "7" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_ipc.html b/doc/zmq_ipc.html
index f07b58a..3a4a88c 100644
--- a/doc/zmq_ipc.html
+++ b/doc/zmq_ipc.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_ipc(7)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_ipc(7) Manual Page
@@ -580,6 +560,7 @@ zmq_ipc(7) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The inter-process transport passes messages between local processes using a
@@ -594,6 +575,8 @@ systems that provide UNIX domain sockets.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_addressing">ADDRESSING</h2>
<div class="sectionbody">
<div class="paragraph"><p>A ØMQ address string consists of two parts as follows:
@@ -601,24 +584,32 @@ systems that provide UNIX domain sockets.</td>
transport protocol to use, and for the inter-process transport shall be set to
<tt>ipc</tt>. The meaning of the <em>endpoint</em> part for the inter-process transport is
defined below.</p></div>
-<h3 id="_assigning_a_local_address_to_a_socket">Assigning a local address to a socket</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_assigning_a_local_address_to_a_socket">Assigning a local address to a socket</h3>
<div class="paragraph"><p>When assigning a local address to a <em>socket</em> using <em>zmq_bind()</em> with the <em>ipc</em>
transport, the <em>endpoint</em> shall be interpreted as an arbitrary string
identifying the <em>pathname</em> to create. The <em>pathname</em> must be unique within the
operating system namespace used by the <em>ipc</em> implementation, and must fulfill
any restrictions placed by the operating system on the format and length of a
<em>pathname</em>.</p></div>
-<h3 id="_connecting_a_socket">Connecting a socket</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_connecting_a_socket">Connecting a socket</h3>
<div class="paragraph"><p>When connecting a <em>socket</em> to a peer address using <em>zmq_connect()</em> with the
<em>ipc</em> transport, the <em>endpoint</em> shall be interpreted as an arbitrary string
identifying the <em>pathname</em> to connect to. The <em>pathname</em> must have been
previously created within the operating system namespace by assigning it to a
<em>socket</em> with <em>zmq_bind()</em>.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_wire_format">WIRE FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Not applicable.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -636,6 +627,8 @@ rc = zmq_connect(socket, "ipc:///tmp/feeds/0");
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_bind.html">zmq_bind(3)</a>
@@ -645,17 +638,20 @@ assert (rc == 0);</tt></pre>
<a href="zmq_pgm.html">zmq_pgm(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_msg_close.3 b/doc/zmq_msg_close.3
index 1aa60c6..99efcab 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_CLOSE" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_CLOSE" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_msg_close.html b/doc/zmq_msg_close.html
index caa7741..8fd8d1b 100644
--- a/doc/zmq_msg_close.html
+++ b/doc/zmq_msg_close.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_close(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_close(3) Manual Page
@@ -580,10 +560,13 @@ zmq_msg_close(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_msg_close (zmq_msg_t <em>*msg</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_close()</em> function shall inform the ØMQ infrastructure that any
@@ -603,11 +586,15 @@ no longer required, otherwise memory leaks may occur.</p></div>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_close()</em> function shall return zero if successful. Otherwise
it shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -621,6 +608,8 @@ Invalid message.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_init.html">zmq_msg_init(3)</a>
@@ -630,16 +619,19 @@ Invalid message.
<a href="zmq_msg_size.html">zmq_msg_size(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.5<br />
+ØMQ 2.1.9<br />
Last updated 2011-04-20 12:15:32 CEST
</div>
</div>
diff --git a/doc/zmq_msg_copy.3 b/doc/zmq_msg_copy.3
index e820f14..22e669a 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_COPY" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_COPY" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_msg_copy.html b/doc/zmq_msg_copy.html
index d492905..6098a48 100644
--- a/doc/zmq_msg_copy.html
+++ b/doc/zmq_msg_copy.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_copy(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_copy(3) Manual Page
@@ -580,10 +560,13 @@ zmq_msg_copy(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_msg_copy (zmq_msg_t <em>*dest</em>, zmq_msg_t <em>*src</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_copy()</em> function shall copy the message object referenced by <em>src</em>
@@ -612,11 +595,15 @@ copy the message content using <em>memcpy()</em>.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_copy()</em> function shall return zero if successful. Otherwise it
shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -630,6 +617,8 @@ Invalid message.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_move.html">zmq_msg_move(3)</a>
@@ -639,16 +628,19 @@ Invalid message.
<a href="zmq_msg_close.html">zmq_msg_close(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.5<br />
+ØMQ 2.1.9<br />
Last updated 2011-04-20 12:15:32 CEST
</div>
</div>
diff --git a/doc/zmq_msg_data.3 b/doc/zmq_msg_data.3
index 74d4943..b623cb6 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_DATA" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_DATA" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_msg_data.html b/doc/zmq_msg_data.html
index dbce1bc..3e06bd6 100644
--- a/doc/zmq_msg_data.html
+++ b/doc/zmq_msg_data.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_data(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_data(3) Manual Page
@@ -580,10 +560,13 @@ zmq_msg_data(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>void *zmq_msg_data (zmq_msg_t <em>*msg</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_data()</em> function shall return a pointer to the message content of
@@ -598,15 +581,21 @@ the message object referenced by <em>msg</em>.</p></div>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>Upon successful completion, <em>zmq_msg_data()</em> shall return a pointer to the
message content.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>No errors are defined.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_size.html">zmq_msg_size(3)</a>
@@ -616,17 +605,20 @@ message content.</p></div>
<a href="zmq_msg_close.html">zmq_msg_close(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_msg_init.3 b/doc/zmq_msg_init.3
index 13c3e23..94e7f4a 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_INIT" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_INIT" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_msg_init.html b/doc/zmq_msg_init.html
index 227b6df..5ecfe77 100644
--- a/doc/zmq_msg_init.html
+++ b/doc/zmq_msg_init.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_init(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_init(3) Manual Page
@@ -580,10 +560,13 @@ zmq_msg_init(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_msg_init (zmq_msg_t <em>*msg</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_init()</em> function shall initialise the message object referenced by
@@ -609,15 +592,21 @@ before receiving a message with <em>zmq_recv()</em>.</p></div>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_init()</em> function shall return zero if successful. Otherwise it
shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>No errors are defined.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -630,6 +619,8 @@ rc = zmq_recv (socket, &amp;msg, 0);
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_init_size.html">zmq_msg_init_size(3)</a>
@@ -639,17 +630,20 @@ assert (rc == 0);</tt></pre>
<a href="zmq_msg_size.html">zmq_msg_size(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_msg_init_data.3 b/doc/zmq_msg_init_data.3
index 91aea9c..2dcad31 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_INIT_DATA" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_INIT_DATA" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_msg_init_data.html b/doc/zmq_msg_init_data.html
index aebd2a7..aa6d1c5 100644
--- a/doc/zmq_msg_init_data.html
+++ b/doc/zmq_msg_init_data.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_init_data(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_init_data(3) Manual Page
@@ -580,11 +560,14 @@ zmq_msg_init_data(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>typedef void (zmq_free_fn) (void <em>*data</em>, void <em>*hint</em>);</strong></p></div>
<div class="paragraph"><p><strong>int zmq_msg_init_data (zmq_msg_t <em>*msg</em>, void <em>*data</em>, size_t <em>size</em>, zmq_free_fn <em>*ffn</em>, void <em>*hint</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_init_data()</em> function shall initialise the message object
@@ -623,15 +606,21 @@ will be called from an arbitrary thread.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_init_data()</em> function shall return zero if successful. Otherwise
it shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>No errors are defined.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -652,6 +641,8 @@ rc = zmq_msg_init_data (&amp;msg, data, 6, my_free, NULL);
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_init_size.html">zmq_msg_init_size(3)</a>
@@ -661,17 +652,20 @@ assert (rc == 0);</tt></pre>
<a href="zmq_msg_size.html">zmq_msg_size(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.5<br />
-Last updated 2011-04-16 10:29:20 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-06-12 19:53:02 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_msg_init_size.3 b/doc/zmq_msg_init_size.3
index 5a77611..31c37c4 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_INIT_SIZE" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_INIT_SIZE" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_msg_init_size.html b/doc/zmq_msg_init_size.html
index 706788f..34c62cc 100644
--- a/doc/zmq_msg_init_size.html
+++ b/doc/zmq_msg_init_size.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_init_size(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_init_size(3) Manual Page
@@ -580,10 +560,13 @@ zmq_msg_init_size(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_msg_init_size (zmq_msg_t <em>*msg</em>, size_t <em>size</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_init_size()</em> function shall allocate any resources required to
@@ -612,11 +595,15 @@ by <em>msg</em> to represent the newly allocated message.</p></div>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_init_size()</em> function shall return zero if successful. Otherwise
it shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -630,6 +617,8 @@ Insufficient storage space is available.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_init_data.html">zmq_msg_init_data(3)</a>
@@ -639,17 +628,20 @@ Insufficient storage space is available.
<a href="zmq_msg_size.html">zmq_msg_size(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_msg_move.3 b/doc/zmq_msg_move.3
index 4c90bec..2f4573b 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_MOVE" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_MOVE" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_msg_move.html b/doc/zmq_msg_move.html
index ed36938..63baceb 100644
--- a/doc/zmq_msg_move.html
+++ b/doc/zmq_msg_move.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_move(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_move(3) Manual Page
@@ -580,10 +560,13 @@ zmq_msg_move(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_msg_move (zmq_msg_t <em>*dest</em>, zmq_msg_t <em>*src</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_move()</em> function shall move the content of the message object
@@ -601,11 +584,15 @@ The original content of <em>dest</em>, if any, shall be released.</p></div>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_move()</em> function shall return zero if successful. Otherwise it
shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -619,6 +606,8 @@ Invalid message.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_copy.html">zmq_msg_copy(3)</a>
@@ -628,16 +617,19 @@ Invalid message.
<a href="zmq_msg_close.html">zmq_msg_close(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.5<br />
+ØMQ 2.1.9<br />
Last updated 2011-04-20 12:15:32 CEST
</div>
</div>
diff --git a/doc/zmq_msg_size.3 b/doc/zmq_msg_size.3
index e295722..e7557c1 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_MSG_SIZE" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_MSG_SIZE" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -53,7 +53,7 @@ Never access \fIzmq_msg_t\fR members directly, instead always use the \fIzmq_msg
.RE
.SH "RETURN VALUE"
.sp
-Upon successful completion, \fIzmq_msg_data()\fR shall return the size of the message content in bytes\&.
+Upon successful completion, \fIzmq_msg_size()\fR shall return the size of the message content in bytes\&.
.SH "ERRORS"
.sp
No errors are defined\&.
diff --git a/doc/zmq_msg_size.html b/doc/zmq_msg_size.html
index 068232d..b498438 100644
--- a/doc/zmq_msg_size.html
+++ b/doc/zmq_msg_size.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_msg_size(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_msg_size(3) Manual Page
@@ -580,10 +560,13 @@ zmq_msg_size(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>size_t zmq_msg_size (zmq_msg_t <em>*msg</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_msg_size()</em> function shall return the size in bytes of the content of
@@ -598,15 +581,21 @@ the message object referenced by <em>msg</em>.</p></div>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
-<div class="paragraph"><p>Upon successful completion, <em>zmq_msg_data()</em> shall return the size of the
+<div class="paragraph"><p>Upon successful completion, <em>zmq_msg_size()</em> shall return the size of the
message content in bytes.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>No errors are defined.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_msg_data.html">zmq_msg_data(3)</a>
@@ -616,17 +605,20 @@ message content in bytes.</p></div>
<a href="zmq_msg_close.html">zmq_msg_close(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_msg_size.txt b/doc/zmq_msg_size.txt
index dd11235..354ca28 100644
--- a/doc/zmq_msg_size.txt
+++ b/doc/zmq_msg_size.txt
@@ -23,7 +23,7 @@ _zmq_msg_ family of functions.
RETURN VALUE
------------
-Upon successful completion, _zmq_msg_data()_ shall return the size of the
+Upon successful completion, _zmq_msg_size()_ shall return the size of the
message content in bytes.
diff --git a/doc/zmq_pgm.7 b/doc/zmq_pgm.7
index 8ee8ef3..66250f5 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_PGM" "7" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_PGM" "7" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -83,7 +83,7 @@ The interface name as defined by the operating system\&.
.sp -1
.IP \(bu 2.3
.\}
-The primary IPv4 address assigned to the interface, in it\(cqs numeric representation\&.
+The primary IPv4 address assigned to the interface, in its numeric representation\&.
.RE
.if n \{\
.sp
@@ -102,7 +102,7 @@ Interface names are not standardised in any way and should be assumed to be arbi
.sp .5v
.RE
.sp
-A \fImulticast address\fR is specified by an IPv4 multicast address in it\(cqs numeric representation\&.
+A \fImulticast address\fR is specified by an IPv4 multicast address in its numeric representation\&.
.SH "WIRE FORMAT"
.sp
Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream of data where 0MQ messages are not necessarily aligned with PGM datagram boundaries and a single 0MQ message may span several PGM datagrams\&. This stream of data consists of 0MQ messages encapsulated in \fIframes\fR as described in \fBzmq_tcp\fR(7)\&.
diff --git a/doc/zmq_pgm.html b/doc/zmq_pgm.html
index 9383d71..64e3e75 100644
--- a/doc/zmq_pgm.html
+++ b/doc/zmq_pgm.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_pgm(7)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_pgm(7) Manual Page
@@ -580,11 +560,14 @@ zmq_pgm(7) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p>PGM (Pragmatic General Multicast) is a protocol for reliable multicast
transport of data over IP networks.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>ØMQ implements two variants of PGM, the standard protocol where PGM datagrams
@@ -610,6 +593,8 @@ not require any special privileges.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_addressing">ADDRESSING</h2>
<div class="sectionbody">
<div class="paragraph"><p>A ØMQ address string consists of two parts as follows:
@@ -618,7 +603,8 @@ transport protocol to use. For the standard PGM protocol, <em>transport</em> sha
set to <tt>pgm</tt>. For the "Encapsulated PGM" protocol <em>transport</em> shall be set to
<tt>epgm</tt>. The meaning of the <em>endpoint</em> part for both the <em>pgm</em> and <em>epgm</em>
transport is defined below.</p></div>
-<h3 id="_connecting_a_socket">Connecting a socket</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_connecting_a_socket">Connecting a socket</h3>
<div class="paragraph"><p>When connecting a socket to a peer address using <em>zmq_connect()</em> with the <em>pgm</em>
or <em>epgm</em> transport, the <em>endpoint</em> shall be interpreted as an <em>interface</em>
followed by a semicolon, followed by a <em>multicast address</em>, followed by a colon
@@ -632,7 +618,7 @@ The interface name as defined by the operating system.
</li>
<li>
<p>
-The primary IPv4 address assigned to the interface, in it&#8217;s numeric
+The primary IPv4 address assigned to the interface, in its numeric
representation.
</p>
</li>
@@ -648,9 +634,12 @@ names exist, thus only the primary IPv4 address may be used to specify an
<em>interface</em>.</td>
</tr></table>
</div>
-<div class="paragraph"><p>A <em>multicast address</em> is specified by an IPv4 multicast address in it&#8217;s numeric
+<div class="paragraph"><p>A <em>multicast address</em> is specified by an IPv4 multicast address in its numeric
representation.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_wire_format">WIRE FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Consecutive PGM datagrams are interpreted by ØMQ as a single continuous stream
@@ -658,7 +647,8 @@ 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 <em>frames</em> as described in
<a href="zmq_tcp.html">zmq_tcp(7)</a>.</p></div>
-<h3 id="_pgm_datagram_payload">PGM datagram payload</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_pgm_datagram_payload">PGM datagram payload</h3>
<div class="paragraph"><p>The following ABNF grammar represents the payload of a single PGM datagram as
used by ØMQ:</p></div>
<div class="literalblock">
@@ -706,6 +696,9 @@ Third datagram payload
+--------------+----------------------------+-------------+</tt></pre>
</div></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -723,6 +716,8 @@ rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555");
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_connect.html">zmq_connect(3)</a>
@@ -732,17 +727,20 @@ assert (rc == 0);</tt></pre>
<a href="zmq_inproc.html">zmq_inproc(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.5<br />
-Last updated 2011-04-16 10:29:20 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_pgm.txt b/doc/zmq_pgm.txt
index 9a48afd..68ec504 100644
--- a/doc/zmq_pgm.txt
+++ b/doc/zmq_pgm.txt
@@ -55,7 +55,7 @@ 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
+* The primary IPv4 address assigned to the interface, in its numeric
representation.
NOTE: Interface names are not standardised in any way and should be assumed to
@@ -63,7 +63,7 @@ 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
+A 'multicast address' is specified by an IPv4 multicast address in its numeric
representation.
diff --git a/doc/zmq_poll.3 b/doc/zmq_poll.3
index f66aa94..38d76be 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_POLL" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_POLL" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_poll.html b/doc/zmq_poll.html
index ffbcbc0..eb1c214 100644
--- a/doc/zmq_poll.html
+++ b/doc/zmq_poll.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_poll(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_poll(3) Manual Page
@@ -580,10 +560,13 @@ zmq_poll(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_poll (zmq_pollitem_t <em>*items</em>, int <em>nitems</em>, long <em>timeout</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_poll()</em> function provides a mechanism for applications to multiplex
@@ -673,6 +656,8 @@ of those interfaces in ways not defined in this documentation.</td>
</tr></table>
</div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>Upon successful completion, the <em>zmq_poll()</em> function shall return the number
@@ -680,6 +665,8 @@ of <strong>zmq_pollitem_t</strong> structures with events signaled in <em>revent
events have been signaled. Upon failure, <em>zmq_poll()</em> shall return <tt>-1</tt> and set
<em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -711,6 +698,8 @@ available.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -730,6 +719,8 @@ assert (rc &gt;= 0);
/* Returned events will be stored in items[].revents */</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_socket.html">zmq_socket(3)</a>
@@ -738,17 +729,20 @@ assert (rc &gt;= 0);
<a href="zmq.html">zmq(7)</a></p></div>
<div class="paragraph"><p>Your operating system documentation for the <em>poll()</em> system call.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-06-09 19:50:07 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_recv.3 b/doc/zmq_recv.3
index 0df4e82..6ea3446 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_RECV" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_RECV" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_recv.html b/doc/zmq_recv.html
index db436f0..6fa3751 100644
--- a/doc/zmq_recv.html
+++ b/doc/zmq_recv.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_recv(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_recv(3) Manual Page
@@ -580,10 +560,13 @@ zmq_recv(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_recv (void <em>*socket</em>, zmq_msg_t <em>*msg</em>, int <em>flags</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_recv()</em> function shall receive a message from the socket referenced by
@@ -604,7 +587,8 @@ shall fail with <em>errno</em> set to EAGAIN.
</p>
</dd>
</dl></div>
-<h3 id="_multi_part_messages">Multi-part messages</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_multi_part_messages">Multi-part messages</h3>
<div class="paragraph"><p>A ØMQ message is composed of 1 or more message parts; each message part is an
independent <em>zmq_msg_t</em> in its own right. ØMQ ensures atomic delivery of
messages; peers shall receive either all <em>message parts</em> of a message or none
@@ -617,11 +601,16 @@ follow, or if the message is not composed of multiple parts, <em>ZMQ_RCVMORE</em
shall report a value of zero. Otherwise, <em>ZMQ_RCVMORE</em> shall report a value of
1, indicating that more message parts are to follow.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_recv()</em> function shall return zero if successful. Otherwise it shall
return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -687,6 +676,8 @@ The message passed to the function was invalid.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -722,6 +713,8 @@ do {
} while (more);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_send.html">zmq_send(3)</a>
@@ -729,17 +722,20 @@ do {
<a href="zmq_socket.html">zmq_socket(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-06-09 19:50:07 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_send.3 b/doc/zmq_send.3
index ade1b3c..3c8ce2e 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_SEND" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_SEND" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_send.html b/doc/zmq_send.html
index 0e17363..559eb38 100644
--- a/doc/zmq_send.html
+++ b/doc/zmq_send.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_send(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_send(3) Manual Page
@@ -580,10 +560,13 @@ zmq_send(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_send (void <em>*socket</em>, zmq_msg_t <em>*msg</em>, int <em>flags</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_send()</em> function shall queue the message referenced by the <em>msg</em>
@@ -624,7 +607,8 @@ message has been transmitted to the network, only that it has been queued on
the <em>socket</em> and ØMQ has assumed responsibility for the message.</td>
</tr></table>
</div>
-<h3 id="_multi_part_messages">Multi-part messages</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_multi_part_messages">Multi-part messages</h3>
<div class="paragraph"><p>A ØMQ message is composed of 1 or more message parts; each message part is an
independent <em>zmq_msg_t</em> in its own right. ØMQ ensures atomic delivery of
messages; peers shall receive either all <em>message parts</em> of a message or none
@@ -637,11 +621,16 @@ are to follow. When the application wishes to send the final message part it
does so by calling <em>zmq_send()</em> without the <em>ZMQ_SNDMORE</em> flag; this indicates
that no more message parts are to follow.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_send()</em> function shall return zero if successful. Otherwise it shall
return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -707,6 +696,8 @@ Invalid message.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -732,23 +723,28 @@ rc = zmq_send (socket, &amp;part2, ZMQ_SNDMORE);
rc = zmq_send (socket, &amp;part3, 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_recv.html">zmq_recv(3)</a>
<a href="zmq_socket.html">zmq_socket(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-06-09 19:50:07 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_setsockopt.3 b/doc/zmq_setsockopt.3
index 16e64b1..c700d41 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_SETSOCKOPT" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_SETSOCKOPT" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -84,7 +84,7 @@ T}
.sp 1
.SS "ZMQ_SWAP: Set disk offload size"
.sp
-The \fIZMQ_SWAP\fR option shall set the disk offload (swap) size for the specified \fIsocket\fR\&. A socket which has \fIZMQ_SWAP\fR set to a non\-zero value may exceed it\(cqs high water mark; in this case outstanding messages shall be offloaded to storage on disk rather than held in memory\&.
+The \fIZMQ_SWAP\fR option shall set the disk offload (swap) size for the specified \fIsocket\fR\&. A socket which has \fIZMQ_SWAP\fR set to a non\-zero value may exceed its high water mark; in this case outstanding messages shall be offloaded to storage on disk rather than held in memory\&.
.sp
The value of \fIZMQ_SWAP\fR defines the maximum size of the swap space in bytes\&.
.TS
diff --git a/doc/zmq_setsockopt.html b/doc/zmq_setsockopt.html
index de672eb..6686dc3 100644
--- a/doc/zmq_setsockopt.html
+++ b/doc/zmq_setsockopt.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_setsockopt(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_setsockopt(3) Manual Page
@@ -580,12 +560,15 @@ zmq_setsockopt(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_setsockopt (void <em>*socket</em>, int <em>option_name</em>, const void <em>*option_value</em>, size_t <em>option_len</em>);</strong></p></div>
<div class="paragraph"><p>Caution: All options, with the exception of ZMQ_SUBSCRIBE, ZMQ_UNSUBSCRIBE and
ZMQ_LINGER, only take effect for subsequent socket bind/connects.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_setsockopt()</em> function shall set the option specified by the
@@ -593,7 +576,8 @@ ZMQ_LINGER, only take effect for subsequent socket bind/connects.</p></div>
for the ØMQ socket pointed to by the <em>socket</em> argument. The <em>option_len</em>
argument is the size of the option value in bytes.</p></div>
<div class="paragraph"><p>The following socket options can be set with the <em>zmq_setsockopt()</em> function:</p></div>
-<h3 id="_zmq_hwm_set_high_water_mark">ZMQ_HWM: Set high water mark</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_zmq_hwm_set_high_water_mark">ZMQ_HWM: Set high water mark</h3>
<div class="paragraph"><p>The <em>ZMQ_HWM</em> option shall set the high water mark for the specified <em>socket</em>.
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
@@ -650,9 +634,11 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_swap_set_disk_offload_size">ZMQ_SWAP: Set disk offload size</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_swap_set_disk_offload_size">ZMQ_SWAP: Set disk offload size</h3>
<div class="paragraph"><p>The <em>ZMQ_SWAP</em> option shall set the disk offload (swap) size for the specified
-<em>socket</em>. A socket which has <em>ZMQ_SWAP</em> set to a non-zero value may exceed it&#8217;s
+<em>socket</em>. A socket which has <em>ZMQ_SWAP</em> set to a non-zero value may exceed its
high water mark; in this case outstanding messages shall be offloaded to
storage on disk rather than held in memory.</p></div>
<div class="paragraph"><p>The value of <em>ZMQ_SWAP</em> defines the maximum size of the swap space in bytes.</p></div>
@@ -702,7 +688,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_affinity_set_i_o_thread_affinity">ZMQ_AFFINITY: Set I/O thread affinity</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_affinity_set_i_o_thread_affinity">ZMQ_AFFINITY: Set I/O thread affinity</h3>
<div class="paragraph"><p>The <em>ZMQ_AFFINITY</em> option shall set the I/O thread affinity for newly created
connections on the specified <em>socket</em>.</p></div>
<div class="paragraph"><p>Affinity determines which threads from the ØMQ I/O thread pool associated with
@@ -760,7 +748,9 @@ N/A
</td>
</tr>
</table></div>
-<h3 id="_zmq_identity_set_socket_identity">ZMQ_IDENTITY: Set socket identity</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_identity_set_socket_identity">ZMQ_IDENTITY: Set socket identity</h3>
<div class="paragraph"><p>The <em>ZMQ_IDENTITY</em> option shall set the identity of the specified <em>socket</em>.
Socket identity determines if existing ØMQ infrastructure (<em>message queues</em>,
<em>forwarding devices</em>) shall be identified with a specific application and
@@ -818,7 +808,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_subscribe_establish_message_filter">ZMQ_SUBSCRIBE: Establish message filter</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_subscribe_establish_message_filter">ZMQ_SUBSCRIBE: Establish message filter</h3>
<div class="paragraph"><p>The <em>ZMQ_SUBSCRIBE</em> option shall establish a new message filter on a <em>ZMQ_SUB</em>
socket. Newly created <em>ZMQ_SUB</em> sockets shall filter out all incoming messages,
therefore you should call this option to establish an initial message filter.</p></div>
@@ -873,7 +865,9 @@ ZMQ_SUB
</td>
</tr>
</table></div>
-<h3 id="_zmq_unsubscribe_remove_message_filter">ZMQ_UNSUBSCRIBE: Remove message filter</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_unsubscribe_remove_message_filter">ZMQ_UNSUBSCRIBE: Remove message filter</h3>
<div class="paragraph"><p>The <em>ZMQ_UNSUBSCRIBE</em> option shall remove an existing message filter on a
<em>ZMQ_SUB</em> socket. The filter specified must match an existing filter previously
established with the <em>ZMQ_SUBSCRIBE</em> option. If the socket has several
@@ -925,7 +919,9 @@ ZMQ_SUB
</td>
</tr>
</table></div>
-<h3 id="_zmq_rate_set_multicast_data_rate">ZMQ_RATE: Set multicast data rate</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_rate_set_multicast_data_rate">ZMQ_RATE: Set multicast data rate</h3>
<div class="paragraph"><p>The <em>ZMQ_RATE</em> option shall set the maximum send or receive data rate for
multicast transports such as <a href="zmq_pgm.html">zmq_pgm(7)</a> using the specified <em>socket</em>.</p></div>
<div class="hdlist"><table>
@@ -974,7 +970,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_recovery_ivl_set_multicast_recovery_interval">ZMQ_RECOVERY_IVL: Set multicast recovery interval</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_recovery_ivl_set_multicast_recovery_interval">ZMQ_RECOVERY_IVL: Set multicast recovery interval</h3>
<div class="paragraph"><p>The <em>ZMQ_RECOVERY_IVL</em> option shall set the recovery interval for multicast
transports using the specified <em>socket</em>. The recovery interval determines the
maximum time in seconds that a receiver can be absent from a multicast group
@@ -1035,7 +1033,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_recovery_ivl_msec_set_multicast_recovery_interval_in_milliseconds">ZMQ_RECOVERY_IVL_MSEC: Set multicast recovery interval in milliseconds</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_recovery_ivl_msec_set_multicast_recovery_interval_in_milliseconds">ZMQ_RECOVERY_IVL_MSEC: Set multicast recovery interval in milliseconds</h3>
<div class="paragraph"><p>The <em>ZMQ_RECOVERY_IVL_MSEC</em> option shall set the recovery interval, specified
in milliseconds (ms) for multicast transports using the specified <em>socket</em>.
The recovery interval determines the maximum time in milliseconds that a
@@ -1101,7 +1101,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_mcast_loop_control_multicast_loop_back">ZMQ_MCAST_LOOP: Control multicast loop-back</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_mcast_loop_control_multicast_loop_back">ZMQ_MCAST_LOOP: Control multicast loop-back</h3>
<div class="paragraph"><p>The <em>ZMQ_MCAST_LOOP</em> option shall control whether data sent via multicast
transports using the specified <em>socket</em> can also be received by the sending
host via loop-back. A value of zero disables the loop-back functionality, while
@@ -1155,7 +1157,9 @@ all, when using multicast transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_sndbuf_set_kernel_transmit_buffer_size">ZMQ_SNDBUF: Set kernel transmit buffer size</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_sndbuf_set_kernel_transmit_buffer_size">ZMQ_SNDBUF: Set kernel transmit buffer size</h3>
<div class="paragraph"><p>The <em>ZMQ_SNDBUF</em> option shall set the underlying kernel transmit buffer size
for the <em>socket</em> to the specified size in bytes. A value of zero means leave
the OS default unchanged. For details please refer to your operating system
@@ -1206,7 +1210,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_rcvbuf_set_kernel_receive_buffer_size">ZMQ_RCVBUF: Set kernel receive buffer size</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_rcvbuf_set_kernel_receive_buffer_size">ZMQ_RCVBUF: Set kernel receive buffer size</h3>
<div class="paragraph"><p>The <em>ZMQ_RCVBUF</em> option shall set the underlying kernel receive buffer size for
the <em>socket</em> to the specified size in bytes. A value of zero means leave the
OS default unchanged. For details refer to your operating system documentation
@@ -1257,7 +1263,9 @@ all
</td>
</tr>
</table></div>
-<h3 id="_zmq_linger_set_linger_period_for_socket_shutdown">ZMQ_LINGER: Set linger period for socket shutdown</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_linger_set_linger_period_for_socket_shutdown">ZMQ_LINGER: Set linger period for socket shutdown</h3>
<div class="paragraph"><p>The <em>ZMQ_LINGER</em> option shall set the linger period for the specified <em>socket</em>.
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
@@ -1335,7 +1343,9 @@ all
</table></div>
</li>
</ul></div>
-<h3 id="_zmq_reconnect_ivl_set_reconnection_interval">ZMQ_RECONNECT_IVL: Set reconnection interval</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_reconnect_ivl_set_reconnection_interval">ZMQ_RECONNECT_IVL: Set reconnection interval</h3>
<div class="paragraph"><p>The <em>ZMQ_RECONNECT_IVL</em> option shall set the initial reconnection interval for
the specified <em>socket</em>. The reconnection interval is the period ØMQ
shall wait between attempts to reconnect disconnected peers when using
@@ -1395,7 +1405,9 @@ all, only for connection-oriented transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_reconnect_ivl_max_set_maximum_reconnection_interval">ZMQ_RECONNECT_IVL_MAX: Set maximum reconnection interval</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_reconnect_ivl_max_set_maximum_reconnection_interval">ZMQ_RECONNECT_IVL_MAX: Set maximum reconnection interval</h3>
<div class="paragraph"><p>The <em>ZMQ_RECONNECT_IVL_MAX</em> option shall set the maximum reconnection interval
for the specified <em>socket</em>. This is the maximum period ØMQ shall wait between
attempts to reconnect. On each reconnect attempt, the previous interval shall be
@@ -1456,7 +1468,9 @@ all, only for connection-oriented transports
</td>
</tr>
</table></div>
-<h3 id="_zmq_backlog_set_maximum_length_of_the_queue_of_outstanding_connections">ZMQ_BACKLOG: Set maximum length of the queue of outstanding connections</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_zmq_backlog_set_maximum_length_of_the_queue_of_outstanding_connections">ZMQ_BACKLOG: Set maximum length of the queue of outstanding connections</h3>
<div class="paragraph"><p>The <em>ZMQ_BACKLOG</em> option shall set the maximum length of the queue of
outstanding peer connections for the specified <em>socket</em>; this only applies to
connection-oriented transports. For details refer to your operating system
@@ -1508,11 +1522,16 @@ all, only for connection-oriented transports.
</tr>
</table></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_setsockopt()</em> function shall return zero if successful. Otherwise it
shall return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -1551,6 +1570,8 @@ The operation was interrupted by delivery of a signal.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -1580,23 +1601,28 @@ rc = zmq_bind (socket, "tcp://lo:5556");
assert (rc);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_getsockopt.html">zmq_getsockopt(3)</a>
<a href="zmq_socket.html">zmq_socket(3)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_setsockopt.txt b/doc/zmq_setsockopt.txt
index 4a43d65..5911b7f 100644
--- a/doc/zmq_setsockopt.txt
+++ b/doc/zmq_setsockopt.txt
@@ -50,7 +50,7 @@ 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
+'socket'. A socket which has 'ZMQ_SWAP' set to a non-zero value may exceed its
high water mark; in this case outstanding messages shall be offloaded to
storage on disk rather than held in memory.
diff --git a/doc/zmq_socket.3 b/doc/zmq_socket.3
index 7fc7d1c..a7254e4 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_SOCKET" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_SOCKET" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -237,7 +237,7 @@ T{
Compatible peer sockets
T}:T{
.sp
-\fIZMQ_ROUTER\fR, \fIZMQ_REP\fR
+\fIZMQ_ROUTER\fR, \fIZMQ_REQ\fR, \fIZMQ_REP\fR
T}
T{
.sp
@@ -312,7 +312,7 @@ T{
Compatible peer sockets
T}:T{
.sp
-\fIZMQ_DEALER\fR, \fIZMQ_REQ\fR
+\fIZMQ_DEALER\fR, \fIZMQ_REQ\fR, \fIZMQ_REP\fR
T}
T{
.sp
diff --git a/doc/zmq_socket.html b/doc/zmq_socket.html
index d688fa9..9a8266d 100644
--- a/doc/zmq_socket.html
+++ b/doc/zmq_socket.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_socket(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_socket(3) Manual Page
@@ -580,10 +560,13 @@ zmq_socket(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>void *zmq_socket (void <em>*context</em>, int <em>type</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_socket()</em> function shall create a ØMQ socket within the specified
@@ -617,10 +600,12 @@ from multiple threads except after migrating a socket from one thread to
another with a "full fence" memory barrier.</p></div>
<div class="paragraph"><div class="title">Socket types</div><p>The following sections present the socket types defined by ØMQ, grouped by the
general <em>messaging pattern</em> which is built from related socket types.</p></div>
-<h3 id="_request_reply_pattern">Request-reply pattern</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_request_reply_pattern">Request-reply pattern</h3>
<div class="paragraph"><p>The request-reply pattern is used for sending requests from a <em>client</em> to one
or more instances of a <em>service</em>, and receiving subsequent replies to each
request sent.</p></div>
+<div class="sect3">
<h4 id="_zmq_req">ZMQ_REQ</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_REQ</em> is used by a <em>client</em> to send requests to and
receive replies from a <em>service</em>. This socket type allows only an alternating
@@ -700,6 +685,8 @@ Block
</td>
</tr>
</table></div>
+</div>
+<div class="sect3">
<h4 id="_zmq_rep">ZMQ_REP</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_REP</em> is used by a <em>service</em> to receive requests from and
send replies to a <em>client</em>. This socket type allows only an alternating
@@ -778,6 +765,8 @@ Drop
</td>
</tr>
</table></div>
+</div>
+<div class="sect3">
<h4 id="_zmq_dealer">ZMQ_DEALER</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_DEALER</em> is an advanced pattern used for extending
request/reply sockets. Each message sent is load-balanced among all connected
@@ -800,7 +789,7 @@ Compatible peer sockets
</td>
<td class="hdlist2">
<p style="margin-top: 0;">
-<em>ZMQ_ROUTER</em>, <em>ZMQ_REP</em>
+<em>ZMQ_ROUTER</em>, <em>ZMQ_REQ</em>, <em>ZMQ_REP</em>
</p>
</td>
</tr>
@@ -860,6 +849,8 @@ Block
</td>
</tr>
</table></div>
+</div>
+<div class="sect3">
<h4 id="_zmq_router">ZMQ_ROUTER</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_ROUTER</em> is an advanced pattern used for extending
request/reply sockets. When receiving messages a <em>ZMQ_ROUTER</em> socket shall
@@ -890,7 +881,7 @@ Compatible peer sockets
</td>
<td class="hdlist2">
<p style="margin-top: 0;">
-<em>ZMQ_DEALER</em>, <em>ZMQ_REQ</em>
+<em>ZMQ_DEALER</em>, <em>ZMQ_REQ</em>, <em>ZMQ_REP</em>
</p>
</td>
</tr>
@@ -950,9 +941,13 @@ Drop
</td>
</tr>
</table></div>
-<h3 id="_publish_subscribe_pattern">Publish-subscribe pattern</h3><div style="clear:left"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_publish_subscribe_pattern">Publish-subscribe pattern</h3>
<div class="paragraph"><p>The publish-subscribe pattern is used for one-to-many distribution of data from
a single <em>publisher</em> to multiple <em>subscribers</em> in a fan out fashion.</p></div>
+<div class="sect3">
<h4 id="_zmq_pub">ZMQ_PUB</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_PUB</em> is used by a <em>publisher</em> to distribute data.
Messages sent are distributed in a fan out fashion to all connected peers.
@@ -1029,6 +1024,8 @@ Drop
</td>
</tr>
</table></div>
+</div>
+<div class="sect3">
<h4 id="_zmq_sub">ZMQ_SUB</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_SUB</em> is used by a <em>subscriber</em> to subscribe to data
distributed by a <em>publisher</em>. Initially a <em>ZMQ_SUB</em> socket is not subscribed to
@@ -1103,11 +1100,15 @@ Drop
</td>
</tr>
</table></div>
-<h3 id="_pipeline_pattern">Pipeline pattern</h3><div style="clear:left"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_pipeline_pattern">Pipeline pattern</h3>
<div class="paragraph"><p>The pipeline pattern is used for distributing data to <em>nodes</em> arranged in
a pipeline. Data always flows down the pipeline, and each stage of the pipeline
is connected to at least one <em>node</em>. When a pipeline stage is connected to
multiple <em>nodes</em> data is load-balanced among all connected <em>nodes</em>.</p></div>
+<div class="sect3">
<h4 id="_zmq_push">ZMQ_PUSH</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_PUSH</em> is used by a pipeline <em>node</em> to send messages
to downstream pipeline <em>nodes</em>. Messages are load-balanced to all connected
@@ -1187,6 +1188,8 @@ Block
</td>
</tr>
</table></div>
+</div>
+<div class="sect3">
<h4 id="_zmq_pull">ZMQ_PULL</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_PULL</em> is used by a pipeline <em>node</em> to receive messages
from upstream pipeline <em>nodes</em>. Messages are fair-queued from among all
@@ -1261,10 +1264,14 @@ N/A
</td>
</tr>
</table></div>
-<h3 id="_exclusive_pair_pattern">Exclusive pair pattern</h3><div style="clear:left"></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_exclusive_pair_pattern">Exclusive pair pattern</h3>
<div class="paragraph"><p>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.</p></div>
+<div class="sect3">
<h4 id="_zmq_pair">ZMQ_PAIR</h4>
<div class="paragraph"><p>A socket of type <em>ZMQ_PAIR</em> can only be connected to a single peer at any one
time. No message routing or filtering is performed on messages sent over a
@@ -1353,12 +1360,18 @@ Block
</tr>
</table></div>
</div>
+</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_socket()</em> function shall return an opaque handle to the newly created
socket if successful. Otherwise, it shall return NULL and set <em>errno</em> to one of
the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -1396,6 +1409,8 @@ The context specified was terminated.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_init.html">zmq_init(3)</a>
@@ -1407,17 +1422,20 @@ The context specified was terminated.
<a href="zmq_inproc.html">zmq_inproc(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-06 12:35:19 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_socket.txt b/doc/zmq_socket.txt
index 7428a91..3adf9b7 100644
--- a/doc/zmq_socket.txt
+++ b/doc/zmq_socket.txt
@@ -131,7 +131,7 @@ _body parts_.
[horizontal]
.Summary of ZMQ_DEALER characteristics
-Compatible peer sockets:: 'ZMQ_ROUTER', 'ZMQ_REP'
+Compatible peer sockets:: 'ZMQ_ROUTER', 'ZMQ_REQ', 'ZMQ_REP'
Direction:: Bidirectional
Send/receive pattern:: Unrestricted
Outgoing routing strategy:: Load-balanced
@@ -168,7 +168,7 @@ application must include the _delimiter_ part.
[horizontal]
.Summary of ZMQ_ROUTER characteristics
-Compatible peer sockets:: 'ZMQ_DEALER', 'ZMQ_REQ'
+Compatible peer sockets:: 'ZMQ_DEALER', 'ZMQ_REQ', 'ZMQ_REP'
Direction:: Bidirectional
Send/receive pattern:: Unrestricted
Outgoing routing strategy:: See text
diff --git a/doc/zmq_strerror.3 b/doc/zmq_strerror.3
index dfeaa3f..4544538 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_STRERROR" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_STRERROR" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_strerror.html b/doc/zmq_strerror.html
index 2648aa5..944c7cc 100644
--- a/doc/zmq_strerror.html
+++ b/doc/zmq_strerror.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_strerror(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_strerror(3) Manual Page
@@ -580,10 +560,13 @@ zmq_strerror(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>const char *zmq_strerror (int <em>errnum</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_strerror()</em> function shall return a pointer to an error message string
@@ -592,15 +575,21 @@ defines additional error numbers over and above those defined by the operating
system, applications should use <em>zmq_strerror()</em> in preference to the standard
<em>strerror()</em> function.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_strerror()</em> function shall return a pointer to an error message
string.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>No errors are defined.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -613,21 +602,26 @@ if (!ctx) {
}</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/doc/zmq_tcp.7 b/doc/zmq_tcp.7
index 5f2f6df..673f362 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_TCP" "7" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_TCP" "7" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -115,7 +115,7 @@ The DNS name of the peer\&.
.sp -1
.IP \(bu 2.3
.\}
-The IPv4 address of the peer, in it\(cqs numeric representation\&.
+The IPv4 address of the peer, in its numeric representation\&.
.RE
.SH "WIRE FORMAT"
.sp
diff --git a/doc/zmq_tcp.html b/doc/zmq_tcp.html
index 78356f5..5256a84 100644
--- a/doc/zmq_tcp.html
+++ b/doc/zmq_tcp.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_tcp(7)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_tcp(7) Manual Page
@@ -580,19 +560,23 @@ zmq_tcp(7) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p>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.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_addressing">ADDRESSING</h2>
<div class="sectionbody">
<div class="paragraph"><p>A ØMQ address string consists of two parts as follows:
<em>transport</em><tt>://</tt><em>endpoint</em>. The <em>transport</em> part specifies the underlying
transport protocol to use, and for the TCP transport shall be set to <tt>tcp</tt>.
The meaning of the <em>endpoint</em> part for the TCP transport is defined below.</p></div>
-<h3 id="_assigning_a_local_address_to_a_socket">Assigning a local address to a socket</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_assigning_a_local_address_to_a_socket">Assigning a local address to a socket</h3>
<div class="paragraph"><p>When assigning a local address to a socket using <em>zmq_bind()</em> with the <em>tcp</em>
transport, the <em>endpoint</em> shall be interpreted as an <em>interface</em> followed by a
colon and the TCP port number to use.</p></div>
@@ -626,7 +610,9 @@ names exist, thus only the primary IPv4 address may be used to specify an
<em>interface</em>.</td>
</tr></table>
</div>
-<h3 id="_connecting_a_socket">Connecting a socket</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_connecting_a_socket">Connecting a socket</h3>
<div class="paragraph"><p>When connecting a socket to a peer address using <em>zmq_connect()</em> with the <em>tcp</em>
transport, the <em>endpoint</em> shall be interpreted as a <em>peer address</em> followed by
a colon and the TCP port number to use.</p></div>
@@ -639,11 +625,14 @@ The DNS name of the peer.
</li>
<li>
<p>
-The IPv4 address of the peer, in it&#8217;s numeric representation.
+The IPv4 address of the peer, in its numeric representation.
</p>
</li>
</ul></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_wire_format">WIRE FORMAT</h2>
<div class="sectionbody">
<div class="paragraph"><p>ØMQ messages are transmitted over TCP in frames consisting of an encoded
@@ -703,6 +692,8 @@ exceeding 254 octets:</p></div>
+-+-+-+-+-+-+-+ ...</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -729,6 +720,8 @@ rc = zmq_connect(socket, "tcp://server1:5555");
assert (rc == 0);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq_bind.html">zmq_bind(3)</a>
@@ -738,17 +731,20 @@ assert (rc == 0);</tt></pre>
<a href="zmq_inproc.html">zmq_inproc(7)</a>
<a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-07-30 17:22:16 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_tcp.txt b/doc/zmq_tcp.txt
index a0c945a..0117ccf 100644
--- a/doc/zmq_tcp.txt
+++ b/doc/zmq_tcp.txt
@@ -49,7 +49,7 @@ 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.
+* The IPv4 address of the peer, in its numeric representation.
WIRE FORMAT
diff --git a/doc/zmq_term.3 b/doc/zmq_term.3
index f7f3b4b..8a741b0 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 <http://docbook.sf.net/>
-.\" Date: 05/07/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_TERM" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_TERM" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_term.html b/doc/zmq_term.html
index db7b9d2..3a948fe 100644
--- a/doc/zmq_term.html
+++ b/doc/zmq_term.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_term(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_term(3) Manual Page
@@ -580,10 +560,13 @@ zmq_term(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>int zmq_term (void <em>*context</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_term()</em> function shall terminate the ØMQ context <em>context</em>.</p></div>
@@ -622,11 +605,15 @@ For each socket within <em>context</em>, all messages sent by the application
<div class="paragraph"><p>For further details regarding socket linger behaviour refer to the <em>ZMQ_LINGER</em>
option in <a href="zmq_setsockopt.html">zmq_setsockopt(3)</a>.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_term()</em> function shall return zero if successful. Otherwise it shall
return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
@@ -648,6 +635,8 @@ Termination was interrupted by a signal. It can be restarted if needed.
</dd>
</dl></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq.html">zmq(7)</a>
@@ -655,17 +644,20 @@ Termination was interrupted by a signal. It can be restarted if needed.
<a href="zmq_close.html">zmq_close(3)</a>
<a href="zmq_setsockopt.html">zmq_setsockopt(3)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.6<br />
-Last updated 2011-05-07 07:13:32 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-06-09 19:50:07 CEST
</div>
</div>
</body>
diff --git a/doc/zmq_version.3 b/doc/zmq_version.3
index 0acf575..c64f7d3 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 <http://docbook.sf.net/>
-.\" Date: 05/06/2011
+.\" Date: 08/29/2011
.\" Manual: 0MQ Manual
-.\" Source: 0MQ 2.1.6
+.\" Source: 0MQ 2.1.9
.\" Language: English
.\"
-.TH "ZMQ_VERSION" "3" "05/06/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
+.TH "ZMQ_VERSION" "3" "08/29/2011" "0MQ 2\&.1\&.9" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/zmq_version.html b/doc/zmq_version.html
index fc59a72..9a91e09 100644
--- a/doc/zmq_version.html
+++ b/doc/zmq_version.html
@@ -2,15 +2,28 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.3" />
<title>zmq_version(3)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Sans-serif font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+div#toctitle,
+span#author, span#revnumber, span#revdate, span#revremark,
+div#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+/* Serif font. */
+div.sectionbody {
+ font-family: Georgia,"Times New Roman",Times,serif;
+}
+
+/* Monospace font. */
+tt {
+ font-size: inherit;
}
body {
@@ -36,12 +49,12 @@ strong {
}
tt {
+ font-size: inherit;
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -61,7 +74,6 @@ h3 + * {
}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,6 +89,8 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
pre {
padding: 0;
@@ -85,18 +99,15 @@ pre {
span#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
}
div#footer {
- font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
@@ -135,7 +146,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +167,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,7 +183,7 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
color: #777777;
}
@@ -180,8 +192,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -258,8 +271,8 @@ div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
- font-family: sans-serif;
font-weight: bold;
+ color: #527bbd;
}
tfoot {
font-weight: bold;
@@ -339,6 +352,14 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
div#footer-badges { display: none; }
@@ -350,7 +371,6 @@ div#toc {
div#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
@@ -373,6 +393,7 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
+
/* Overrides for manpage documents */
h1 {
padding-top: 0.5em;
@@ -391,47 +412,6 @@ div.sectionbody {
div#toc { display: none; }
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -567,7 +547,7 @@ footnotes: function () {
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
zmq_version(3) Manual Page
@@ -580,10 +560,13 @@ zmq_version(3) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>void zmq_version (int <em>*major</em>, int <em>*minor</em>, int <em>*patch</em>);</strong></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The <em>zmq_version()</em> function shall fill in the integer variables pointed to by
@@ -593,14 +576,20 @@ components of the ØMQ library version.</p></div>
dynamically linking to the ØMQ library that wish to determine the actual
version of the ØMQ library they are using.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_return_value">RETURN VALUE</h2>
<div class="sectionbody">
<div class="paragraph"><p>There is no return value.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>No errors are defined.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="listingblock">
@@ -611,21 +600,26 @@ zmq_version (&amp;major, &amp;minor, &amp;patch);
printf ("Current 0MQ version is %d.%d.%d\n", major, minor, patch);</tt></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph"><p><a href="zmq.html">zmq(7)</a></p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_authors">AUTHORS</h2>
<div class="sectionbody">
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik &lt;<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>&gt; and
Martin Lucina &lt;<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>&gt;.</p></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-ØMQ 2.1.4<br />
-Last updated 2011-03-13 17:59:17 CEST
+ØMQ 2.1.9<br />
+Last updated 2011-03-13 17:59:17 CET
</div>
</div>
</body>
diff --git a/include/zmq.h b/include/zmq.h
index 5857ba8..a897888 100644
--- a/include/zmq.h
+++ b/include/zmq.h
@@ -28,7 +28,7 @@ extern "C" {
#include <errno.h>
#include <stddef.h>
#if defined _WIN32
-#include "winsock2.h"
+#include <winsock2.h>
#endif
/* Handle DSO symbol visibility */
@@ -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 7
+#define ZMQ_VERSION_PATCH 9
#define ZMQ_MAKE_VERSION(major, minor, patch) \
((major) * 10000 + (minor) * 100 + (patch))
diff --git a/perf/local_thr.cpp b/perf/local_thr.cpp
index 0dea8c6..b584c1d 100644
--- a/perf/local_thr.cpp
+++ b/perf/local_thr.cpp
@@ -115,7 +115,7 @@ int main (int argc, char *argv [])
throughput = (unsigned long)
((double) message_count / (double) elapsed * 1000000);
- megabits = (double) (throughput * message_size * 8) / 1000000;
+ megabits = (double) ((double) throughput * message_size * 8) / 1000000;
printf ("message size: %d [B]\n", (int) message_size);
printf ("message count: %d\n", (int) message_count);
diff --git a/src/Makefile.am b/src/Makefile.am
index ce20225..73eaf44 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -58,6 +58,7 @@ libzmq_la_SOURCES = \
select.hpp \
semaphore.hpp \
session.hpp \
+ signaler.hpp \
socket_base.hpp \
stdint.hpp \
sub.hpp \
@@ -118,6 +119,7 @@ libzmq_la_SOURCES = \
req.cpp \
select.cpp \
session.cpp \
+ signaler.cpp \
socket_base.cpp \
sub.cpp \
swap.cpp \
diff --git a/src/Makefile.in b/src/Makefile.in
index 78e3379..f7a9436 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -93,14 +93,15 @@ am_libzmq_la_OBJECTS = libzmq_la-clock.lo libzmq_la-command.lo \
libzmq_la-poller_base.lo libzmq_la-pull.lo libzmq_la-push.lo \
libzmq_la-reaper.lo libzmq_la-pub.lo libzmq_la-rep.lo \
libzmq_la-req.lo libzmq_la-select.lo libzmq_la-session.lo \
- libzmq_la-socket_base.lo libzmq_la-sub.lo libzmq_la-swap.lo \
- libzmq_la-tcp_connecter.lo libzmq_la-tcp_listener.lo \
- libzmq_la-tcp_socket.lo libzmq_la-thread.lo \
- libzmq_la-transient_session.lo libzmq_la-trie.lo \
- libzmq_la-uuid.lo libzmq_la-xpub.lo libzmq_la-xrep.lo \
- libzmq_la-xreq.lo libzmq_la-xsub.lo libzmq_la-zmq.lo \
- libzmq_la-zmq_connecter.lo libzmq_la-zmq_engine.lo \
- libzmq_la-zmq_init.lo libzmq_la-zmq_listener.lo
+ libzmq_la-signaler.lo libzmq_la-socket_base.lo \
+ libzmq_la-sub.lo libzmq_la-swap.lo libzmq_la-tcp_connecter.lo \
+ libzmq_la-tcp_listener.lo libzmq_la-tcp_socket.lo \
+ libzmq_la-thread.lo libzmq_la-transient_session.lo \
+ libzmq_la-trie.lo libzmq_la-uuid.lo libzmq_la-xpub.lo \
+ libzmq_la-xrep.lo libzmq_la-xreq.lo libzmq_la-xsub.lo \
+ libzmq_la-zmq.lo libzmq_la-zmq_connecter.lo \
+ libzmq_la-zmq_engine.lo libzmq_la-zmq_init.lo \
+ libzmq_la-zmq_listener.lo
libzmq_la_OBJECTS = $(am_libzmq_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -350,6 +351,7 @@ libzmq_la_SOURCES = \
select.hpp \
semaphore.hpp \
session.hpp \
+ signaler.hpp \
socket_base.hpp \
stdint.hpp \
sub.hpp \
@@ -410,6 +412,7 @@ libzmq_la_SOURCES = \
req.cpp \
select.cpp \
session.cpp \
+ signaler.cpp \
socket_base.cpp \
sub.cpp \
swap.cpp \
@@ -566,6 +569,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-req.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-select.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-session.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-signaler.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-socket_base.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-sub.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libzmq_la-swap.Plo@am__quote@
@@ -906,6 +910,14 @@ libzmq_la-session.lo: session.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -c -o libzmq_la-session.lo `test -f 'session.cpp' || echo '$(srcdir)/'`session.cpp
+libzmq_la-signaler.lo: signaler.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -MT libzmq_la-signaler.lo -MD -MP -MF $(DEPDIR)/libzmq_la-signaler.Tpo -c -o libzmq_la-signaler.lo `test -f 'signaler.cpp' || echo '$(srcdir)/'`signaler.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzmq_la-signaler.Tpo $(DEPDIR)/libzmq_la-signaler.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='signaler.cpp' object='libzmq_la-signaler.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -c -o libzmq_la-signaler.lo `test -f 'signaler.cpp' || echo '$(srcdir)/'`signaler.cpp
+
libzmq_la-socket_base.lo: socket_base.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libzmq_la_CPPFLAGS) $(CPPFLAGS) $(libzmq_la_CXXFLAGS) $(CXXFLAGS) -MT libzmq_la-socket_base.lo -MD -MP -MF $(DEPDIR)/libzmq_la-socket_base.Tpo -c -o libzmq_la-socket_base.lo `test -f 'socket_base.cpp' || echo '$(srcdir)/'`socket_base.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libzmq_la-socket_base.Tpo $(DEPDIR)/libzmq_la-socket_base.Plo
diff --git a/src/config.hpp b/src/config.hpp
index f144512..db79284 100644
--- a/src/config.hpp
+++ b/src/config.hpp
@@ -36,6 +36,13 @@ namespace zmq
// memory allocation by approximately 99.6%
message_pipe_granularity = 256,
+ // Commands in pipe per allocation event.
+ command_pipe_granularity = 16,
+
+ // Size in bytes of the largest message that is still copied around
+ // rather than being reference-counted.
+ max_vsm_size = 29,
+
// Determines how often does socket poll for new commands when it
// still has unprocessed messages to handle. Thus, if it is set to 100,
// socket will process 100 inbound messages before doing the poll.
diff --git a/src/ctx.cpp b/src/ctx.cpp
index 2758729..9612cd1 100644
--- a/src/ctx.cpp
+++ b/src/ctx.cpp
@@ -18,21 +18,23 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "platform.hpp"
+#if defined ZMQ_HAVE_WINDOWS
+#include "windows.hpp"
+#endif
+
#include <new>
#include <string.h>
#include "ctx.hpp"
#include "socket_base.hpp"
#include "io_thread.hpp"
-#include "platform.hpp"
#include "reaper.hpp"
#include "err.hpp"
#include "pipe.hpp"
-#if defined ZMQ_HAVE_WINDOWS
-#include "windows.h"
-#else
-#include "unistd.h"
+#if !defined ZMQ_HAVE_WINDOWS
+#include <unistd.h>
#endif
zmq::ctx_t::ctx_t (uint32_t io_threads_) :
@@ -141,7 +143,7 @@ int zmq::ctx_t::terminate ()
// Wait till reaper thread closes all the sockets.
command_t cmd;
- int rc = term_mailbox.recv (&cmd, true);
+ int rc = term_mailbox.recv (&cmd, -1);
if (rc == -1 && errno == EINTR)
return -1;
zmq_assert (rc == 0);
diff --git a/src/io_thread.cpp b/src/io_thread.cpp
index be52bdd..bb7971d 100644
--- a/src/io_thread.cpp
+++ b/src/io_thread.cpp
@@ -72,7 +72,7 @@ void zmq::io_thread_t::in_event ()
// Get the next command. If there is none, exit.
command_t cmd;
- int rc = mailbox.recv (&cmd, false);
+ int rc = mailbox.recv (&cmd, 0);
if (rc != 0 && errno == EINTR)
continue;
if (rc != 0 && errno == EAGAIN)
diff --git a/src/ip.cpp b/src/ip.cpp
index a63a97d..3ea1f29 100644
--- a/src/ip.cpp
+++ b/src/ip.cpp
@@ -54,7 +54,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
size_t ifr_size = sizeof (struct lifreq) * ifn.lifn_count;
char *ifr = (char*) malloc (ifr_size);
alloc_assert (ifr);
-
+
// Retrieve interface names.
lifconf ifc;
ifc.lifc_family = AF_UNSPEC;
@@ -92,7 +92,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
return 0;
}
-#elif defined ZMQ_HAVE_AIX || ZMQ_HAVE_HPUX
+#elif defined ZMQ_HAVE_AIX || ZMQ_HAVE_HPUX || ZMQ_HAVE_ANDROID
#include <sys/types.h>
#include <unistd.h>
@@ -105,7 +105,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
int sd = socket (AF_INET, SOCK_DGRAM, 0);
zmq_assert (sd != -1);
- struct ifreq ifr;
+ struct ifreq ifr;
// Copy interface name for ioctl get.
strncpy (ifr.ifr_name, interface_, sizeof (ifr.ifr_name));
@@ -123,7 +123,7 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
struct sockaddr *sa = (struct sockaddr *) &ifr.ifr_addr;
*addr_ = ((sockaddr_in*)sa)->sin_addr;
- return 0;
+ return 0;
}
#elif ((defined ZMQ_HAVE_LINUX || defined ZMQ_HAVE_FREEBSD ||\
@@ -140,14 +140,14 @@ static int resolve_nic_name (in_addr* addr_, char const *interface_)
// Get the addresses.
ifaddrs* ifa = NULL;
int rc = getifaddrs (&ifa);
- zmq_assert (rc == 0);
+ zmq_assert (rc == 0);
zmq_assert (ifa != NULL);
// Find the corresponding network interface.
bool found = false;
for (ifaddrs *ifp = ifa; ifp != NULL ;ifp = ifp->ifa_next)
- if (ifp->ifa_addr && ifp->ifa_addr->sa_family == AF_INET
- && !strcmp (interface_, ifp->ifa_name))
+ if (ifp->ifa_addr && ifp->ifa_addr->sa_family == AF_INET
+ && !strcmp (interface_, ifp->ifa_name))
{
*addr_ = ((sockaddr_in*) ifp->ifa_addr)->sin_addr;
found = true;
@@ -294,7 +294,7 @@ int zmq::resolve_ip_hostname (sockaddr_storage *addr_, socklen_t *addr_len_,
// Need to choose one to avoid duplicate results from getaddrinfo() - this
// doesn't really matter, since it's not included in the addr-output.
req.ai_socktype = SOCK_STREAM;
-
+
// Avoid named services due to unclear socktype.
req.ai_flags = AI_NUMERICSERV;
@@ -311,9 +311,9 @@ int zmq::resolve_ip_hostname (sockaddr_storage *addr_, socklen_t *addr_len_,
zmq_assert ((size_t) (res->ai_addrlen) <= sizeof (*addr_));
memcpy (addr_, res->ai_addr, res->ai_addrlen);
*addr_len_ = res->ai_addrlen;
-
+
freeaddrinfo (res);
-
+
return 0;
}
diff --git a/src/mailbox.cpp b/src/mailbox.cpp
index 221396b..a99a9ec 100644
--- a/src/mailbox.cpp
+++ b/src/mailbox.cpp
@@ -21,362 +21,62 @@
#include "mailbox.hpp"
#include "platform.hpp"
#include "err.hpp"
-#include "fd.hpp"
-#include "ip.hpp"
-
-#if defined ZMQ_HAVE_WINDOWS
-#include "windows.hpp"
-#else
-#include <unistd.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <netinet/tcp.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#endif
-
-zmq::fd_t zmq::mailbox_t::get_fd ()
-{
- return r;
-}
-
-#if defined ZMQ_HAVE_WINDOWS
zmq::mailbox_t::mailbox_t ()
{
- // Create the socketpair for signalling.
- int rc = make_socketpair (&r, &w);
- errno_assert (rc == 0);
-
- // Set the writer to non-blocking mode.
- unsigned long argp = 1;
- rc = ioctlsocket (w, FIONBIO, &argp);
- wsa_assert (rc != SOCKET_ERROR);
-
- // Set the reader to non-blocking mode.
- argp = 1;
- rc = ioctlsocket (r, FIONBIO, &argp);
- wsa_assert (rc != SOCKET_ERROR);
+ // Get the pipe into passive state. That way, if the users starts by
+ // polling on the associated file descriptor it will get woken up when
+ // new command is posted.
+ bool ok = cpipe.read (NULL);
+ zmq_assert (!ok);
+ active = false;
}
zmq::mailbox_t::~mailbox_t ()
{
- int rc = closesocket (w);
- wsa_assert (rc != SOCKET_ERROR);
-
- rc = closesocket (r);
- wsa_assert (rc != SOCKET_ERROR);
-}
-
-void zmq::mailbox_t::send (const command_t &cmd_)
-{
- // TODO: Implement SNDBUF auto-resizing as for POSIX platforms.
- // In the mean time, the following code with assert if the send()
- // call would block.
- int nbytes = ::send (w, (char *)&cmd_, sizeof (command_t), 0);
- wsa_assert (nbytes != SOCKET_ERROR);
- zmq_assert (nbytes == sizeof (command_t));
-}
-
-int zmq::mailbox_t::recv (command_t *cmd_, bool block_)
-{
- // If required, set the reader to blocking mode.
- if (block_) {
- unsigned long argp = 0;
- int rc = ioctlsocket (r, FIONBIO, &argp);
- wsa_assert (rc != SOCKET_ERROR);
- }
-
- // Attempt to read an entire command. Returns EAGAIN if non-blocking
- // and a command is not available. Save value of errno if we wish to pass
- // it to caller.
- int err = 0;
- int nbytes = ::recv (r, (char *)cmd_, sizeof (command_t), 0);
- if (nbytes == -1 && WSAGetLastError () == WSAEWOULDBLOCK)
- err = EAGAIN;
-
- // Re-set the reader to non-blocking mode.
- if (block_) {
- unsigned long argp = 1;
- int rc = ioctlsocket (r, FIONBIO, &argp);
- wsa_assert (rc != SOCKET_ERROR);
- }
-
- // If the recv failed, return with the saved errno.
- if (err != 0) {
- errno = err;
- return -1;
- }
-
- // Sanity check for success.
- wsa_assert (nbytes != SOCKET_ERROR);
-
- // Check whether we haven't got half of command.
- zmq_assert (nbytes == sizeof (command_t));
-
- return 0;
-}
-
-#else
-
-zmq::mailbox_t::mailbox_t ()
-{
-#ifdef PIPE_BUF
- // Make sure that command can be written to the socket in atomic fashion.
- // If this wasn't guaranteed, commands from different threads would be
- // interleaved.
- zmq_assert (sizeof (command_t) <= PIPE_BUF);
-#endif
-
- // Create the socketpair for signaling.
- int rc = make_socketpair (&r, &w);
- errno_assert (rc == 0);
-
- // Set the writer to non-blocking mode.
- int flags = fcntl (w, F_GETFL, 0);
- errno_assert (flags >= 0);
- rc = fcntl (w, F_SETFL, flags | O_NONBLOCK);
- errno_assert (rc == 0);
-
-#ifndef MSG_DONTWAIT
- // Set the reader to non-blocking mode.
- flags = fcntl (r, F_GETFL, 0);
- errno_assert (flags >= 0);
- rc = fcntl (r, F_SETFL, flags | O_NONBLOCK);
- errno_assert (rc == 0);
-#endif
+ // TODO: Retrieve and deallocate commands inside the cpipe.
}
-zmq::mailbox_t::~mailbox_t ()
+zmq::fd_t zmq::mailbox_t::get_fd ()
{
- close (w);
- close (r);
+ return signaler.get_fd ();
}
void zmq::mailbox_t::send (const command_t &cmd_)
{
- // Attempt to write an entire command without blocking.
- ssize_t nbytes;
- do {
- nbytes = ::send (w, &cmd_, sizeof (command_t), 0);
- } while (nbytes == -1 && errno == EINTR);
-
- // Attempt to increase mailbox SNDBUF if the send failed.
- if (nbytes == -1 && errno == EAGAIN) {
- int old_sndbuf, new_sndbuf;
- socklen_t sndbuf_size = sizeof old_sndbuf;
-
- // Retrieve current send buffer size.
- int rc = getsockopt (w, SOL_SOCKET, SO_SNDBUF, &old_sndbuf,
- &sndbuf_size);
- errno_assert (rc == 0);
- new_sndbuf = old_sndbuf * 2;
-
- // Double the new send buffer size.
- rc = setsockopt (w, SOL_SOCKET, SO_SNDBUF, &new_sndbuf, sndbuf_size);
- errno_assert (rc == 0);
-
- // Verify that the OS actually honored the request.
- rc = getsockopt (w, SOL_SOCKET, SO_SNDBUF, &new_sndbuf, &sndbuf_size);
- errno_assert (rc == 0);
- zmq_assert (new_sndbuf > old_sndbuf);
-
- // Retry the sending operation; at this point it must succeed.
- do {
- nbytes = ::send (w, &cmd_, sizeof (command_t), 0);
- } while (nbytes == -1 && errno == EINTR);
- }
- errno_assert (nbytes != -1);
-
- // This should never happen as we've already checked that command size is
- // less than PIPE_BUF.
- zmq_assert (nbytes == sizeof (command_t));
+ sync.lock ();
+ cpipe.write (cmd_, false);
+ bool ok = cpipe.flush ();
+ sync.unlock ();
+ if (!ok)
+ signaler.send ();
}
-int zmq::mailbox_t::recv (command_t *cmd_, bool block_)
+int zmq::mailbox_t::recv (command_t *cmd_, int timeout_)
{
-#ifdef MSG_DONTWAIT
-
- // Attempt to read an entire command. Returns EAGAIN if non-blocking
- // mode is requested and a command is not available.
- ssize_t nbytes = ::recv (r, cmd_, sizeof (command_t),
- block_ ? 0 : MSG_DONTWAIT);
- if (nbytes == -1 && (errno == EAGAIN || errno == EINTR))
- return -1;
-#else
-
- // If required, set the reader to blocking mode.
- if (block_) {
- int flags = fcntl (r, F_GETFL, 0);
- errno_assert (flags >= 0);
- int rc = fcntl (r, F_SETFL, flags & ~O_NONBLOCK);
- errno_assert (rc == 0);
- }
-
- // Attempt to read an entire command. Returns EAGAIN if non-blocking
- // and a command is not available. Save value of errno if we wish to pass
- // it to caller.
- int err = 0;
- ssize_t nbytes = ::recv (r, cmd_, sizeof (command_t), 0);
- if (nbytes == -1 && (errno == EAGAIN || errno == EINTR))
- err = errno;
-
- // Re-set the reader to non-blocking mode.
- if (block_) {
- int flags = fcntl (r, F_GETFL, 0);
- errno_assert (flags >= 0);
- int rc = fcntl (r, F_SETFL, flags | O_NONBLOCK);
- errno_assert (rc == 0);
+ // Try to get the command straight away.
+ if (active) {
+ bool ok = cpipe.read (cmd_);
+ if (ok)
+ return 0;
+
+ // If there are no more commands available, switch into passive state.
+ active = false;
+ signaler.recv ();
}
- // If the recv failed, return with the saved errno if set.
- if (err != 0) {
- errno = err;
+ // Wait for signal from the command sender.
+ int rc = signaler.wait (timeout_);
+ if (rc != 0 && (errno == EAGAIN || errno == EINTR))
return -1;
- }
-
-#endif
-
- // Sanity check for success.
- errno_assert (nbytes != -1);
-
- // Check whether we haven't got half of command.
- zmq_assert (nbytes == sizeof (command_t));
-
- return 0;
-}
-
-#endif
-
-int zmq::mailbox_t::make_socketpair (fd_t *r_, fd_t *w_)
-{
-#if defined ZMQ_HAVE_WINDOWS
-
- // Windows has no 'socketpair' function. CreatePipe is no good as pipe
- // handles cannot be polled on. Here we create the socketpair by hand.
- *w_ = INVALID_SOCKET;
- *r_ = INVALID_SOCKET;
-
- // Create listening socket.
- SOCKET listener;
- listener = socket (AF_INET, SOCK_STREAM, 0);
- wsa_assert (listener != INVALID_SOCKET);
-
- // Set SO_REUSEADDR and TCP_NODELAY on listening socket.
- BOOL so_reuseaddr = 1;
- int rc = setsockopt (listener, SOL_SOCKET, SO_REUSEADDR,
- (char *)&so_reuseaddr, sizeof (so_reuseaddr));
- wsa_assert (rc != SOCKET_ERROR);
- BOOL tcp_nodelay = 1;
- rc = setsockopt (listener, IPPROTO_TCP, TCP_NODELAY,
- (char *)&tcp_nodelay, sizeof (tcp_nodelay));
- wsa_assert (rc != SOCKET_ERROR);
-
- // Bind listening socket to any free local port.
- struct sockaddr_in addr;
- memset (&addr, 0, sizeof (addr));
- addr.sin_family = AF_INET;
- addr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
- addr.sin_port = 0;
- rc = bind (listener, (const struct sockaddr*) &addr, sizeof (addr));
- wsa_assert (rc != SOCKET_ERROR);
-
- // Retrieve local port listener is bound to (into addr).
- int addrlen = sizeof (addr);
- rc = getsockname (listener, (struct sockaddr*) &addr, &addrlen);
- wsa_assert (rc != SOCKET_ERROR);
-
- // Listen for incomming connections.
- rc = listen (listener, 1);
- wsa_assert (rc != SOCKET_ERROR);
-
- // Create the writer socket.
- *w_ = WSASocket (AF_INET, SOCK_STREAM, 0, NULL, 0, 0);
- wsa_assert (*w_ != INVALID_SOCKET);
-
- // Set TCP_NODELAY on writer socket.
- rc = setsockopt (*w_, IPPROTO_TCP, TCP_NODELAY,
- (char *)&tcp_nodelay, sizeof (tcp_nodelay));
- wsa_assert (rc != SOCKET_ERROR);
- // Connect writer to the listener.
- rc = connect (*w_, (sockaddr *) &addr, sizeof (addr));
- wsa_assert (rc != SOCKET_ERROR);
+ // We've got the signal. Now we can switch into active state.
+ active = true;
- // Accept connection from writer.
- *r_ = accept (listener, NULL, NULL);
- wsa_assert (*r_ != INVALID_SOCKET);
-
- // We don't need the listening socket anymore. Close it.
- rc = closesocket (listener);
- wsa_assert (rc != SOCKET_ERROR);
-
- return 0;
-
-#elif defined ZMQ_HAVE_OPENVMS
-
- // Whilst OpenVMS supports socketpair - it maps to AF_INET only. Further,
- // it does not set the socket options TCP_NODELAY and TCP_NODELACK which
- // can lead to performance problems.
- //
- // The bug will be fixed in V5.6 ECO4 and beyond. In the meantime, we'll
- // create the socket pair manually.
- sockaddr_in lcladdr;
- memset (&lcladdr, 0, sizeof (lcladdr));
- lcladdr.sin_family = AF_INET;
- lcladdr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
- lcladdr.sin_port = 0;
-
- int listener = socket (AF_INET, SOCK_STREAM, 0);
- errno_assert (listener != -1);
-
- int on = 1;
- int rc = setsockopt (listener, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on));
- errno_assert (rc != -1);
-
- rc = setsockopt (listener, IPPROTO_TCP, TCP_NODELACK, &on, sizeof (on));
- errno_assert (rc != -1);
-
- rc = bind(listener, (struct sockaddr*) &lcladdr, sizeof (lcladdr));
- errno_assert (rc != -1);
-
- socklen_t lcladdr_len = sizeof (lcladdr);
-
- rc = getsockname (listener, (struct sockaddr*) &lcladdr, &lcladdr_len);
- errno_assert (rc != -1);
-
- rc = listen (listener, 1);
- errno_assert (rc != -1);
-
- *w_ = socket (AF_INET, SOCK_STREAM, 0);
- errno_assert (*w_ != -1);
-
- rc = setsockopt (*w_, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on));
- errno_assert (rc != -1);
-
- rc = setsockopt (*w_, IPPROTO_TCP, TCP_NODELACK, &on, sizeof (on));
- errno_assert (rc != -1);
-
- rc = connect (*w_, (struct sockaddr*) &lcladdr, sizeof (lcladdr));
- errno_assert (rc != -1);
-
- *r_ = accept (listener, NULL, NULL);
- errno_assert (*r_ != -1);
-
- close (listener);
-
- return 0;
-
-#else // All other implementations support socketpair()
-
- int sv [2];
- int rc = socketpair (AF_UNIX, SOCK_STREAM, 0, sv);
+ // Get a command.
errno_assert (rc == 0);
- *w_ = sv [0];
- *r_ = sv [1];
+ bool ok = cpipe.read (cmd_);
+ zmq_assert (ok);
return 0;
-
-#endif
}
diff --git a/src/mailbox.hpp b/src/mailbox.hpp
index 96bf4eb..0675b99 100644
--- a/src/mailbox.hpp
+++ b/src/mailbox.hpp
@@ -24,10 +24,12 @@
#include <stddef.h>
#include "platform.hpp"
+#include "signaler.hpp"
#include "fd.hpp"
-#include "stdint.hpp"
#include "config.hpp"
#include "command.hpp"
+#include "ypipe.hpp"
+#include "mutex.hpp"
namespace zmq
{
@@ -41,16 +43,26 @@ namespace zmq
fd_t get_fd ();
void send (const command_t &cmd_);
- int recv (command_t *cmd_, bool block_);
+ int recv (command_t *cmd_, int timeout_);
private:
- // Write & read end of the socketpair.
- fd_t w;
- fd_t r;
+ // The pipe to store actual commands.
+ typedef ypipe_t <command_t, command_pipe_granularity> cpipe_t;
+ cpipe_t cpipe;
- // Platform-dependent function to create a socketpair.
- static int make_socketpair (fd_t *r_, fd_t *w_);
+ // Signaler to pass signals from writer thread to reader thread.
+ signaler_t signaler;
+
+ // There's only one thread receiving from the mailbox, but there
+ // is arbitrary number of threads sending. Given that ypipe requires
+ // synchronised access on both of its endpoints, we have to synchronise
+ // the sending side.
+ mutex_t sync;
+
+ // True if the underlying pipe is active, ie. when we are allowed to
+ // read commands from it.
+ bool active;
// Disable copying of mailbox_t object.
mailbox_t (const mailbox_t&);
diff --git a/src/pgm_receiver.cpp b/src/pgm_receiver.cpp
index 4fadadc..7e7da96 100644
--- a/src/pgm_receiver.cpp
+++ b/src/pgm_receiver.cpp
@@ -60,8 +60,8 @@ int zmq::pgm_receiver_t::init (bool udp_encapsulation_, const char *network_)
void zmq::pgm_receiver_t::plug (io_thread_t *io_thread_, i_inout *inout_)
{
// Retrieve PGM fds and start polling.
- int socket_fd;
- int waiting_pipe_fd;
+ fd_t socket_fd = retired_fd;
+ fd_t waiting_pipe_fd = retired_fd;
pgm_socket.get_receiver_fds (&socket_fd, &waiting_pipe_fd);
socket_handle = add_fd (socket_fd);
pipe_handle = add_fd (waiting_pipe_fd);
diff --git a/src/pgm_sender.cpp b/src/pgm_sender.cpp
index 4d76433..7a0c951 100644
--- a/src/pgm_sender.cpp
+++ b/src/pgm_sender.cpp
@@ -64,10 +64,10 @@ int zmq::pgm_sender_t::init (bool udp_encapsulation_, const char *network_)
void zmq::pgm_sender_t::plug (io_thread_t *io_thread_, i_inout *inout_)
{
// Alocate 2 fds for PGM socket.
- int downlink_socket_fd = 0;
- int uplink_socket_fd = 0;
- int rdata_notify_fd = 0;
- int pending_notify_fd = 0;
+ fd_t downlink_socket_fd = retired_fd;
+ fd_t uplink_socket_fd = retired_fd;
+ fd_t rdata_notify_fd = retired_fd;
+ fd_t pending_notify_fd = retired_fd;
encoder.set_inout (inout_);
diff --git a/src/pgm_socket.cpp b/src/pgm_socket.cpp
index 5a82907..29ff3e6 100644
--- a/src/pgm_socket.cpp
+++ b/src/pgm_socket.cpp
@@ -394,8 +394,8 @@ zmq::pgm_socket_t::~pgm_socket_t ()
// Get receiver fds. receive_fd_ is signaled for incoming packets,
// waiting_pipe_fd_ is signaled for state driven events and data.
-void zmq::pgm_socket_t::get_receiver_fds (int *receive_fd_,
- int *waiting_pipe_fd_)
+void zmq::pgm_socket_t::get_receiver_fds (fd_t *receive_fd_,
+ fd_t *waiting_pipe_fd_)
{
socklen_t socklen;
bool rc;
@@ -421,8 +421,8 @@ void zmq::pgm_socket_t::get_receiver_fds (int *receive_fd_,
// receive_fd_ is for incoming back-channel protocol packets.
// rdata_notify_fd_ is raised for waiting repair transmissions.
// pending_notify_fd_ is for state driven events.
-void zmq::pgm_socket_t::get_sender_fds (int *send_fd_, int *receive_fd_,
- int *rdata_notify_fd_, int *pending_notify_fd_)
+void zmq::pgm_socket_t::get_sender_fds (fd_t *send_fd_, fd_t *receive_fd_,
+ fd_t *rdata_notify_fd_, fd_t *pending_notify_fd_)
{
socklen_t socklen;
bool rc;
diff --git a/src/pgm_socket.hpp b/src/pgm_socket.hpp
index 9699aed..5ba8387 100644
--- a/src/pgm_socket.hpp
+++ b/src/pgm_socket.hpp
@@ -36,6 +36,7 @@
#include <pgm/in.h>
#endif
+#include "fd.hpp"
#include "options.hpp"
namespace zmq
@@ -56,12 +57,12 @@ namespace zmq
int init (bool udp_encapsulation_, const char *network_);
// Get receiver fds and store them into user allocated memory.
- void get_receiver_fds (int *receive_fd_, int *waiting_pipe_fd_);
+ void get_receiver_fds (fd_t *receive_fd_, fd_t *waiting_pipe_fd_);
// Get sender and receiver fds and store it to user allocated
// memory. Receive fd is used to process NAKs from peers.
- void get_sender_fds (int *send_fd_, int *receive_fd_,
- int *rdata_notify_fd_, int *pending_notify_fd_);
+ void get_sender_fds (fd_t *send_fd_, fd_t *receive_fd_,
+ fd_t *rdata_notify_fd_, fd_t *pending_notify_fd_);
// Send data as one APDU, transmit window owned memory.
size_t send (unsigned char *data_, size_t data_len_);
diff --git a/src/platform.hpp.in b/src/platform.hpp.in
index 9ac777f..c89739d 100644
--- a/src/platform.hpp.in
+++ b/src/platform.hpp.in
@@ -160,6 +160,9 @@
/* Have AIX OS */
#undef ZMQ_HAVE_AIX
+/* Have Android OS */
+#undef ZMQ_HAVE_ANDROID
+
/* Have Cygwin */
#undef ZMQ_HAVE_CYGWIN
diff --git a/src/reaper.cpp b/src/reaper.cpp
index d3ebbba..f94f7c1 100644
--- a/src/reaper.cpp
+++ b/src/reaper.cpp
@@ -61,7 +61,7 @@ void zmq::reaper_t::in_event ()
// Get the next command. If there is none, exit.
command_t cmd;
- int rc = mailbox.recv (&cmd, false);
+ int rc = mailbox.recv (&cmd, 0);
if (rc != 0 && errno == EINTR)
continue;
if (rc != 0 && errno == EAGAIN)
diff --git a/src/rep.cpp b/src/rep.cpp
index dc55ad0..58c810b 100644
--- a/src/rep.cpp
+++ b/src/rep.cpp
@@ -85,7 +85,7 @@ int zmq::rep_t::xrecv (zmq_msg_t *msg_, int flags_)
// Push it to the reply pipe.
rc = xrep_t::xsend (msg_, flags_);
- zmq_assert (rc == 0);
+ errno_assert (rc == 0);
}
else {
// If the traceback stack is malformed, discard anything
diff --git a/src/select.cpp b/src/select.cpp
index 56f9f74..78fb6f6 100644
--- a/src/select.cpp
+++ b/src/select.cpp
@@ -19,20 +19,21 @@
*/
#include "platform.hpp"
+#if defined ZMQ_HAVE_WINDOWS
+#include "windows.hpp"
+#endif
#include <string.h>
#include <algorithm>
-#ifdef ZMQ_HAVE_WINDOWS
-#include "winsock2.h"
-#elif defined ZMQ_HAVE_HPUX
+#if defined ZMQ_HAVE_HPUX
#include <sys/param.h>
#include <sys/types.h>
#include <sys/time.h>
#elif defined ZMQ_HAVE_OPENVMS
#include <sys/types.h>
#include <sys/time.h>
-#else
+#elif !defined ZMQ_HAVE_WINDOWS
#include <sys/select.h>
#endif
diff --git a/src/signaler.cpp b/src/signaler.cpp
new file mode 100644
index 0000000..fa2f123
--- /dev/null
+++ b/src/signaler.cpp
@@ -0,0 +1,344 @@
+/*
+ Copyright (c) 2007-2011 iMatix Corporation
+ Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
+
+ This file is part of 0MQ.
+
+ 0MQ is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 0MQ is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "platform.hpp"
+
+#if defined ZMQ_FORCE_SELECT
+#define ZMQ_SIGNALER_WAIT_BASED_ON_SELECT
+#elif defined ZMQ_FORCE_POLL
+#define ZMQ_SIGNALER_WAIT_BASED_ON_POLL
+#elif defined ZMQ_HAVE_LINUX || defined ZMQ_HAVE_FREEBSD ||\
+ defined ZMQ_HAVE_OPENBSD || defined ZMQ_HAVE_SOLARIS ||\
+ defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_QNXNTO ||\
+ defined ZMQ_HAVE_HPUX || defined ZMQ_HAVE_AIX ||\
+ defined ZMQ_HAVE_NETBSD
+#define ZMQ_SIGNALER_WAIT_BASED_ON_POLL
+#elif defined ZMQ_HAVE_WINDOWS || defined ZMQ_HAVE_OPENVMS
+#define ZMQ_SIGNALER_WAIT_BASED_ON_SELECT
+#endif
+
+// On AIX, poll.h has to be included before zmq.h to get consistent
+// definition of pollfd structure (AIX uses 'reqevents' and 'retnevents'
+// instead of 'events' and 'revents' and defines macros to map from POSIX-y
+// names to AIX-specific names).
+#if defined ZMQ_SIGNALER_WAIT_BASED_ON_POLL
+#include <poll.h>
+#elif defined ZMQ_SIGNALER_WAIT_BASED_ON_SELECT
+#if defined ZMQ_HAVE_WINDOWS
+#include "windows.hpp"
+#elif defined ZMQ_HAVE_HPUX
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#elif defined ZMQ_HAVE_OPENVMS
+#include <sys/types.h>
+#include <sys/time.h>
+#else
+#include <sys/select.h>
+#endif
+#endif
+
+#include "signaler.hpp"
+#include "likely.hpp"
+#include "err.hpp"
+#include "fd.hpp"
+#include "ip.hpp"
+
+#if defined ZMQ_HAVE_WINDOWS
+#include "windows.hpp"
+#else
+#include <unistd.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <netinet/tcp.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#endif
+
+zmq::signaler_t::signaler_t ()
+{
+ // Create the socketpair for signaling.
+ int rc = make_fdpair (&r, &w);
+ errno_assert (rc == 0);
+
+ // Set both fds to non-blocking mode.
+#if defined ZMQ_HAVE_WINDOWS
+ unsigned long argp = 1;
+ rc = ioctlsocket (w, FIONBIO, &argp);
+ wsa_assert (rc != SOCKET_ERROR);
+ rc = ioctlsocket (r, FIONBIO, &argp);
+ wsa_assert (rc != SOCKET_ERROR);
+#else
+ int flags = fcntl (w, F_GETFL, 0);
+ errno_assert (flags >= 0);
+ rc = fcntl (w, F_SETFL, flags | O_NONBLOCK);
+ errno_assert (rc == 0);
+ flags = fcntl (r, F_GETFL, 0);
+ errno_assert (flags >= 0);
+ rc = fcntl (r, F_SETFL, flags | O_NONBLOCK);
+ errno_assert (rc == 0);
+#endif
+}
+
+zmq::signaler_t::~signaler_t ()
+{
+#if defined ZMQ_HAVE_WINDOWS
+ int rc = closesocket (w);
+ wsa_assert (rc != SOCKET_ERROR);
+ rc = closesocket (r);
+ wsa_assert (rc != SOCKET_ERROR);
+#else
+ close (w);
+ close (r);
+#endif
+}
+
+zmq::fd_t zmq::signaler_t::get_fd ()
+{
+ return r;
+}
+
+void zmq::signaler_t::send ()
+{
+#if defined ZMQ_HAVE_WINDOWS
+ unsigned char dummy = 0;
+ int nbytes = ::send (w, (char*) &dummy, sizeof (dummy), 0);
+ wsa_assert (nbytes != SOCKET_ERROR);
+ zmq_assert (nbytes == sizeof (dummy));
+#else
+ unsigned char dummy = 0;
+ while (true) {
+ ssize_t nbytes = ::send (w, &dummy, sizeof (dummy), 0);
+ if (unlikely (nbytes == -1 && errno == EINTR))
+ continue;
+ zmq_assert (nbytes == sizeof (dummy));
+ break;
+ }
+#endif
+}
+
+int zmq::signaler_t::wait (int timeout_)
+{
+#ifdef ZMQ_SIGNALER_WAIT_BASED_ON_POLL
+
+ struct pollfd pfd;
+ pfd.fd = r;
+ pfd.events = POLLIN;
+ int rc = poll (&pfd, 1, timeout_);
+ if (unlikely (rc < 0)) {
+ zmq_assert (errno == EINTR);
+ return -1;
+ }
+ else if (unlikely (rc == 0)) {
+ errno = EAGAIN;
+ return -1;
+ }
+ zmq_assert (rc == 1);
+ zmq_assert (pfd.revents & POLLIN);
+ return 0;
+
+#elif defined ZMQ_SIGNALER_WAIT_BASED_ON_SELECT
+
+ fd_set fds;
+ FD_ZERO (&fds);
+ FD_SET (r, &fds);
+ struct timeval timeout;
+ if (timeout_ >= 0) {
+ timeout.tv_sec = timeout_ / 1000;
+ timeout.tv_usec = timeout_ % 1000 * 1000;
+ }
+#ifdef ZMQ_HAVE_WINDOWS
+ int rc = select (0, &fds, NULL, NULL,
+ timeout_ >= 0 ? &timeout : NULL);
+ wsa_assert (rc != SOCKET_ERROR);
+#else
+ int rc = select (r + 1, &fds, NULL, NULL,
+ timeout_ >= 0 ? &timeout : NULL);
+ if (unlikely (rc < 0)) {
+ zmq_assert (errno == EINTR);
+ return -1;
+ }
+#endif
+ if (unlikely (rc == 0)) {
+ errno = EAGAIN;
+ return -1;
+ }
+ zmq_assert (rc == 1);
+ return 0;
+
+#else
+#error
+#endif
+}
+
+void zmq::signaler_t::recv ()
+{
+ // Attempt to read a signal.
+ unsigned char dummy;
+#ifdef ZMQ_HAVE_WINDOWS
+ int nbytes = ::recv (r, (char*) &dummy, sizeof (dummy), 0);
+ wsa_assert (nbytes != SOCKET_ERROR);
+#else
+ ssize_t nbytes = ::recv (r, &dummy, sizeof (dummy), 0);
+ errno_assert (nbytes >= 0);
+#endif
+ zmq_assert (nbytes == sizeof (dummy));
+ zmq_assert (dummy == 0);
+}
+
+int zmq::signaler_t::make_fdpair (fd_t *r_, fd_t *w_)
+{
+#if defined ZMQ_HAVE_WINDOWS
+
+ // Windows has no 'socketpair' function. CreatePipe is no good as pipe
+ // handles cannot be polled on. Here we create the socketpair by hand.
+ *w_ = INVALID_SOCKET;
+ *r_ = INVALID_SOCKET;
+
+ // Create listening socket.
+ SOCKET listener;
+ listener = socket (AF_INET, SOCK_STREAM, 0);
+ wsa_assert (listener != INVALID_SOCKET);
+
+ // Set SO_REUSEADDR and TCP_NODELAY on listening socket.
+ BOOL so_reuseaddr = 1;
+ int rc = setsockopt (listener, SOL_SOCKET, SO_REUSEADDR,
+ (char *)&so_reuseaddr, sizeof (so_reuseaddr));
+ wsa_assert (rc != SOCKET_ERROR);
+ BOOL tcp_nodelay = 1;
+ rc = setsockopt (listener, IPPROTO_TCP, TCP_NODELAY,
+ (char *)&tcp_nodelay, sizeof (tcp_nodelay));
+ wsa_assert (rc != SOCKET_ERROR);
+
+ // Bind listening socket to any free local port.
+ struct sockaddr_in addr;
+ memset (&addr, 0, sizeof (addr));
+ addr.sin_family = AF_INET;
+ addr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
+ addr.sin_port = 0;
+ rc = bind (listener, (const struct sockaddr*) &addr, sizeof (addr));
+ wsa_assert (rc != SOCKET_ERROR);
+
+ // Retrieve local port listener is bound to (into addr).
+ int addrlen = sizeof (addr);
+ rc = getsockname (listener, (struct sockaddr*) &addr, &addrlen);
+ wsa_assert (rc != SOCKET_ERROR);
+
+ // Listen for incomming connections.
+ rc = listen (listener, 1);
+ wsa_assert (rc != SOCKET_ERROR);
+
+ // Create the writer socket.
+ *w_ = WSASocket (AF_INET, SOCK_STREAM, 0, NULL, 0, 0);
+ wsa_assert (*w_ != INVALID_SOCKET);
+
+ // Set TCP_NODELAY on writer socket.
+ rc = setsockopt (*w_, IPPROTO_TCP, TCP_NODELAY,
+ (char *)&tcp_nodelay, sizeof (tcp_nodelay));
+ wsa_assert (rc != SOCKET_ERROR);
+
+ // Connect writer to the listener.
+ rc = connect (*w_, (sockaddr *) &addr, sizeof (addr));
+ wsa_assert (rc != SOCKET_ERROR);
+
+ // Accept connection from writer.
+ *r_ = accept (listener, NULL, NULL);
+ wsa_assert (*r_ != INVALID_SOCKET);
+
+ // We don't need the listening socket anymore. Close it.
+ rc = closesocket (listener);
+ wsa_assert (rc != SOCKET_ERROR);
+
+ return 0;
+
+#elif defined ZMQ_HAVE_OPENVMS
+
+ // Whilst OpenVMS supports socketpair - it maps to AF_INET only. Further,
+ // it does not set the socket options TCP_NODELAY and TCP_NODELACK which
+ // can lead to performance problems.
+ //
+ // The bug will be fixed in V5.6 ECO4 and beyond. In the meantime, we'll
+ // create the socket pair manually.
+ sockaddr_in lcladdr;
+ memset (&lcladdr, 0, sizeof (lcladdr));
+ lcladdr.sin_family = AF_INET;
+ lcladdr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
+ lcladdr.sin_port = 0;
+
+ int listener = socket (AF_INET, SOCK_STREAM, 0);
+ errno_assert (listener != -1);
+
+ int on = 1;
+ int rc = setsockopt (listener, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on));
+ errno_assert (rc != -1);
+
+ rc = setsockopt (listener, IPPROTO_TCP, TCP_NODELACK, &on, sizeof (on));
+ errno_assert (rc != -1);
+
+ rc = bind(listener, (struct sockaddr*) &lcladdr, sizeof (lcladdr));
+ errno_assert (rc != -1);
+
+ socklen_t lcladdr_len = sizeof (lcladdr);
+
+ rc = getsockname (listener, (struct sockaddr*) &lcladdr, &lcladdr_len);
+ errno_assert (rc != -1);
+
+ rc = listen (listener, 1);
+ errno_assert (rc != -1);
+
+ *w_ = socket (AF_INET, SOCK_STREAM, 0);
+ errno_assert (*w_ != -1);
+
+ rc = setsockopt (*w_, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on));
+ errno_assert (rc != -1);
+
+ rc = setsockopt (*w_, IPPROTO_TCP, TCP_NODELACK, &on, sizeof (on));
+ errno_assert (rc != -1);
+
+ rc = connect (*w_, (struct sockaddr*) &lcladdr, sizeof (lcladdr));
+ errno_assert (rc != -1);
+
+ *r_ = accept (listener, NULL, NULL);
+ errno_assert (*r_ != -1);
+
+ close (listener);
+
+ return 0;
+
+#else // All other implementations support socketpair()
+
+ int sv [2];
+ int rc = socketpair (AF_UNIX, SOCK_STREAM, 0, sv);
+ errno_assert (rc == 0);
+ *w_ = sv [0];
+ *r_ = sv [1];
+ return 0;
+
+#endif
+}
+
+#if defined ZMQ_SIGNALER_WAIT_BASED_ON_SELECT
+#undef ZMQ_SIGNALER_WAIT_BASED_ON_SELECT
+#endif
+#if defined ZMQ_SIGNALER_WAIT_BASED_ON_POLL
+#undef ZMQ_SIGNALER_WAIT_BASED_ON_POLL
+#endif
+
diff --git a/src/signaler.hpp b/src/signaler.hpp
new file mode 100644
index 0000000..2ebff41
--- /dev/null
+++ b/src/signaler.hpp
@@ -0,0 +1,63 @@
+/*
+ Copyright (c) 2007-2011 iMatix Corporation
+ Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
+
+ This file is part of 0MQ.
+
+ 0MQ is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 0MQ is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __ZMQ_SIGNALER_HPP_INCLUDED__
+#define __ZMQ_SIGNALER_HPP_INCLUDED__
+
+#include "fd.hpp"
+
+namespace zmq
+{
+
+ // This is a cross-platform equivalent to signal_fd. However, as opposed
+ // to signal_fd there can be at most one signal in the signaler at any
+ // given moment. Attempt to send a signal before receiving the previous
+ // one will result in undefined behaviour.
+
+ class signaler_t
+ {
+ public:
+
+ signaler_t ();
+ ~signaler_t ();
+
+ fd_t get_fd ();
+ void send ();
+ int wait (int timeout_);
+ void recv ();
+
+ private:
+
+ // Creates a pair of filedescriptors that will be used
+ // to pass the signals.
+ static int make_fdpair (fd_t *r_, fd_t *w_);
+
+ // Write & read end of the socketpair.
+ fd_t w;
+ fd_t r;
+
+ // Disable copying of signaler_t object.
+ signaler_t (const signaler_t&);
+ const signaler_t &operator = (const signaler_t&);
+ };
+
+}
+
+#endif
diff --git a/src/socket_base.cpp b/src/socket_base.cpp
index 24789b8..2167b0b 100644
--- a/src/socket_base.cpp
+++ b/src/socket_base.cpp
@@ -277,7 +277,7 @@ int zmq::socket_base_t::getsockopt (int option_, void *optval_,
errno = EINVAL;
return -1;
}
- int rc = process_commands (false, false);
+ int rc = process_commands (0, false);
if (rc != 0 && (errno == EINTR || errno == ETERM))
return -1;
errno_assert (rc == 0);
@@ -480,7 +480,7 @@ int zmq::socket_base_t::send (::zmq_msg_t *msg_, int flags_)
}
// Process pending commands, if any.
- int rc = process_commands (false, true);
+ int rc = process_commands (0, true);
if (unlikely (rc != 0))
return -1;
@@ -492,20 +492,37 @@ int zmq::socket_base_t::send (::zmq_msg_t *msg_, int flags_)
rc = xsend (msg_, flags_);
if (rc == 0)
return 0;
+ if (unlikely (errno != EAGAIN))
+ return -1;
// In case of non-blocking send we'll simply propagate
// the error - including EAGAIN - upwards.
if (flags_ & ZMQ_NOBLOCK)
return -1;
+ // Compute the time when the timeout should occur.
+ // If the timeout is infite, don't care.
+ clock_t clock ;
+ int timeout = -1;
+ uint64_t end = timeout < 0 ? 0 : (clock.now_ms () + timeout);
+
// Oops, we couldn't send the message. Wait for the next
// command, process it and try to send the message again.
- while (rc != 0) {
- if (errno != EAGAIN)
- return -1;
- if (unlikely (process_commands (true, false) != 0))
+ while (true) {
+ if (unlikely (process_commands (timeout, false) != 0))
return -1;
rc = xsend (msg_, flags_);
+ if (rc == 0)
+ break;
+ if (unlikely (errno != EAGAIN))
+ return -1;
+ if (timeout > 0) {
+ timeout = (int) (end - clock.now_ms ());
+ if (timeout <= 0) {
+ errno = EAGAIN;
+ return -1;
+ }
+ }
}
return 0;
}
@@ -526,6 +543,8 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
// Get the message.
int rc = xrecv (msg_, flags_);
+ if (unlikely (rc != 0 && errno != EAGAIN))
+ return -1;
int err = errno;
// Once every inbound_poll_rate messages check for signals and process
@@ -537,7 +556,7 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
// described above) from the one used by 'send'. This is because counting
// ticks is more efficient than doing RDTSC all the time.
if (++ticks == inbound_poll_rate) {
- if (unlikely (process_commands (false, false) != 0))
+ if (unlikely (process_commands (0, false) != 0))
return -1;
ticks = 0;
}
@@ -560,7 +579,7 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
if (flags_ & ZMQ_NOBLOCK) {
if (errno != EAGAIN)
return -1;
- if (unlikely (process_commands (false, false) != 0))
+ if (unlikely (process_commands (0, false) != 0))
return -1;
ticks = 0;
@@ -573,17 +592,33 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_)
return rc;
}
+ // Compute the time when the timeout should occur.
+ // If the timeout is infite, don't care.
+ clock_t clock ;
+ int timeout = -1;
+ uint64_t end = timeout < 0 ? 0 : (clock.now_ms () + timeout);
+
// In blocking scenario, commands are processed over and over again until
// we are able to fetch a message.
bool block = (ticks != 0);
- while (rc != 0) {
- if (errno != EAGAIN)
- return -1;
- if (unlikely (process_commands (block, false) != 0))
+ while (true) {
+ if (unlikely (process_commands (block ? timeout : 0, false) != 0))
return -1;
rc = xrecv (msg_, flags_);
- ticks = 0;
+ if (rc == 0) {
+ ticks = 0;
+ break;
+ }
+ if (unlikely (errno != EAGAIN))
+ return -1;
block = true;
+ if (timeout > 0) {
+ timeout = (int) (end - clock.now_ms ());
+ if (timeout <= 0) {
+ errno = EAGAIN;
+ return -1;
+ }
+ }
}
rcvmore = msg_->flags & ZMQ_MSG_MORE;
@@ -655,18 +690,20 @@ void zmq::socket_base_t::start_reaping (poller_t *poller_)
poller->set_pollin (handle);
}
-int zmq::socket_base_t::process_commands (bool block_, bool throttle_)
+int zmq::socket_base_t::process_commands (int timeout_, bool throttle_)
{
int rc;
command_t cmd;
- if (block_) {
- rc = mailbox.recv (&cmd, true);
- if (rc == -1 && errno == EINTR)
- return -1;
- errno_assert (rc == 0);
+ if (timeout_ != 0) {
+
+ // If we are asked to wait, simply ask mailbox to wait.
+ rc = mailbox.recv (&cmd, timeout_);
}
else {
+ // If we are asked not to wait, check whether we haven't processed
+ // commands recently, so that we can throttle the new commands.
+
// Get the CPU's tick counter. If 0, the counter is not available.
uint64_t tsc = zmq::clock_t::rdtsc ();
@@ -687,7 +724,7 @@ int zmq::socket_base_t::process_commands (bool block_, bool throttle_)
}
// Check whether there are any commands pending for this thread.
- rc = mailbox.recv (&cmd, false);
+ rc = mailbox.recv (&cmd, 0);
}
// Process all the commands available at the moment.
@@ -698,7 +735,7 @@ int zmq::socket_base_t::process_commands (bool block_, bool throttle_)
return -1;
errno_assert (rc == 0);
cmd.destination->process_command (cmd);
- rc = mailbox.recv (&cmd, false);
+ rc = mailbox.recv (&cmd, 0);
}
if (ctx_terminated) {
diff --git a/src/socket_base.hpp b/src/socket_base.hpp
index 333cddd..145211b 100644
--- a/src/socket_base.hpp
+++ b/src/socket_base.hpp
@@ -162,11 +162,11 @@ namespace zmq
void attach_pipes (class reader_t *inpipe_, class writer_t *outpipe_,
const blob_t &peer_identity_);
- // Processes commands sent to this socket (if any). If 'block' is
- // set to true, returns only after at least one command was processed.
+ // Processes commands sent to this socket (if any). If timeout is -1,
+ // returns only after at least one command was processed.
// If throttle argument is true, commands are processed at most once
// in a predefined time period.
- int process_commands (bool block_, bool throttle_);
+ int process_commands (int timeout_, bool throttle_);
// Handlers for incoming commands.
void process_stop ();
diff --git a/src/swap.cpp b/src/swap.cpp
index 936f30e..5f1b261 100644
--- a/src/swap.cpp
+++ b/src/swap.cpp
@@ -111,7 +111,7 @@ int zmq::swap_t::init ()
if (fd == -1)
return -1;
-#ifdef ZMQ_HAVE_LINUX
+#if (defined (ZMQ_HAVE_LINUX) && !defined (ZMQ_HAVE_ANDROID))
// Enable more aggresive read-ahead optimization.
posix_fadvise (fd, 0, filesize, POSIX_FADV_SEQUENTIAL);
#endif
@@ -135,8 +135,6 @@ bool zmq::swap_t::store (zmq_msg_t *msg_)
copy_to_file (&msg_flags, sizeof msg_flags);
copy_to_file (zmq_msg_data (msg_), msg_size);
- zmq_msg_close (msg_);
-
return true;
}
@@ -214,7 +212,7 @@ void zmq::swap_t::copy_from_file (void *buffer_, size_t count_)
size_t chunk_size, remainder = count_;
while (remainder > 0) {
- chunk_size = std::min (remainder,
+ chunk_size = std::min (remainder,
std::min ((size_t) (filesize - read_pos),
(size_t) (block_size - read_pos % block_size)));
@@ -238,7 +236,7 @@ void zmq::swap_t::copy_to_file (const void *buffer_, size_t count_)
size_t chunk_size, remainder = count_;
while (remainder > 0) {
- chunk_size = std::min (remainder,
+ chunk_size = std::min (remainder,
std::min ((size_t) (filesize - write_pos),
(size_t) (block_size - write_pos % block_size)));
diff --git a/src/tcp_connecter.cpp b/src/tcp_connecter.cpp
index 71b362b..d6f73ca 100644
--- a/src/tcp_connecter.cpp
+++ b/src/tcp_connecter.cpp
@@ -297,7 +297,8 @@ zmq::fd_t zmq::tcp_connecter_t::connect ()
// Networking problems are OK. No need to assert.
errno = err;
errno_assert (errno == ECONNREFUSED || errno == ECONNRESET ||
- errno == ETIMEDOUT || errno == EHOSTUNREACH);
+ errno == ETIMEDOUT || errno == EHOSTUNREACH ||
+ errno == ENETUNREACH);
return retired_fd;
}
diff --git a/src/tcp_socket.cpp b/src/tcp_socket.cpp
index f1b1d19..e7a69e4 100644
--- a/src/tcp_socket.cpp
+++ b/src/tcp_socket.cpp
@@ -162,6 +162,11 @@ int zmq::tcp_socket_t::open (fd_t fd_, uint64_t sndbuf_, uint64_t rcvbuf_)
errno_assert (rc == 0);
}
+#if defined ZMQ_HAVE_OSX || defined ZMQ_HAVE_FREEBSD
+ int set = 1;
+ int rc = setsockopt (s, SOL_SOCKET, SO_NOSIGPIPE, &set, sizeof (int));
+ errno_assert (rc == 0);
+#endif
return 0;
}
diff --git a/src/thread.cpp b/src/thread.cpp
index 7bf9df0..8e33eff 100644
--- a/src/thread.cpp
+++ b/src/thread.cpp
@@ -40,7 +40,7 @@ void zmq::thread_t::start (thread_fn *tfn_, void *arg_)
arg =arg_;
descriptor = (HANDLE) _beginthreadex (NULL, 0,
&::thread_routine, this, 0 , NULL);
- win_assert (descriptor != NULL);
+ win_assert (descriptor != NULL);
}
void zmq::thread_t::stop ()
@@ -59,17 +59,19 @@ extern "C"
{
static void *thread_routine (void *arg_)
{
- #if !defined ZMQ_HAVE_OPENVMS
+#if !defined ZMQ_HAVE_OPENVMS
// Following code will guarantee more predictable latecnies as it'll
// disallow any signal handling in the I/O thread.
sigset_t signal_set;
int rc = sigfillset (&signal_set);
errno_assert (rc == 0);
+# if !defined ZMQ_HAVE_ANDROID
rc = pthread_sigmask (SIG_BLOCK, &signal_set, NULL);
- errno_assert (rc == 0);
- #endif
+ posix_assert (rc);
+# endif
+#endif
- zmq::thread_t *self = (zmq::thread_t*) arg_;
+ zmq::thread_t *self = (zmq::thread_t*) arg_;
self->tfn (self->arg);
return NULL;
}
@@ -80,13 +82,13 @@ void zmq::thread_t::start (thread_fn *tfn_, void *arg_)
tfn = tfn_;
arg =arg_;
int rc = pthread_create (&descriptor, NULL, thread_routine, this);
- errno_assert (rc == 0);
+ posix_assert (rc);
}
void zmq::thread_t::stop ()
{
int rc = pthread_join (descriptor, NULL);
- errno_assert (rc == 0);
+ posix_assert (rc);
}
#endif
diff --git a/src/windows.hpp b/src/windows.hpp
index 5133875..a821339 100644
--- a/src/windows.hpp
+++ b/src/windows.hpp
@@ -24,50 +24,148 @@
// The purpose of this header file is to turn on only the items actually needed
// on the windows platform.
-#define _WINSOCKAPI_
-#ifndef NOMINMAX
-#define NOMINMAX // No min and max functions, these clash with C++.
-#endif
+// Disable deprecation warning.
#define _CRT_SECURE_NO_WARNINGS
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
-#ifndef NOUSER // No USER defines and routines.
-#define NOUSER
+#ifndef NOGDICAPMASKS
+#define NOGDICAPMASKS // CC_*, LC_*, PC_*, CP_*, TC_*, RC_
#endif
-#ifndef NOMCX // No Modem Configuration Extensions.
-#define NOMCX
+#ifndef NOVIRTUALKEYCODES
+#define NOVIRTUALKEYCODES // VK_*
#endif
-#ifndef NOIME // No Input Method Editor.
-#define NOIME
+#ifndef NOWINMESSAGES
+#define NOWINMESSAGES // WM_*, EM_*, LB_*, CB_*
#endif
-#ifndef NOSOUND // No Sound driver routines.
-#define NOSOUND
+#ifndef NOWINSTYLES
+#define NOWINSTYLES // WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
#endif
-
-#ifdef ZMQ_HAVE_MINGW32
-#ifdef WINVER
-#undef WINVER
+#ifndef NOSYSMETRICS
+#define NOSYSMETRICS // SM_*
#endif
-#define WINVER 0x0501
+#ifndef NOMENUS
+#define NOMENUS // MF_*
+#endif
+#ifndef NOICONS
+#define NOICONS // IDI_*
+#endif
+#ifndef NOKEYSTATES
+#define NOKEYSTATES // MK_*
+#endif
+#ifndef NOSYSCOMMANDS
+#define NOSYSCOMMANDS // SC_*
+#endif
+#ifndef NORASTEROPS
+#define NORASTEROPS // Binary and Tertiary raster ops
+#endif
+#ifndef NOSHOWWINDOW
+#define NOSHOWWINDOW // SW_*
+#endif
+#ifndef OEMRESOURCE
+#define OEMRESOURCE // OEM Resource values
+#endif
+#ifndef NOATOM
+#define NOATOM // Atom Manager routines
+#endif
+#ifndef NOCLIPBOARD
+#define NOCLIPBOARD // Clipboard routines
+#endif
+#ifndef NOCOLOR
+#define NOCOLOR // Screen colors
+#endif
+#ifndef NOCTLMGR
+#define NOCTLMGR // Control and Dialog routines
+#endif
+#ifndef NODRAWTEXT
+#define NODRAWTEXT // DrawText() and DT_*
+#endif
+#ifndef NOGDI
+#define NOGDI // All GDI defines and routines
+#endif
+#ifndef NOKERNEL
+#define NOKERNEL // All KERNEL defines and routines
+#endif
+#ifndef NOUSER
+#define NOUSER // All USER defines and routines
+#endif
+#ifndef NONLS
+#define NONLS // All NLS defines and routines
+#endif
+#ifndef NOMB
+#define NOMB // MB_* and MessageBox()
+#endif
+#ifndef NOMEMMGR
+#define NOMEMMGR // GMEM_*, LMEM_*, GHND, LHND, associated routines
+#endif
+#ifndef NOMETAFILE
+#define NOMETAFILE // typedef METAFILEPICT
+#endif
+#ifndef NOMINMAX
+#define NOMINMAX // Macros min(a,b) and max(a,b)
+#endif
+#ifndef NOMSG
+#define NOMSG // typedef MSG and associated routines
+#endif
+#ifndef NOOPENFILE
+#define NOOPENFILE // OpenFile(), OemToAnsi, AnsiToOem, and OF_*
+#endif
+#ifndef NOSCROLL
+#define NOSCROLL // SB_* and scrolling routines
+#endif
+#ifndef NOSERVICE
+#define NOSERVICE // All Service Controller routines, SERVICE_ equates, etc.
+#endif
+#ifndef NOSOUND
+#define NOSOUND // Sound driver routines
+#endif
+#ifndef NOTEXTMETRIC
+#define NOTEXTMETRIC // typedef TEXTMETRIC and associated routines
+#endif
+#ifndef NOWH
+#define NOWH // SetWindowsHook and WH_*
+#endif
+#ifndef NOWINOFFSETS
+#define NOWINOFFSETS // GWL_*, GCL_*, associated routines
+#endif
+#ifndef NOCOMM
+#define NOCOMM // COMM driver routines
+#endif
+#ifndef NOKANJI
+#define NOKANJI // Kanji support stuff.
+#endif
+#ifndef NOHELP
+#define NOHELP // Help engine interface.
+#endif
+#ifndef NOPROFILER
+#define NOPROFILER // Profiler interface.
+#endif
+#ifndef NODEFERWINDOWPOS
+#define NODEFERWINDOWPOS // DeferWindowPos routines
+#endif
+#ifndef NOMCX
+#define NOMCX // Modem Configuration ExtensionsA
#endif
-#include <windows.h>
-
-// MSVC++ 2005 on Win2000 does not define _WIN32_WINNT.
+// Set target version to Windows Server 2003, Windows XP/SP1 or higher.
#ifndef _WIN32_WINNT
-#define _WIN32_WINNT WINVER
+#define _WIN32_WINNT 0x0501
#endif
-// Enable winsock (not included when WIN32_LEAN_AND_MEAN is defined).
-#if(_WIN32_WINNT >= 0x0400)
-#include <winsock2.h>
-#include <mswsock.h>
+#include <windows.h>
+
+#ifdef __MINGW32__
+// Require Windows XP or higher with MinGW for getaddrinfo().
+#if(_WIN32_WINNT >= 0x0501)
#else
-#include <winsock.h>
-#endif
+#undef _WIN32_WINNT
+#define _WIN32_WINNT 0x0501
+#endif /* _WIN32_WINNT >= 0x0501 */
+#endif /* __MINGW32__ */
+#include <winsock2.h>
+#include <mswsock.h>
#include <ws2tcpip.h>
#include <ipexport.h>
#include <process.h>
diff --git a/src/xrep.cpp b/src/xrep.cpp
index 7317056..ac4150d 100644
--- a/src/xrep.cpp
+++ b/src/xrep.cpp
@@ -189,10 +189,6 @@ int zmq::xrep_t::xsend (zmq_msg_t *msg_, int flags_)
it->second.active = false;
more_out = false;
current_out = NULL;
- rc = zmq_msg_close (&empty);
- zmq_assert (rc == 0);
- errno = EAGAIN;
- return -1;
}
rc = zmq_msg_close (&empty);
zmq_assert (rc == 0);
diff --git a/src/zmq.cpp b/src/zmq.cpp
index 85f7d62..dce9630 100644
--- a/src/zmq.cpp
+++ b/src/zmq.cpp
@@ -412,7 +412,8 @@ int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_)
Sleep (timeout_ > 0 ? timeout_ / 1000 : INFINITE);
return 0;
#else
- return usleep (timeout_);
+ usleep (timeout_);
+ return 0;
#endif
}
@@ -565,7 +566,8 @@ int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_)
Sleep (timeout_ > 0 ? timeout_ / 1000 : INFINITE);
return 0;
#else
- return usleep (timeout_);
+ usleep (timeout_);
+ return 0;
#endif
}
@@ -649,13 +651,21 @@ int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_)
memcpy (&inset, &pollset_in, sizeof (fd_set));
memcpy (&outset, &pollset_out, sizeof (fd_set));
memcpy (&errset, &pollset_err, sizeof (fd_set));
- int rc = select (maxfd + 1, &inset, &outset, &errset, ptimeout);
#if defined ZMQ_HAVE_WINDOWS
- wsa_assert (rc != SOCKET_ERROR);
+ int rc = select (0, &inset, &outset, &errset, ptimeout);
+ if (unlikely (rc == SOCKET_ERROR)) {
+ zmq::wsa_error_to_errno ();
+ if (errno == ENOTSOCK)
+ return -1;
+ wsa_assert (false);
+ }
#else
- if (rc == -1 && errno == EINTR)
- return -1;
- errno_assert (rc >= 0);
+ int rc = select (maxfd + 1, &inset, &outset, &errset, ptimeout);
+ if (unlikely (rc == -1) {
+ if (errno == EINTR || errno == EBADF)
+ return -1;
+ errno_assert (false);
+ }
#endif
break;
}
diff --git a/tests/test_shutdown_stress.cpp b/tests/test_shutdown_stress.cpp
index dccf91f..c6561a0 100644
--- a/tests/test_shutdown_stress.cpp
+++ b/tests/test_shutdown_stress.cpp
@@ -23,7 +23,7 @@
#include <pthread.h>
#include <stddef.h>
-#define THREAD_COUNT 10
+#define THREAD_COUNT 100
extern "C"
{
diff --git a/zeromq.spec b/zeromq.spec
index 4d6a634..e99deaf 100644
--- a/zeromq.spec
+++ b/zeromq.spec
@@ -1,5 +1,5 @@
Name: zeromq
-Version: 2.1.7
+Version: 2.1.9
Release: 1%{?dist}
Summary: The ZeroMQ messaging library
Group: Applications/Internet