libzmq 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +703 -0
- data/README.md +31 -0
- data/lib/libzmq.rb +17 -0
- data/lib/libzmq/ffi-rzmq.rb +3 -0
- data/libzmq/Makefile +5 -0
- data/libzmq/extconf.rb +24 -0
- data/libzmq/zeromq-2.1.7/AUTHORS +92 -0
- data/libzmq/zeromq-2.1.7/COPYING +674 -0
- data/libzmq/zeromq-2.1.7/COPYING.LESSER +206 -0
- data/libzmq/zeromq-2.1.7/ChangeLog +15620 -0
- data/libzmq/zeromq-2.1.7/INSTALL +237 -0
- data/libzmq/zeromq-2.1.7/MAINTAINERS +56 -0
- data/libzmq/zeromq-2.1.7/Makefile.am +42 -0
- data/libzmq/zeromq-2.1.7/Makefile.in +779 -0
- data/libzmq/zeromq-2.1.7/NEWS +275 -0
- data/libzmq/zeromq-2.1.7/README +39 -0
- data/libzmq/zeromq-2.1.7/acinclude.m4 +582 -0
- data/libzmq/zeromq-2.1.7/aclocal.m4 +1206 -0
- data/libzmq/zeromq-2.1.7/autogen.sh +45 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.am +8 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.in +390 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_local_lat/c_local_lat.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_local_thr/c_local_thr.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_lat/c_remote_lat.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_thr/c_remote_thr.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/libzmq/libzmq.vcproj +783 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/msvc.sln +89 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/platform.hpp +32 -0
- data/libzmq/zeromq-2.1.7/builds/redhat/zeromq.spec.in +139 -0
- data/libzmq/zeromq-2.1.7/config/compile +143 -0
- data/libzmq/zeromq-2.1.7/config/config.guess +1502 -0
- data/libzmq/zeromq-2.1.7/config/config.sub +1714 -0
- data/libzmq/zeromq-2.1.7/config/depcomp +630 -0
- data/libzmq/zeromq-2.1.7/config/install-sh +520 -0
- data/libzmq/zeromq-2.1.7/config/libtool.m4 +7377 -0
- data/libzmq/zeromq-2.1.7/config/ltmain.sh +8413 -0
- data/libzmq/zeromq-2.1.7/config/ltoptions.m4 +368 -0
- data/libzmq/zeromq-2.1.7/config/ltsugar.m4 +123 -0
- data/libzmq/zeromq-2.1.7/config/ltversion.m4 +23 -0
- data/libzmq/zeromq-2.1.7/config/lt~obsolete.m4 +92 -0
- data/libzmq/zeromq-2.1.7/config/missing +376 -0
- data/libzmq/zeromq-2.1.7/configure +21645 -0
- data/libzmq/zeromq-2.1.7/configure.in +380 -0
- data/libzmq/zeromq-2.1.7/doc/Makefile.am +46 -0
- data/libzmq/zeromq-2.1.7/doc/Makefile.in +546 -0
- data/libzmq/zeromq-2.1.7/doc/asciidoc.conf +56 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.7 +242 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.html +846 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.txt +218 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.3 +166 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.html +746 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.txt +91 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.3 +81 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.html +645 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.txt +52 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.3 +161 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.html +732 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.txt +89 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.7 +410 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.html +765 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.txt +212 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.3 +140 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.html +736 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.txt +138 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.7 +209 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.html +749 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.html +634 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.txt +50 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.3 +944 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.html +1713 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.txt +407 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.3 +71 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.html +635 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.txt +51 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.7 +115 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.html +669 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.txt +89 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.7 +109 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.html +662 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.txt +80 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.3 +81 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.html +647 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.txt +55 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.3 +95 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.txt +57 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.3 +76 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.html +633 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.txt +48 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.3 +110 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.txt +65 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.3 +138 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.html +678 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.txt +83 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.3 +97 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.txt +58 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.3 +79 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.html +645 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.txt +52 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.3 +76 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.html +633 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.txt +48 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.7 +209 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.html +749 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.3 +204 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.txt +132 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.3 +172 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.html +746 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.txt +121 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.3 +185 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.txt +120 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.3 +878 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.html +1603 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.txt +382 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.3 +779 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.html +1424 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.txt +342 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.html +634 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.txt +55 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.7 +244 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.3 +135 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.html +672 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.txt +65 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.html +632 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.txt +53 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.am +8 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.in +588 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz +0 -0
- data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.cpp +2923 -0
- data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.hpp +762 -0
- data/libzmq/zeromq-2.1.7/include/zmq.h +269 -0
- data/libzmq/zeromq-2.1.7/include/zmq.hpp +301 -0
- data/libzmq/zeromq-2.1.7/include/zmq_utils.h +64 -0
- data/libzmq/zeromq-2.1.7/perf/Makefile.am +21 -0
- data/libzmq/zeromq-2.1.7/perf/Makefile.in +566 -0
- data/libzmq/zeromq-2.1.7/perf/inproc_lat.cpp +232 -0
- data/libzmq/zeromq-2.1.7/perf/inproc_thr.cpp +246 -0
- data/libzmq/zeromq-2.1.7/perf/local_lat.cpp +108 -0
- data/libzmq/zeromq-2.1.7/perf/local_thr.cpp +138 -0
- data/libzmq/zeromq-2.1.7/perf/remote_lat.cpp +121 -0
- data/libzmq/zeromq-2.1.7/perf/remote_thr.cpp +104 -0
- data/libzmq/zeromq-2.1.7/src/Makefile.am +155 -0
- data/libzmq/zeromq-2.1.7/src/Makefile.in +1320 -0
- data/libzmq/zeromq-2.1.7/src/array.hpp +147 -0
- data/libzmq/zeromq-2.1.7/src/atomic_counter.hpp +164 -0
- data/libzmq/zeromq-2.1.7/src/atomic_ptr.hpp +159 -0
- data/libzmq/zeromq-2.1.7/src/blob.hpp +34 -0
- data/libzmq/zeromq-2.1.7/src/clock.cpp +118 -0
- data/libzmq/zeromq-2.1.7/src/clock.hpp +60 -0
- data/libzmq/zeromq-2.1.7/src/command.cpp +39 -0
- data/libzmq/zeromq-2.1.7/src/command.hpp +147 -0
- data/libzmq/zeromq-2.1.7/src/config.hpp +88 -0
- data/libzmq/zeromq-2.1.7/src/connect_session.cpp +119 -0
- data/libzmq/zeromq-2.1.7/src/connect_session.hpp +65 -0
- data/libzmq/zeromq-2.1.7/src/ctx.cpp +322 -0
- data/libzmq/zeromq-2.1.7/src/ctx.hpp +159 -0
- data/libzmq/zeromq-2.1.7/src/decoder.cpp +129 -0
- data/libzmq/zeromq-2.1.7/src/decoder.hpp +207 -0
- data/libzmq/zeromq-2.1.7/src/device.cpp +120 -0
- data/libzmq/zeromq-2.1.7/src/device.hpp +32 -0
- data/libzmq/zeromq-2.1.7/src/devpoll.cpp +190 -0
- data/libzmq/zeromq-2.1.7/src/devpoll.hpp +100 -0
- data/libzmq/zeromq-2.1.7/src/dist.cpp +200 -0
- data/libzmq/zeromq-2.1.7/src/dist.hpp +90 -0
- data/libzmq/zeromq-2.1.7/src/encoder.cpp +90 -0
- data/libzmq/zeromq-2.1.7/src/encoder.hpp +184 -0
- data/libzmq/zeromq-2.1.7/src/epoll.cpp +177 -0
- data/libzmq/zeromq-2.1.7/src/epoll.hpp +96 -0
- data/libzmq/zeromq-2.1.7/src/err.cpp +238 -0
- data/libzmq/zeromq-2.1.7/src/err.hpp +145 -0
- data/libzmq/zeromq-2.1.7/src/fd.hpp +45 -0
- data/libzmq/zeromq-2.1.7/src/fq.cpp +164 -0
- data/libzmq/zeromq-2.1.7/src/fq.hpp +80 -0
- data/libzmq/zeromq-2.1.7/src/i_engine.hpp +53 -0
- data/libzmq/zeromq-2.1.7/src/i_inout.hpp +50 -0
- data/libzmq/zeromq-2.1.7/src/i_poll_events.hpp +46 -0
- data/libzmq/zeromq-2.1.7/src/io_object.cpp +107 -0
- data/libzmq/zeromq-2.1.7/src/io_object.hpp +78 -0
- data/libzmq/zeromq-2.1.7/src/io_thread.cpp +109 -0
- data/libzmq/zeromq-2.1.7/src/io_thread.hpp +88 -0
- data/libzmq/zeromq-2.1.7/src/ip.cpp +339 -0
- data/libzmq/zeromq-2.1.7/src/ip.hpp +68 -0
- data/libzmq/zeromq-2.1.7/src/kqueue.cpp +194 -0
- data/libzmq/zeromq-2.1.7/src/kqueue.hpp +103 -0
- data/libzmq/zeromq-2.1.7/src/lb.cpp +174 -0
- data/libzmq/zeromq-2.1.7/src/lb.hpp +79 -0
- data/libzmq/zeromq-2.1.7/src/libzmq.pc.in +10 -0
- data/libzmq/zeromq-2.1.7/src/likely.hpp +33 -0
- data/libzmq/zeromq-2.1.7/src/mailbox.cpp +382 -0
- data/libzmq/zeromq-2.1.7/src/mailbox.hpp +62 -0
- data/libzmq/zeromq-2.1.7/src/msg_content.hpp +52 -0
- data/libzmq/zeromq-2.1.7/src/mutex.hpp +121 -0
- data/libzmq/zeromq-2.1.7/src/named_session.cpp +85 -0
- data/libzmq/zeromq-2.1.7/src/named_session.hpp +57 -0
- data/libzmq/zeromq-2.1.7/src/object.cpp +467 -0
- data/libzmq/zeromq-2.1.7/src/object.hpp +127 -0
- data/libzmq/zeromq-2.1.7/src/options.cpp +336 -0
- data/libzmq/zeromq-2.1.7/src/options.hpp +87 -0
- data/libzmq/zeromq-2.1.7/src/own.cpp +214 -0
- data/libzmq/zeromq-2.1.7/src/own.hpp +140 -0
- data/libzmq/zeromq-2.1.7/src/pair.cpp +180 -0
- data/libzmq/zeromq-2.1.7/src/pair.hpp +76 -0
- data/libzmq/zeromq-2.1.7/src/pgm_receiver.cpp +259 -0
- data/libzmq/zeromq-2.1.7/src/pgm_receiver.hpp +129 -0
- data/libzmq/zeromq-2.1.7/src/pgm_sender.cpp +215 -0
- data/libzmq/zeromq-2.1.7/src/pgm_sender.hpp +105 -0
- data/libzmq/zeromq-2.1.7/src/pgm_socket.cpp +705 -0
- data/libzmq/zeromq-2.1.7/src/pgm_socket.hpp +118 -0
- data/libzmq/zeromq-2.1.7/src/pipe.cpp +409 -0
- data/libzmq/zeromq-2.1.7/src/pipe.hpp +214 -0
- data/libzmq/zeromq-2.1.7/src/platform.hpp.in +228 -0
- data/libzmq/zeromq-2.1.7/src/poll.cpp +180 -0
- data/libzmq/zeromq-2.1.7/src/poll.hpp +104 -0
- data/libzmq/zeromq-2.1.7/src/poller.hpp +73 -0
- data/libzmq/zeromq-2.1.7/src/poller_base.cpp +99 -0
- data/libzmq/zeromq-2.1.7/src/poller_base.hpp +84 -0
- data/libzmq/zeromq-2.1.7/src/pub.cpp +31 -0
- data/libzmq/zeromq-2.1.7/src/pub.hpp +44 -0
- data/libzmq/zeromq-2.1.7/src/pull.cpp +61 -0
- data/libzmq/zeromq-2.1.7/src/pull.hpp +60 -0
- data/libzmq/zeromq-2.1.7/src/push.cpp +62 -0
- data/libzmq/zeromq-2.1.7/src/push.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/reaper.cpp +121 -0
- data/libzmq/zeromq-2.1.7/src/reaper.hpp +77 -0
- data/libzmq/zeromq-2.1.7/src/rep.cpp +131 -0
- data/libzmq/zeromq-2.1.7/src/rep.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/req.cpp +121 -0
- data/libzmq/zeromq-2.1.7/src/req.hpp +58 -0
- data/libzmq/zeromq-2.1.7/src/select.cpp +211 -0
- data/libzmq/zeromq-2.1.7/src/select.hpp +116 -0
- data/libzmq/zeromq-2.1.7/src/semaphore.hpp +189 -0
- data/libzmq/zeromq-2.1.7/src/session.cpp +347 -0
- data/libzmq/zeromq-2.1.7/src/session.hpp +150 -0
- data/libzmq/zeromq-2.1.7/src/socket_base.cpp +811 -0
- data/libzmq/zeromq-2.1.7/src/socket_base.hpp +207 -0
- data/libzmq/zeromq-2.1.7/src/stdint.hpp +63 -0
- data/libzmq/zeromq-2.1.7/src/sub.cpp +75 -0
- data/libzmq/zeromq-2.1.7/src/sub.hpp +50 -0
- data/libzmq/zeromq-2.1.7/src/swap.cpp +325 -0
- data/libzmq/zeromq-2.1.7/src/swap.hpp +123 -0
- data/libzmq/zeromq-2.1.7/src/tcp_connecter.cpp +310 -0
- data/libzmq/zeromq-2.1.7/src/tcp_connecter.hpp +81 -0
- data/libzmq/zeromq-2.1.7/src/tcp_listener.cpp +371 -0
- data/libzmq/zeromq-2.1.7/src/tcp_listener.hpp +73 -0
- data/libzmq/zeromq-2.1.7/src/tcp_socket.cpp +228 -0
- data/libzmq/zeromq-2.1.7/src/tcp_socket.hpp +72 -0
- data/libzmq/zeromq-2.1.7/src/thread.cpp +97 -0
- data/libzmq/zeromq-2.1.7/src/thread.hpp +78 -0
- data/libzmq/zeromq-2.1.7/src/transient_session.cpp +41 -0
- data/libzmq/zeromq-2.1.7/src/transient_session.hpp +52 -0
- data/libzmq/zeromq-2.1.7/src/trie.cpp +181 -0
- data/libzmq/zeromq-2.1.7/src/trie.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/uuid.cpp +233 -0
- data/libzmq/zeromq-2.1.7/src/uuid.hpp +111 -0
- data/libzmq/zeromq-2.1.7/src/windows.hpp +79 -0
- data/libzmq/zeromq-2.1.7/src/wire.hpp +99 -0
- data/libzmq/zeromq-2.1.7/src/xpub.cpp +76 -0
- data/libzmq/zeromq-2.1.7/src/xpub.hpp +61 -0
- data/libzmq/zeromq-2.1.7/src/xrep.cpp +337 -0
- data/libzmq/zeromq-2.1.7/src/xrep.hpp +116 -0
- data/libzmq/zeromq-2.1.7/src/xreq.cpp +74 -0
- data/libzmq/zeromq-2.1.7/src/xreq.hpp +65 -0
- data/libzmq/zeromq-2.1.7/src/xsub.cpp +172 -0
- data/libzmq/zeromq-2.1.7/src/xsub.hpp +80 -0
- data/libzmq/zeromq-2.1.7/src/ypipe.hpp +209 -0
- data/libzmq/zeromq-2.1.7/src/yqueue.hpp +198 -0
- data/libzmq/zeromq-2.1.7/src/zmq.cpp +798 -0
- data/libzmq/zeromq-2.1.7/src/zmq_connecter.cpp +166 -0
- data/libzmq/zeromq-2.1.7/src/zmq_connecter.hpp +92 -0
- data/libzmq/zeromq-2.1.7/src/zmq_engine.cpp +220 -0
- data/libzmq/zeromq-2.1.7/src/zmq_engine.hpp +87 -0
- data/libzmq/zeromq-2.1.7/src/zmq_init.cpp +216 -0
- data/libzmq/zeromq-2.1.7/src/zmq_init.hpp +93 -0
- data/libzmq/zeromq-2.1.7/src/zmq_listener.cpp +78 -0
- data/libzmq/zeromq-2.1.7/src/zmq_listener.hpp +67 -0
- data/libzmq/zeromq-2.1.7/tests/Makefile.am +30 -0
- data/libzmq/zeromq-2.1.7/tests/Makefile.in +713 -0
- data/libzmq/zeromq-2.1.7/tests/test_hwm.cpp +68 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_inproc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_ipc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_tcp.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_inproc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_ipc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_tcp.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_shutdown_stress.cpp +87 -0
- data/libzmq/zeromq-2.1.7/tests/testutil.hpp +130 -0
- data/libzmq/zeromq-2.1.7/version.sh +21 -0
- data/libzmq/zeromq-2.1.7/zeromq.spec +139 -0
- metadata +348 -0
@@ -0,0 +1,162 @@
|
|
1
|
+
zmq_tcp(7)
|
2
|
+
==========
|
3
|
+
|
4
|
+
|
5
|
+
NAME
|
6
|
+
----
|
7
|
+
zmq_tcp - 0MQ unicast transport using TCP
|
8
|
+
|
9
|
+
|
10
|
+
SYNOPSIS
|
11
|
+
--------
|
12
|
+
TCP is an ubiquitous, reliable, unicast transport. When connecting distributed
|
13
|
+
applications over a network with 0MQ, using the TCP transport will likely be
|
14
|
+
your first choice.
|
15
|
+
|
16
|
+
|
17
|
+
ADDRESSING
|
18
|
+
----------
|
19
|
+
A 0MQ address string consists of two parts as follows:
|
20
|
+
'transport'`://`'endpoint'. The 'transport' part specifies the underlying
|
21
|
+
transport protocol to use, and for the TCP transport shall be set to `tcp`.
|
22
|
+
The meaning of the 'endpoint' part for the TCP transport is defined below.
|
23
|
+
|
24
|
+
|
25
|
+
Assigning a local address to a socket
|
26
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
27
|
+
When assigning a local address to a socket using _zmq_bind()_ with the 'tcp'
|
28
|
+
transport, the 'endpoint' shall be interpreted as an 'interface' followed by a
|
29
|
+
colon and the TCP port number to use.
|
30
|
+
|
31
|
+
An 'interface' may be specified by either of the following:
|
32
|
+
|
33
|
+
* The wild-card `*`, meaning all available interfaces.
|
34
|
+
* The primary IPv4 address assigned to the interface, in its numeric
|
35
|
+
representation.
|
36
|
+
* The interface name as defined by the operating system.
|
37
|
+
|
38
|
+
NOTE: Interface names are not standardised in any way and should be assumed to
|
39
|
+
be arbitrary and platform dependent. On Win32 platforms no short interface
|
40
|
+
names exist, thus only the primary IPv4 address may be used to specify an
|
41
|
+
'interface'.
|
42
|
+
|
43
|
+
Connecting a socket
|
44
|
+
~~~~~~~~~~~~~~~~~~~
|
45
|
+
When connecting a socket to a peer address using _zmq_connect()_ with the 'tcp'
|
46
|
+
transport, the 'endpoint' shall be interpreted as a 'peer address' followed by
|
47
|
+
a colon and the TCP port number to use.
|
48
|
+
|
49
|
+
A 'peer address' may be specified by either of the following:
|
50
|
+
|
51
|
+
* The DNS name of the peer.
|
52
|
+
* The IPv4 address of the peer, in it's numeric representation.
|
53
|
+
|
54
|
+
|
55
|
+
WIRE FORMAT
|
56
|
+
-----------
|
57
|
+
0MQ messages are transmitted over TCP in frames consisting of an encoded
|
58
|
+
'payload length', followed by a 'flags' field and the message body. The 'payload
|
59
|
+
length' is defined as the combined length in octets of the message body and the
|
60
|
+
'flags' field.
|
61
|
+
|
62
|
+
For frames with a 'payload length' not exceeding 254 octets, the 'payload
|
63
|
+
length' shall be encoded as a single octet. The minimum valid 'payload length'
|
64
|
+
of a frame is 1 octet, thus a 'payload length' of 0 octets is invalid and such
|
65
|
+
frames SHOULD be ignored.
|
66
|
+
|
67
|
+
For frames with a 'payload length' exceeding 254 octets, the 'payload length'
|
68
|
+
shall be encoded as a single octet with the value `255` followed by the
|
69
|
+
'payload length' represented as a 64-bit unsigned integer in network byte
|
70
|
+
order.
|
71
|
+
|
72
|
+
The 'flags' field consists of a single octet containing various control flags:
|
73
|
+
|
74
|
+
Bit 0 (MORE): _More message parts to follow_. A value of 0 indicates that there
|
75
|
+
are no more message parts to follow; or that the message being sent is not a
|
76
|
+
multi-part message. A value of 1 indicates that the message being sent is a
|
77
|
+
multi-part message and more message parts are to follow.
|
78
|
+
|
79
|
+
Bits 1-7: _Reserved_. Bits 1-7 are reserved for future expansion and MUST be
|
80
|
+
set to zero.
|
81
|
+
|
82
|
+
The following ABNF grammar represents a single 'frame':
|
83
|
+
|
84
|
+
....
|
85
|
+
frame = (length flags data)
|
86
|
+
length = OCTET / (escape 8OCTET)
|
87
|
+
flags = OCTET
|
88
|
+
escape = %xFF
|
89
|
+
data = *OCTET
|
90
|
+
....
|
91
|
+
|
92
|
+
The following diagram illustrates the layout of a frame with a 'payload length'
|
93
|
+
not exceeding 254 octets:
|
94
|
+
|
95
|
+
....
|
96
|
+
0 1 2 3
|
97
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
98
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
99
|
+
| Payload length| Flags | Message body ... |
|
100
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
101
|
+
| Message body ...
|
102
|
+
+-+-+-+-+-+-+- ...
|
103
|
+
....
|
104
|
+
|
105
|
+
The following diagram illustrates the layout of a frame with a 'payload length'
|
106
|
+
exceeding 254 octets:
|
107
|
+
|
108
|
+
....
|
109
|
+
0 1 2 3
|
110
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
111
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
112
|
+
| 0xff | Payload length ... |
|
113
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
114
|
+
| Payload length ... |
|
115
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
116
|
+
| Payload length| Flags | Message body ... |
|
117
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
118
|
+
| Message body ...
|
119
|
+
+-+-+-+-+-+-+-+ ...
|
120
|
+
....
|
121
|
+
|
122
|
+
|
123
|
+
EXAMPLES
|
124
|
+
--------
|
125
|
+
.Assigning a local address to a socket
|
126
|
+
----
|
127
|
+
/* TCP port 5555 on all available interfaces */
|
128
|
+
rc = zmq_bind(socket, "tcp://*:5555");
|
129
|
+
assert (rc == 0);
|
130
|
+
/* TCP port 5555 on the local loop-back interface on all platforms */
|
131
|
+
rc = zmq_bind(socket, "tcp://127.0.0.1:5555");
|
132
|
+
assert (rc == 0);
|
133
|
+
/* TCP port 5555 on the first Ethernet network interface on Linux */
|
134
|
+
rc = zmq_bind(socket, "tcp://eth0:5555");
|
135
|
+
assert (rc == 0);
|
136
|
+
----
|
137
|
+
|
138
|
+
.Connecting a socket
|
139
|
+
----
|
140
|
+
/* Connecting using an IP address */
|
141
|
+
rc = zmq_connect(socket, "tcp://192.168.1.1:5555");
|
142
|
+
assert (rc == 0);
|
143
|
+
/* Connecting using a DNS name */
|
144
|
+
rc = zmq_connect(socket, "tcp://server1:5555");
|
145
|
+
assert (rc == 0);
|
146
|
+
----
|
147
|
+
|
148
|
+
|
149
|
+
SEE ALSO
|
150
|
+
--------
|
151
|
+
linkzmq:zmq_bind[3]
|
152
|
+
linkzmq:zmq_connect[3]
|
153
|
+
linkzmq:zmq_pgm[7]
|
154
|
+
linkzmq:zmq_ipc[7]
|
155
|
+
linkzmq:zmq_inproc[7]
|
156
|
+
linkzmq:zmq[7]
|
157
|
+
|
158
|
+
|
159
|
+
AUTHORS
|
160
|
+
-------
|
161
|
+
This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
|
162
|
+
Martin Lucina <mato@kotelna.sk>.
|
@@ -0,0 +1,135 @@
|
|
1
|
+
'\" t
|
2
|
+
.\" Title: zmq_term
|
3
|
+
.\" Author: [see the "AUTHORS" section]
|
4
|
+
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
5
|
+
.\" Date: 05/07/2011
|
6
|
+
.\" Manual: 0MQ Manual
|
7
|
+
.\" Source: 0MQ 2.1.6
|
8
|
+
.\" Language: English
|
9
|
+
.\"
|
10
|
+
.TH "ZMQ_TERM" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
|
11
|
+
.\" -----------------------------------------------------------------
|
12
|
+
.\" * Define some portability stuff
|
13
|
+
.\" -----------------------------------------------------------------
|
14
|
+
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
15
|
+
.\" http://bugs.debian.org/507673
|
16
|
+
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
17
|
+
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
18
|
+
.ie \n(.g .ds Aq \(aq
|
19
|
+
.el .ds Aq '
|
20
|
+
.\" -----------------------------------------------------------------
|
21
|
+
.\" * set default formatting
|
22
|
+
.\" -----------------------------------------------------------------
|
23
|
+
.\" disable hyphenation
|
24
|
+
.nh
|
25
|
+
.\" disable justification (adjust text to left margin only)
|
26
|
+
.ad l
|
27
|
+
.\" -----------------------------------------------------------------
|
28
|
+
.\" * MAIN CONTENT STARTS HERE *
|
29
|
+
.\" -----------------------------------------------------------------
|
30
|
+
.SH "NAME"
|
31
|
+
zmq_term \- terminate 0MQ context
|
32
|
+
.SH "SYNOPSIS"
|
33
|
+
.sp
|
34
|
+
\fBint zmq_term (void \fR\fB\fI*context\fR\fR\fB);\fR
|
35
|
+
.SH "DESCRIPTION"
|
36
|
+
.sp
|
37
|
+
The \fIzmq_term()\fR function shall terminate the 0MQ context \fIcontext\fR\&.
|
38
|
+
.sp
|
39
|
+
Context termination is performed in the following steps:
|
40
|
+
.sp
|
41
|
+
.RS 4
|
42
|
+
.ie n \{\
|
43
|
+
\h'-04' 1.\h'+01'\c
|
44
|
+
.\}
|
45
|
+
.el \{\
|
46
|
+
.sp -1
|
47
|
+
.IP " 1." 4.2
|
48
|
+
.\}
|
49
|
+
Any blocking operations currently in progress on sockets open within
|
50
|
+
\fIcontext\fR
|
51
|
+
shall return immediately with an error code of ETERM\&. With the exception of
|
52
|
+
\fIzmq_close()\fR, any further operations on sockets open within
|
53
|
+
\fIcontext\fR
|
54
|
+
shall fail with an error code of ETERM\&.
|
55
|
+
.RE
|
56
|
+
.sp
|
57
|
+
.RS 4
|
58
|
+
.ie n \{\
|
59
|
+
\h'-04' 2.\h'+01'\c
|
60
|
+
.\}
|
61
|
+
.el \{\
|
62
|
+
.sp -1
|
63
|
+
.IP " 2." 4.2
|
64
|
+
.\}
|
65
|
+
After interrupting all blocking calls,
|
66
|
+
\fIzmq_term()\fR
|
67
|
+
shall
|
68
|
+
\fIblock\fR
|
69
|
+
until the following conditions are satisfied:
|
70
|
+
.sp
|
71
|
+
.RS 4
|
72
|
+
.ie n \{\
|
73
|
+
\h'-04'\(bu\h'+03'\c
|
74
|
+
.\}
|
75
|
+
.el \{\
|
76
|
+
.sp -1
|
77
|
+
.IP \(bu 2.3
|
78
|
+
.\}
|
79
|
+
All sockets open within
|
80
|
+
\fIcontext\fR
|
81
|
+
have been closed with
|
82
|
+
\fIzmq_close()\fR\&.
|
83
|
+
.RE
|
84
|
+
.sp
|
85
|
+
.RS 4
|
86
|
+
.ie n \{\
|
87
|
+
\h'-04'\(bu\h'+03'\c
|
88
|
+
.\}
|
89
|
+
.el \{\
|
90
|
+
.sp -1
|
91
|
+
.IP \(bu 2.3
|
92
|
+
.\}
|
93
|
+
For each socket within
|
94
|
+
\fIcontext\fR, all messages sent by the application with
|
95
|
+
\fIzmq_send()\fR
|
96
|
+
have either been physically transferred to a network peer, or the socket\(cqs linger period set with the
|
97
|
+
\fIZMQ_LINGER\fR
|
98
|
+
socket option has expired\&.
|
99
|
+
.RE
|
100
|
+
.RE
|
101
|
+
.sp
|
102
|
+
For further details regarding socket linger behaviour refer to the \fIZMQ_LINGER\fR option in \fBzmq_setsockopt\fR(3)\&.
|
103
|
+
.SH "RETURN VALUE"
|
104
|
+
.sp
|
105
|
+
The \fIzmq_term()\fR function shall return zero if successful\&. Otherwise it shall return \-1 and set \fIerrno\fR to one of the values defined below\&.
|
106
|
+
.SH "ERRORS"
|
107
|
+
.PP
|
108
|
+
\fBEFAULT\fR
|
109
|
+
.RS 4
|
110
|
+
The provided
|
111
|
+
\fIcontext\fR
|
112
|
+
was invalid\&.
|
113
|
+
.RE
|
114
|
+
.PP
|
115
|
+
\fBEINTR\fR
|
116
|
+
.RS 4
|
117
|
+
Termination was interrupted by a signal\&. It can be restarted if needed\&.
|
118
|
+
.RE
|
119
|
+
.SH "SEE ALSO"
|
120
|
+
.sp
|
121
|
+
\fBzmq\fR(7) \fBzmq_init\fR(3) \fBzmq_close\fR(3) \fBzmq_setsockopt\fR(3)
|
122
|
+
.SH "AUTHORS"
|
123
|
+
.sp
|
124
|
+
This 0MQ manual page was written by Martin Sustrik <\m[blue]\fBsustrik@250bpm\&.com\fR\m[]\&\s-2\u[1]\d\s+2> and Martin Lucina <\m[blue]\fBmato@kotelna\&.sk\fR\m[]\&\s-2\u[2]\d\s+2>\&.
|
125
|
+
.SH "NOTES"
|
126
|
+
.IP " 1." 4
|
127
|
+
sustrik@250bpm.com
|
128
|
+
.RS 4
|
129
|
+
\%mailto:sustrik@250bpm.com
|
130
|
+
.RE
|
131
|
+
.IP " 2." 4
|
132
|
+
mato@kotelna.sk
|
133
|
+
.RS 4
|
134
|
+
\%mailto:mato@kotelna.sk
|
135
|
+
.RE
|
@@ -0,0 +1,672 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<meta name="generator" content="AsciiDoc 8.5.2" />
|
7
|
+
<title>zmq_term(3)</title>
|
8
|
+
<style type="text/css">
|
9
|
+
/* Debug borders */
|
10
|
+
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
|
11
|
+
/*
|
12
|
+
border: 1px solid red;
|
13
|
+
*/
|
14
|
+
}
|
15
|
+
|
16
|
+
body {
|
17
|
+
margin: 1em 5% 1em 5%;
|
18
|
+
}
|
19
|
+
|
20
|
+
a {
|
21
|
+
color: blue;
|
22
|
+
text-decoration: underline;
|
23
|
+
}
|
24
|
+
a:visited {
|
25
|
+
color: fuchsia;
|
26
|
+
}
|
27
|
+
|
28
|
+
em {
|
29
|
+
font-style: italic;
|
30
|
+
color: navy;
|
31
|
+
}
|
32
|
+
|
33
|
+
strong {
|
34
|
+
font-weight: bold;
|
35
|
+
color: #083194;
|
36
|
+
}
|
37
|
+
|
38
|
+
tt {
|
39
|
+
color: navy;
|
40
|
+
}
|
41
|
+
|
42
|
+
h1, h2, h3, h4, h5, h6 {
|
43
|
+
color: #527bbd;
|
44
|
+
font-family: sans-serif;
|
45
|
+
margin-top: 1.2em;
|
46
|
+
margin-bottom: 0.5em;
|
47
|
+
line-height: 1.3;
|
48
|
+
}
|
49
|
+
|
50
|
+
h1, h2, h3 {
|
51
|
+
border-bottom: 2px solid silver;
|
52
|
+
}
|
53
|
+
h2 {
|
54
|
+
padding-top: 0.5em;
|
55
|
+
}
|
56
|
+
h3 {
|
57
|
+
float: left;
|
58
|
+
}
|
59
|
+
h3 + * {
|
60
|
+
clear: left;
|
61
|
+
}
|
62
|
+
|
63
|
+
div.sectionbody {
|
64
|
+
font-family: serif;
|
65
|
+
margin-left: 0;
|
66
|
+
}
|
67
|
+
|
68
|
+
hr {
|
69
|
+
border: 1px solid silver;
|
70
|
+
}
|
71
|
+
|
72
|
+
p {
|
73
|
+
margin-top: 0.5em;
|
74
|
+
margin-bottom: 0.5em;
|
75
|
+
}
|
76
|
+
|
77
|
+
ul, ol, li > p {
|
78
|
+
margin-top: 0;
|
79
|
+
}
|
80
|
+
|
81
|
+
pre {
|
82
|
+
padding: 0;
|
83
|
+
margin: 0;
|
84
|
+
}
|
85
|
+
|
86
|
+
span#author {
|
87
|
+
color: #527bbd;
|
88
|
+
font-family: sans-serif;
|
89
|
+
font-weight: bold;
|
90
|
+
font-size: 1.1em;
|
91
|
+
}
|
92
|
+
span#email {
|
93
|
+
}
|
94
|
+
span#revnumber, span#revdate, span#revremark {
|
95
|
+
font-family: sans-serif;
|
96
|
+
}
|
97
|
+
|
98
|
+
div#footer {
|
99
|
+
font-family: sans-serif;
|
100
|
+
font-size: small;
|
101
|
+
border-top: 2px solid silver;
|
102
|
+
padding-top: 0.5em;
|
103
|
+
margin-top: 4.0em;
|
104
|
+
}
|
105
|
+
div#footer-text {
|
106
|
+
float: left;
|
107
|
+
padding-bottom: 0.5em;
|
108
|
+
}
|
109
|
+
div#footer-badges {
|
110
|
+
float: right;
|
111
|
+
padding-bottom: 0.5em;
|
112
|
+
}
|
113
|
+
|
114
|
+
div#preamble {
|
115
|
+
margin-top: 1.5em;
|
116
|
+
margin-bottom: 1.5em;
|
117
|
+
}
|
118
|
+
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
|
119
|
+
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
|
120
|
+
div.admonitionblock {
|
121
|
+
margin-top: 1.0em;
|
122
|
+
margin-bottom: 1.5em;
|
123
|
+
}
|
124
|
+
div.admonitionblock {
|
125
|
+
margin-top: 2.0em;
|
126
|
+
margin-bottom: 2.0em;
|
127
|
+
margin-right: 10%;
|
128
|
+
color: #606060;
|
129
|
+
}
|
130
|
+
|
131
|
+
div.content { /* Block element content. */
|
132
|
+
padding: 0;
|
133
|
+
}
|
134
|
+
|
135
|
+
/* Block element titles. */
|
136
|
+
div.title, caption.title {
|
137
|
+
color: #527bbd;
|
138
|
+
font-family: sans-serif;
|
139
|
+
font-weight: bold;
|
140
|
+
text-align: left;
|
141
|
+
margin-top: 1.0em;
|
142
|
+
margin-bottom: 0.5em;
|
143
|
+
}
|
144
|
+
div.title + * {
|
145
|
+
margin-top: 0;
|
146
|
+
}
|
147
|
+
|
148
|
+
td div.title:first-child {
|
149
|
+
margin-top: 0.0em;
|
150
|
+
}
|
151
|
+
div.content div.title:first-child {
|
152
|
+
margin-top: 0.0em;
|
153
|
+
}
|
154
|
+
div.content + div.title {
|
155
|
+
margin-top: 0.0em;
|
156
|
+
}
|
157
|
+
|
158
|
+
div.sidebarblock > div.content {
|
159
|
+
background: #ffffee;
|
160
|
+
border: 1px solid silver;
|
161
|
+
padding: 0.5em;
|
162
|
+
}
|
163
|
+
|
164
|
+
div.listingblock > div.content {
|
165
|
+
border: 1px solid silver;
|
166
|
+
background: #f4f4f4;
|
167
|
+
padding: 0.5em;
|
168
|
+
}
|
169
|
+
|
170
|
+
div.quoteblock, div.verseblock {
|
171
|
+
padding-left: 1.0em;
|
172
|
+
margin-left: 1.0em;
|
173
|
+
margin-right: 10%;
|
174
|
+
border-left: 5px solid #dddddd;
|
175
|
+
color: #777777;
|
176
|
+
}
|
177
|
+
|
178
|
+
div.quoteblock > div.attribution {
|
179
|
+
padding-top: 0.5em;
|
180
|
+
text-align: right;
|
181
|
+
}
|
182
|
+
|
183
|
+
div.verseblock > div.content {
|
184
|
+
white-space: pre;
|
185
|
+
}
|
186
|
+
div.verseblock > div.attribution {
|
187
|
+
padding-top: 0.75em;
|
188
|
+
text-align: left;
|
189
|
+
}
|
190
|
+
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
|
191
|
+
div.verseblock + div.attribution {
|
192
|
+
text-align: left;
|
193
|
+
}
|
194
|
+
|
195
|
+
div.admonitionblock .icon {
|
196
|
+
vertical-align: top;
|
197
|
+
font-size: 1.1em;
|
198
|
+
font-weight: bold;
|
199
|
+
text-decoration: underline;
|
200
|
+
color: #527bbd;
|
201
|
+
padding-right: 0.5em;
|
202
|
+
}
|
203
|
+
div.admonitionblock td.content {
|
204
|
+
padding-left: 0.5em;
|
205
|
+
border-left: 3px solid #dddddd;
|
206
|
+
}
|
207
|
+
|
208
|
+
div.exampleblock > div.content {
|
209
|
+
border-left: 3px solid #dddddd;
|
210
|
+
padding-left: 0.5em;
|
211
|
+
}
|
212
|
+
|
213
|
+
div.imageblock div.content { padding-left: 0; }
|
214
|
+
span.image img { border-style: none; }
|
215
|
+
a.image:visited { color: white; }
|
216
|
+
|
217
|
+
dl {
|
218
|
+
margin-top: 0.8em;
|
219
|
+
margin-bottom: 0.8em;
|
220
|
+
}
|
221
|
+
dt {
|
222
|
+
margin-top: 0.5em;
|
223
|
+
margin-bottom: 0;
|
224
|
+
font-style: normal;
|
225
|
+
color: navy;
|
226
|
+
}
|
227
|
+
dd > *:first-child {
|
228
|
+
margin-top: 0.1em;
|
229
|
+
}
|
230
|
+
|
231
|
+
ul, ol {
|
232
|
+
list-style-position: outside;
|
233
|
+
}
|
234
|
+
ol.arabic {
|
235
|
+
list-style-type: decimal;
|
236
|
+
}
|
237
|
+
ol.loweralpha {
|
238
|
+
list-style-type: lower-alpha;
|
239
|
+
}
|
240
|
+
ol.upperalpha {
|
241
|
+
list-style-type: upper-alpha;
|
242
|
+
}
|
243
|
+
ol.lowerroman {
|
244
|
+
list-style-type: lower-roman;
|
245
|
+
}
|
246
|
+
ol.upperroman {
|
247
|
+
list-style-type: upper-roman;
|
248
|
+
}
|
249
|
+
|
250
|
+
div.compact ul, div.compact ol,
|
251
|
+
div.compact p, div.compact p,
|
252
|
+
div.compact div, div.compact div {
|
253
|
+
margin-top: 0.1em;
|
254
|
+
margin-bottom: 0.1em;
|
255
|
+
}
|
256
|
+
|
257
|
+
div.tableblock > table {
|
258
|
+
border: 3px solid #527bbd;
|
259
|
+
}
|
260
|
+
thead, p.table.header {
|
261
|
+
font-family: sans-serif;
|
262
|
+
font-weight: bold;
|
263
|
+
}
|
264
|
+
tfoot {
|
265
|
+
font-weight: bold;
|
266
|
+
}
|
267
|
+
td > div.verse {
|
268
|
+
white-space: pre;
|
269
|
+
}
|
270
|
+
p.table {
|
271
|
+
margin-top: 0;
|
272
|
+
}
|
273
|
+
/* Because the table frame attribute is overriden by CSS in most browsers. */
|
274
|
+
div.tableblock > table[frame="void"] {
|
275
|
+
border-style: none;
|
276
|
+
}
|
277
|
+
div.tableblock > table[frame="hsides"] {
|
278
|
+
border-left-style: none;
|
279
|
+
border-right-style: none;
|
280
|
+
}
|
281
|
+
div.tableblock > table[frame="vsides"] {
|
282
|
+
border-top-style: none;
|
283
|
+
border-bottom-style: none;
|
284
|
+
}
|
285
|
+
|
286
|
+
|
287
|
+
div.hdlist {
|
288
|
+
margin-top: 0.8em;
|
289
|
+
margin-bottom: 0.8em;
|
290
|
+
}
|
291
|
+
div.hdlist tr {
|
292
|
+
padding-bottom: 15px;
|
293
|
+
}
|
294
|
+
dt.hdlist1.strong, td.hdlist1.strong {
|
295
|
+
font-weight: bold;
|
296
|
+
}
|
297
|
+
td.hdlist1 {
|
298
|
+
vertical-align: top;
|
299
|
+
font-style: normal;
|
300
|
+
padding-right: 0.8em;
|
301
|
+
color: navy;
|
302
|
+
}
|
303
|
+
td.hdlist2 {
|
304
|
+
vertical-align: top;
|
305
|
+
}
|
306
|
+
div.hdlist.compact tr {
|
307
|
+
margin: 0;
|
308
|
+
padding-bottom: 0;
|
309
|
+
}
|
310
|
+
|
311
|
+
.comment {
|
312
|
+
background: yellow;
|
313
|
+
}
|
314
|
+
|
315
|
+
.footnote, .footnoteref {
|
316
|
+
font-size: 0.8em;
|
317
|
+
}
|
318
|
+
|
319
|
+
span.footnote, span.footnoteref {
|
320
|
+
vertical-align: super;
|
321
|
+
}
|
322
|
+
|
323
|
+
#footnotes {
|
324
|
+
margin: 20px 0 20px 0;
|
325
|
+
padding: 7px 0 0 0;
|
326
|
+
}
|
327
|
+
|
328
|
+
#footnotes div.footnote {
|
329
|
+
margin: 0 0 5px 0;
|
330
|
+
}
|
331
|
+
|
332
|
+
#footnotes hr {
|
333
|
+
border: none;
|
334
|
+
border-top: 1px solid silver;
|
335
|
+
height: 1px;
|
336
|
+
text-align: left;
|
337
|
+
margin-left: 0;
|
338
|
+
width: 20%;
|
339
|
+
min-width: 100px;
|
340
|
+
}
|
341
|
+
|
342
|
+
|
343
|
+
@media print {
|
344
|
+
div#footer-badges { display: none; }
|
345
|
+
}
|
346
|
+
|
347
|
+
div#toc {
|
348
|
+
margin-bottom: 2.5em;
|
349
|
+
}
|
350
|
+
|
351
|
+
div#toctitle {
|
352
|
+
color: #527bbd;
|
353
|
+
font-family: sans-serif;
|
354
|
+
font-size: 1.1em;
|
355
|
+
font-weight: bold;
|
356
|
+
margin-top: 1.0em;
|
357
|
+
margin-bottom: 0.1em;
|
358
|
+
}
|
359
|
+
|
360
|
+
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
|
361
|
+
margin-top: 0;
|
362
|
+
margin-bottom: 0;
|
363
|
+
}
|
364
|
+
div.toclevel2 {
|
365
|
+
margin-left: 2em;
|
366
|
+
font-size: 0.9em;
|
367
|
+
}
|
368
|
+
div.toclevel3 {
|
369
|
+
margin-left: 4em;
|
370
|
+
font-size: 0.9em;
|
371
|
+
}
|
372
|
+
div.toclevel4 {
|
373
|
+
margin-left: 6em;
|
374
|
+
font-size: 0.9em;
|
375
|
+
}
|
376
|
+
/* Overrides for manpage documents */
|
377
|
+
h1 {
|
378
|
+
padding-top: 0.5em;
|
379
|
+
padding-bottom: 0.5em;
|
380
|
+
border-top: 2px solid silver;
|
381
|
+
border-bottom: 2px solid silver;
|
382
|
+
}
|
383
|
+
h2 {
|
384
|
+
border-style: none;
|
385
|
+
}
|
386
|
+
div.sectionbody {
|
387
|
+
margin-left: 5%;
|
388
|
+
}
|
389
|
+
|
390
|
+
@media print {
|
391
|
+
div#toc { display: none; }
|
392
|
+
}
|
393
|
+
|
394
|
+
/* Workarounds for IE6's broken and incomplete CSS2. */
|
395
|
+
|
396
|
+
div.sidebar-content {
|
397
|
+
background: #ffffee;
|
398
|
+
border: 1px solid silver;
|
399
|
+
padding: 0.5em;
|
400
|
+
}
|
401
|
+
div.sidebar-title, div.image-title {
|
402
|
+
color: #527bbd;
|
403
|
+
font-family: sans-serif;
|
404
|
+
font-weight: bold;
|
405
|
+
margin-top: 0.0em;
|
406
|
+
margin-bottom: 0.5em;
|
407
|
+
}
|
408
|
+
|
409
|
+
div.listingblock div.content {
|
410
|
+
border: 1px solid silver;
|
411
|
+
background: #f4f4f4;
|
412
|
+
padding: 0.5em;
|
413
|
+
}
|
414
|
+
|
415
|
+
div.quoteblock-attribution {
|
416
|
+
padding-top: 0.5em;
|
417
|
+
text-align: right;
|
418
|
+
}
|
419
|
+
|
420
|
+
div.verseblock-content {
|
421
|
+
white-space: pre;
|
422
|
+
}
|
423
|
+
div.verseblock-attribution {
|
424
|
+
padding-top: 0.75em;
|
425
|
+
text-align: left;
|
426
|
+
}
|
427
|
+
|
428
|
+
div.exampleblock-content {
|
429
|
+
border-left: 3px solid #dddddd;
|
430
|
+
padding-left: 0.5em;
|
431
|
+
}
|
432
|
+
|
433
|
+
/* IE6 sets dynamically generated links as visited. */
|
434
|
+
div#toc a:visited { color: blue; }
|
435
|
+
</style>
|
436
|
+
<script type="text/javascript">
|
437
|
+
/*<+'])');
|
481
|
+
// Function that scans the DOM tree for header elements (the DOM2
|
482
|
+
// nodeIterator API would be a better technique but not supported by all
|
483
|
+
// browsers).
|
484
|
+
var iterate = function (el) {
|
485
|
+
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
486
|
+
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
|
487
|
+
var mo = re.exec(i.tagName);
|
488
|
+
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
|
489
|
+
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
|
490
|
+
}
|
491
|
+
iterate(i);
|
492
|
+
}
|
493
|
+
}
|
494
|
+
}
|
495
|
+
iterate(el);
|
496
|
+
return result;
|
497
|
+
}
|
498
|
+
|
499
|
+
var toc = document.getElementById("toc");
|
500
|
+
var entries = tocEntries(document.getElementById("content"), toclevels);
|
501
|
+
for (var i = 0; i < entries.length; ++i) {
|
502
|
+
var entry = entries[i];
|
503
|
+
if (entry.element.id == "")
|
504
|
+
entry.element.id = "_toc_" + i;
|
505
|
+
var a = document.createElement("a");
|
506
|
+
a.href = "#" + entry.element.id;
|
507
|
+
a.appendChild(document.createTextNode(entry.text));
|
508
|
+
var div = document.createElement("div");
|
509
|
+
div.appendChild(a);
|
510
|
+
div.className = "toclevel" + entry.toclevel;
|
511
|
+
toc.appendChild(div);
|
512
|
+
}
|
513
|
+
if (entries.length == 0)
|
514
|
+
toc.parentNode.removeChild(toc);
|
515
|
+
},
|
516
|
+
|
517
|
+
|
518
|
+
/////////////////////////////////////////////////////////////////////
|
519
|
+
// Footnotes generator
|
520
|
+
/////////////////////////////////////////////////////////////////////
|
521
|
+
|
522
|
+
/* Based on footnote generation code from:
|
523
|
+
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
|
524
|
+
*/
|
525
|
+
|
526
|
+
footnotes: function () {
|
527
|
+
var cont = document.getElementById("content");
|
528
|
+
var noteholder = document.getElementById("footnotes");
|
529
|
+
var spans = cont.getElementsByTagName("span");
|
530
|
+
var refs = {};
|
531
|
+
var n = 0;
|
532
|
+
for (i=0; i<spans.length; i++) {
|
533
|
+
if (spans[i].className == "footnote") {
|
534
|
+
n++;
|
535
|
+
// Use [\s\S] in place of . so multi-line matches work.
|
536
|
+
// Because JavaScript has no s (dotall) regex flag.
|
537
|
+
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
|
538
|
+
noteholder.innerHTML +=
|
539
|
+
"<div class='footnote' id='_footnote_" + n + "'>" +
|
540
|
+
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
|
541
|
+
n + "</a>. " + note + "</div>";
|
542
|
+
spans[i].innerHTML =
|
543
|
+
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
|
544
|
+
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
545
|
+
var id =spans[i].getAttribute("id");
|
546
|
+
if (id != null) refs["#"+id] = n;
|
547
|
+
}
|
548
|
+
}
|
549
|
+
if (n == 0)
|
550
|
+
noteholder.parentNode.removeChild(noteholder);
|
551
|
+
else {
|
552
|
+
// Process footnoterefs.
|
553
|
+
for (i=0; i<spans.length; i++) {
|
554
|
+
if (spans[i].className == "footnoteref") {
|
555
|
+
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
|
556
|
+
href = href.match(/#.*/)[0]; // Because IE return full URL.
|
557
|
+
n = refs[href];
|
558
|
+
spans[i].innerHTML =
|
559
|
+
"[<a href='#_footnote_" + n +
|
560
|
+
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
561
|
+
}
|
562
|
+
}
|
563
|
+
}
|
564
|
+
}
|
565
|
+
|
566
|
+
}
|
567
|
+
/*]]>*/
|
568
|
+
</script>
|
569
|
+
</head>
|
570
|
+
<body>
|
571
|
+
<div id="header">
|
572
|
+
<h1>
|
573
|
+
zmq_term(3) Manual Page
|
574
|
+
</h1>
|
575
|
+
<h2>NAME</h2>
|
576
|
+
<div class="sectionbody">
|
577
|
+
<p>zmq_term -
|
578
|
+
terminate 0MQ context
|
579
|
+
</p>
|
580
|
+
</div>
|
581
|
+
</div>
|
582
|
+
<div id="content">
|
583
|
+
<h2 id="_synopsis">SYNOPSIS</h2>
|
584
|
+
<div class="sectionbody">
|
585
|
+
<div class="paragraph"><p><strong>int zmq_term (void <em>*context</em>);</strong></p></div>
|
586
|
+
</div>
|
587
|
+
<h2 id="_description">DESCRIPTION</h2>
|
588
|
+
<div class="sectionbody">
|
589
|
+
<div class="paragraph"><p>The <em>zmq_term()</em> function shall terminate the ØMQ context <em>context</em>.</p></div>
|
590
|
+
<div class="paragraph"><p>Context termination is performed in the following steps:</p></div>
|
591
|
+
<div class="olist arabic"><ol class="arabic">
|
592
|
+
<li>
|
593
|
+
<p>
|
594
|
+
Any blocking operations currently in progress on sockets open within
|
595
|
+
<em>context</em> shall return immediately with an error code of ETERM. With the
|
596
|
+
exception of <em>zmq_close()</em>, any further operations on sockets open within
|
597
|
+
<em>context</em> shall fail with an error code of ETERM.
|
598
|
+
</p>
|
599
|
+
</li>
|
600
|
+
<li>
|
601
|
+
<p>
|
602
|
+
After interrupting all blocking calls, <em>zmq_term()</em> shall <em>block</em> until the
|
603
|
+
following conditions are satisfied:
|
604
|
+
</p>
|
605
|
+
<div class="ulist"><ul>
|
606
|
+
<li>
|
607
|
+
<p>
|
608
|
+
All sockets open within <em>context</em> have been closed with <em>zmq_close()</em>.
|
609
|
+
</p>
|
610
|
+
</li>
|
611
|
+
<li>
|
612
|
+
<p>
|
613
|
+
For each socket within <em>context</em>, all messages sent by the application
|
614
|
+
with <em>zmq_send()</em> have either been physically transferred to a network
|
615
|
+
peer, or the socket’s linger period set with the <em>ZMQ_LINGER</em> socket
|
616
|
+
option has expired.
|
617
|
+
</p>
|
618
|
+
</li>
|
619
|
+
</ul></div>
|
620
|
+
</li>
|
621
|
+
</ol></div>
|
622
|
+
<div class="paragraph"><p>For further details regarding socket linger behaviour refer to the <em>ZMQ_LINGER</em>
|
623
|
+
option in <a href="zmq_setsockopt.html">zmq_setsockopt(3)</a>.</p></div>
|
624
|
+
</div>
|
625
|
+
<h2 id="_return_value">RETURN VALUE</h2>
|
626
|
+
<div class="sectionbody">
|
627
|
+
<div class="paragraph"><p>The <em>zmq_term()</em> function shall return zero if successful. Otherwise it shall
|
628
|
+
return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
|
629
|
+
</div>
|
630
|
+
<h2 id="_errors">ERRORS</h2>
|
631
|
+
<div class="sectionbody">
|
632
|
+
<div class="dlist"><dl>
|
633
|
+
<dt class="hdlist1">
|
634
|
+
<strong>EFAULT</strong>
|
635
|
+
</dt>
|
636
|
+
<dd>
|
637
|
+
<p>
|
638
|
+
The provided <em>context</em> was invalid.
|
639
|
+
</p>
|
640
|
+
</dd>
|
641
|
+
<dt class="hdlist1">
|
642
|
+
<strong>EINTR</strong>
|
643
|
+
</dt>
|
644
|
+
<dd>
|
645
|
+
<p>
|
646
|
+
Termination was interrupted by a signal. It can be restarted if needed.
|
647
|
+
</p>
|
648
|
+
</dd>
|
649
|
+
</dl></div>
|
650
|
+
</div>
|
651
|
+
<h2 id="_see_also">SEE ALSO</h2>
|
652
|
+
<div class="sectionbody">
|
653
|
+
<div class="paragraph"><p><a href="zmq.html">zmq(7)</a>
|
654
|
+
<a href="zmq_init.html">zmq_init(3)</a>
|
655
|
+
<a href="zmq_close.html">zmq_close(3)</a>
|
656
|
+
<a href="zmq_setsockopt.html">zmq_setsockopt(3)</a></p></div>
|
657
|
+
</div>
|
658
|
+
<h2 id="_authors">AUTHORS</h2>
|
659
|
+
<div class="sectionbody">
|
660
|
+
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik <<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>> and
|
661
|
+
Martin Lucina <<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>>.</p></div>
|
662
|
+
</div>
|
663
|
+
</div>
|
664
|
+
<div id="footnotes"><hr /></div>
|
665
|
+
<div id="footer">
|
666
|
+
<div id="footer-text">
|
667
|
+
ØMQ 2.1.6<br />
|
668
|
+
Last updated 2011-05-07 07:13:32 CEST
|
669
|
+
</div>
|
670
|
+
</div>
|
671
|
+
</body>
|
672
|
+
</html>
|