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,127 @@
|
|
1
|
+
/*
|
2
|
+
Copyright (c) 2007-2011 iMatix Corporation
|
3
|
+
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
4
|
+
|
5
|
+
This file is part of 0MQ.
|
6
|
+
|
7
|
+
0MQ is free software; you can redistribute it and/or modify it under
|
8
|
+
the terms of the GNU Lesser General Public License as published by
|
9
|
+
the Free Software Foundation; either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
0MQ is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU Lesser General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU Lesser General Public License
|
18
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
*/
|
20
|
+
|
21
|
+
#ifndef __ZMQ_OBJECT_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_OBJECT_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "../include/zmq.h"
|
25
|
+
|
26
|
+
#include "stdint.hpp"
|
27
|
+
#include "blob.hpp"
|
28
|
+
|
29
|
+
namespace zmq
|
30
|
+
{
|
31
|
+
// Base class for all objects that participate in inter-thread
|
32
|
+
// communication.
|
33
|
+
|
34
|
+
class object_t
|
35
|
+
{
|
36
|
+
public:
|
37
|
+
|
38
|
+
object_t (class ctx_t *ctx_, uint32_t tid_);
|
39
|
+
object_t (object_t *parent_);
|
40
|
+
virtual ~object_t ();
|
41
|
+
|
42
|
+
uint32_t get_tid ();
|
43
|
+
ctx_t *get_ctx ();
|
44
|
+
void process_command (struct command_t &cmd_);
|
45
|
+
|
46
|
+
protected:
|
47
|
+
|
48
|
+
// Using following function, socket is able to access global
|
49
|
+
// repository of inproc endpoints.
|
50
|
+
int register_endpoint (const char *addr_, struct endpoint_t &endpoint_);
|
51
|
+
void unregister_endpoints (class socket_base_t *socket_);
|
52
|
+
struct endpoint_t find_endpoint (const char *addr_);
|
53
|
+
void destroy_socket (class socket_base_t *socket_);
|
54
|
+
|
55
|
+
// Logs an message.
|
56
|
+
void log (const char *format_, ...);
|
57
|
+
|
58
|
+
// Chooses least loaded I/O thread.
|
59
|
+
class io_thread_t *choose_io_thread (uint64_t affinity_);
|
60
|
+
|
61
|
+
// Derived object can use these functions to send commands
|
62
|
+
// to other objects.
|
63
|
+
void send_stop ();
|
64
|
+
void send_plug (class own_t *destination_,
|
65
|
+
bool inc_seqnum_ = true);
|
66
|
+
void send_own (class own_t *destination_,
|
67
|
+
class own_t *object_);
|
68
|
+
void send_attach (class session_t *destination_,
|
69
|
+
struct i_engine *engine_, const blob_t &peer_identity_,
|
70
|
+
bool inc_seqnum_ = true);
|
71
|
+
void send_bind (class own_t *destination_,
|
72
|
+
class reader_t *in_pipe_, class writer_t *out_pipe_,
|
73
|
+
const blob_t &peer_identity_, bool inc_seqnum_ = true);
|
74
|
+
void send_activate_reader (class reader_t *destination_);
|
75
|
+
void send_activate_writer (class writer_t *destination_,
|
76
|
+
uint64_t msgs_read_);
|
77
|
+
void send_pipe_term (class writer_t *destination_);
|
78
|
+
void send_pipe_term_ack (class reader_t *destination_);
|
79
|
+
void send_term_req (class own_t *destination_,
|
80
|
+
class own_t *object_);
|
81
|
+
void send_term (class own_t *destination_, int linger_);
|
82
|
+
void send_term_ack (class own_t *destination_);
|
83
|
+
void send_reap (class socket_base_t *socket_);
|
84
|
+
void send_reaped ();
|
85
|
+
void send_done ();
|
86
|
+
|
87
|
+
// These handlers can be overloaded by the derived objects. They are
|
88
|
+
// called when command arrives from another thread.
|
89
|
+
virtual void process_stop ();
|
90
|
+
virtual void process_plug ();
|
91
|
+
virtual void process_own (class own_t *object_);
|
92
|
+
virtual void process_attach (struct i_engine *engine_,
|
93
|
+
const blob_t &peer_identity_);
|
94
|
+
virtual void process_bind (class reader_t *in_pipe_,
|
95
|
+
class writer_t *out_pipe_, const blob_t &peer_identity_);
|
96
|
+
virtual void process_activate_reader ();
|
97
|
+
virtual void process_activate_writer (uint64_t msgs_read_);
|
98
|
+
virtual void process_pipe_term ();
|
99
|
+
virtual void process_pipe_term_ack ();
|
100
|
+
virtual void process_term_req (class own_t *object_);
|
101
|
+
virtual void process_term (int linger_);
|
102
|
+
virtual void process_term_ack ();
|
103
|
+
virtual void process_reap (class socket_base_t *socket_);
|
104
|
+
virtual void process_reaped ();
|
105
|
+
|
106
|
+
// Special handler called after a command that requires a seqnum
|
107
|
+
// was processed. The implementation should catch up with its counter
|
108
|
+
// of processed commands here.
|
109
|
+
virtual void process_seqnum ();
|
110
|
+
|
111
|
+
private:
|
112
|
+
|
113
|
+
// Context provides access to the global state.
|
114
|
+
class ctx_t *ctx;
|
115
|
+
|
116
|
+
// Thread ID of the thread the object belongs to.
|
117
|
+
uint32_t tid;
|
118
|
+
|
119
|
+
void send_command (command_t &cmd_);
|
120
|
+
|
121
|
+
object_t (const object_t&);
|
122
|
+
const object_t &operator = (const object_t&);
|
123
|
+
};
|
124
|
+
|
125
|
+
}
|
126
|
+
|
127
|
+
#endif
|
@@ -0,0 +1,336 @@
|
|
1
|
+
/*
|
2
|
+
Copyright (c) 2007-2011 iMatix Corporation
|
3
|
+
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
|
4
|
+
|
5
|
+
This file is part of 0MQ.
|
6
|
+
|
7
|
+
0MQ is free software; you can redistribute it and/or modify it under
|
8
|
+
the terms of the GNU Lesser General Public License as published by
|
9
|
+
the Free Software Foundation; either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
0MQ is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU Lesser General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU Lesser General Public License
|
18
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
*/
|
20
|
+
|
21
|
+
#include <string.h>
|
22
|
+
|
23
|
+
#include "../include/zmq.h"
|
24
|
+
|
25
|
+
#include "options.hpp"
|
26
|
+
#include "err.hpp"
|
27
|
+
|
28
|
+
zmq::options_t::options_t () :
|
29
|
+
hwm (0),
|
30
|
+
swap (0),
|
31
|
+
affinity (0),
|
32
|
+
rate (40 * 1000),
|
33
|
+
recovery_ivl (10),
|
34
|
+
recovery_ivl_msec (-1),
|
35
|
+
use_multicast_loop (true),
|
36
|
+
sndbuf (0),
|
37
|
+
rcvbuf (0),
|
38
|
+
type (-1),
|
39
|
+
linger (-1),
|
40
|
+
reconnect_ivl (100),
|
41
|
+
reconnect_ivl_max (0),
|
42
|
+
backlog (100),
|
43
|
+
requires_in (false),
|
44
|
+
requires_out (false),
|
45
|
+
immediate_connect (true)
|
46
|
+
{
|
47
|
+
}
|
48
|
+
|
49
|
+
int zmq::options_t::setsockopt (int option_, const void *optval_,
|
50
|
+
size_t optvallen_)
|
51
|
+
{
|
52
|
+
switch (option_) {
|
53
|
+
|
54
|
+
case ZMQ_HWM:
|
55
|
+
if (optvallen_ != sizeof (uint64_t)) {
|
56
|
+
errno = EINVAL;
|
57
|
+
return -1;
|
58
|
+
}
|
59
|
+
hwm = *((uint64_t*) optval_);
|
60
|
+
return 0;
|
61
|
+
|
62
|
+
case ZMQ_SWAP:
|
63
|
+
if (optvallen_ != sizeof (int64_t) || *((int64_t*) optval_) < 0) {
|
64
|
+
errno = EINVAL;
|
65
|
+
return -1;
|
66
|
+
}
|
67
|
+
swap = *((int64_t*) optval_);
|
68
|
+
return 0;
|
69
|
+
|
70
|
+
case ZMQ_AFFINITY:
|
71
|
+
if (optvallen_ != sizeof (uint64_t)) {
|
72
|
+
errno = EINVAL;
|
73
|
+
return -1;
|
74
|
+
}
|
75
|
+
affinity = *((uint64_t*) optval_);
|
76
|
+
return 0;
|
77
|
+
|
78
|
+
case ZMQ_IDENTITY:
|
79
|
+
|
80
|
+
// Empty identity is invalid as well as identity longer than
|
81
|
+
// 255 bytes. Identity starting with binary zero is invalid
|
82
|
+
// as these are used for auto-generated identities.
|
83
|
+
if (optvallen_ < 1 || optvallen_ > 255 ||
|
84
|
+
*((const unsigned char*) optval_) == 0) {
|
85
|
+
errno = EINVAL;
|
86
|
+
return -1;
|
87
|
+
}
|
88
|
+
identity.assign ((const unsigned char*) optval_, optvallen_);
|
89
|
+
return 0;
|
90
|
+
|
91
|
+
case ZMQ_RATE:
|
92
|
+
if (optvallen_ != sizeof (int64_t) || *((int64_t*) optval_) < 0) {
|
93
|
+
errno = EINVAL;
|
94
|
+
return -1;
|
95
|
+
}
|
96
|
+
rate = (uint32_t) *((int64_t*) optval_);
|
97
|
+
return 0;
|
98
|
+
|
99
|
+
case ZMQ_RECOVERY_IVL:
|
100
|
+
if (optvallen_ != sizeof (int64_t) || *((int64_t*) optval_) < 0) {
|
101
|
+
errno = EINVAL;
|
102
|
+
return -1;
|
103
|
+
}
|
104
|
+
recovery_ivl = (uint32_t) *((int64_t*) optval_);
|
105
|
+
return 0;
|
106
|
+
|
107
|
+
case ZMQ_RECOVERY_IVL_MSEC:
|
108
|
+
if (optvallen_ != sizeof (int64_t) || *((int64_t*) optval_) < 0) {
|
109
|
+
errno = EINVAL;
|
110
|
+
return -1;
|
111
|
+
}
|
112
|
+
recovery_ivl_msec = (int32_t) *((int64_t*) optval_);
|
113
|
+
return 0;
|
114
|
+
|
115
|
+
case ZMQ_MCAST_LOOP:
|
116
|
+
if (optvallen_ != sizeof (int64_t)) {
|
117
|
+
errno = EINVAL;
|
118
|
+
return -1;
|
119
|
+
}
|
120
|
+
if ((int64_t) *((int64_t*) optval_) == 0)
|
121
|
+
use_multicast_loop = false;
|
122
|
+
else if ((int64_t) *((int64_t*) optval_) == 1)
|
123
|
+
use_multicast_loop = true;
|
124
|
+
else {
|
125
|
+
errno = EINVAL;
|
126
|
+
return -1;
|
127
|
+
}
|
128
|
+
return 0;
|
129
|
+
|
130
|
+
case ZMQ_SNDBUF:
|
131
|
+
if (optvallen_ != sizeof (uint64_t)) {
|
132
|
+
errno = EINVAL;
|
133
|
+
return -1;
|
134
|
+
}
|
135
|
+
sndbuf = *((uint64_t*) optval_);
|
136
|
+
return 0;
|
137
|
+
|
138
|
+
case ZMQ_RCVBUF:
|
139
|
+
if (optvallen_ != sizeof (uint64_t)) {
|
140
|
+
errno = EINVAL;
|
141
|
+
return -1;
|
142
|
+
}
|
143
|
+
rcvbuf = *((uint64_t*) optval_);
|
144
|
+
return 0;
|
145
|
+
|
146
|
+
case ZMQ_LINGER:
|
147
|
+
if (optvallen_ != sizeof (int)) {
|
148
|
+
errno = EINVAL;
|
149
|
+
return -1;
|
150
|
+
}
|
151
|
+
linger = *((int*) optval_);
|
152
|
+
return 0;
|
153
|
+
|
154
|
+
case ZMQ_RECONNECT_IVL:
|
155
|
+
if (optvallen_ != sizeof (int)) {
|
156
|
+
errno = EINVAL;
|
157
|
+
return -1;
|
158
|
+
}
|
159
|
+
if (*((int*) optval_) < 0) {
|
160
|
+
errno = EINVAL;
|
161
|
+
return -1;
|
162
|
+
}
|
163
|
+
reconnect_ivl = *((int*) optval_);
|
164
|
+
return 0;
|
165
|
+
|
166
|
+
case ZMQ_RECONNECT_IVL_MAX:
|
167
|
+
if (optvallen_ != sizeof (int)) {
|
168
|
+
errno = EINVAL;
|
169
|
+
return -1;
|
170
|
+
}
|
171
|
+
if (*((int*) optval_) < 0) {
|
172
|
+
errno = EINVAL;
|
173
|
+
return -1;
|
174
|
+
}
|
175
|
+
reconnect_ivl_max = *((int*) optval_);
|
176
|
+
return 0;
|
177
|
+
|
178
|
+
case ZMQ_BACKLOG:
|
179
|
+
if (optvallen_ != sizeof (int)) {
|
180
|
+
errno = EINVAL;
|
181
|
+
return -1;
|
182
|
+
}
|
183
|
+
backlog = *((int*) optval_);
|
184
|
+
return 0;
|
185
|
+
|
186
|
+
}
|
187
|
+
|
188
|
+
errno = EINVAL;
|
189
|
+
return -1;
|
190
|
+
}
|
191
|
+
|
192
|
+
int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)
|
193
|
+
{
|
194
|
+
switch (option_) {
|
195
|
+
|
196
|
+
case ZMQ_HWM:
|
197
|
+
if (*optvallen_ < sizeof (uint64_t)) {
|
198
|
+
errno = EINVAL;
|
199
|
+
return -1;
|
200
|
+
}
|
201
|
+
*((uint64_t*) optval_) = hwm;
|
202
|
+
*optvallen_ = sizeof (uint64_t);
|
203
|
+
return 0;
|
204
|
+
|
205
|
+
case ZMQ_SWAP:
|
206
|
+
if (*optvallen_ < sizeof (int64_t)) {
|
207
|
+
errno = EINVAL;
|
208
|
+
return -1;
|
209
|
+
}
|
210
|
+
*((int64_t*) optval_) = swap;
|
211
|
+
*optvallen_ = sizeof (int64_t);
|
212
|
+
return 0;
|
213
|
+
|
214
|
+
case ZMQ_AFFINITY:
|
215
|
+
if (*optvallen_ < sizeof (uint64_t)) {
|
216
|
+
errno = EINVAL;
|
217
|
+
return -1;
|
218
|
+
}
|
219
|
+
*((uint64_t*) optval_) = affinity;
|
220
|
+
*optvallen_ = sizeof (uint64_t);
|
221
|
+
return 0;
|
222
|
+
|
223
|
+
case ZMQ_IDENTITY:
|
224
|
+
if (*optvallen_ < identity.size ()) {
|
225
|
+
errno = EINVAL;
|
226
|
+
return -1;
|
227
|
+
}
|
228
|
+
memcpy (optval_, identity.data (), identity.size ());
|
229
|
+
*optvallen_ = identity.size ();
|
230
|
+
return 0;
|
231
|
+
|
232
|
+
|
233
|
+
case ZMQ_RATE:
|
234
|
+
if (*optvallen_ < sizeof (int64_t)) {
|
235
|
+
errno = EINVAL;
|
236
|
+
return -1;
|
237
|
+
}
|
238
|
+
*((int64_t*) optval_) = rate;
|
239
|
+
*optvallen_ = sizeof (int64_t);
|
240
|
+
return 0;
|
241
|
+
|
242
|
+
case ZMQ_RECOVERY_IVL:
|
243
|
+
if (*optvallen_ < sizeof (int64_t)) {
|
244
|
+
errno = EINVAL;
|
245
|
+
return -1;
|
246
|
+
}
|
247
|
+
*((int64_t*) optval_) = recovery_ivl;
|
248
|
+
*optvallen_ = sizeof (int64_t);
|
249
|
+
return 0;
|
250
|
+
|
251
|
+
case ZMQ_RECOVERY_IVL_MSEC:
|
252
|
+
if (*optvallen_ < sizeof (int64_t)) {
|
253
|
+
errno = EINVAL;
|
254
|
+
return -1;
|
255
|
+
}
|
256
|
+
*((int64_t*) optval_) = recovery_ivl_msec;
|
257
|
+
*optvallen_ = sizeof (int64_t);
|
258
|
+
return 0;
|
259
|
+
|
260
|
+
case ZMQ_MCAST_LOOP:
|
261
|
+
if (*optvallen_ < sizeof (int64_t)) {
|
262
|
+
errno = EINVAL;
|
263
|
+
return -1;
|
264
|
+
}
|
265
|
+
*((int64_t*) optval_) = use_multicast_loop ? 1 : 0;
|
266
|
+
*optvallen_ = sizeof (int64_t);
|
267
|
+
return 0;
|
268
|
+
|
269
|
+
case ZMQ_SNDBUF:
|
270
|
+
if (*optvallen_ < sizeof (uint64_t)) {
|
271
|
+
errno = EINVAL;
|
272
|
+
return -1;
|
273
|
+
}
|
274
|
+
*((uint64_t*) optval_) = sndbuf;
|
275
|
+
*optvallen_ = sizeof (uint64_t);
|
276
|
+
return 0;
|
277
|
+
|
278
|
+
case ZMQ_RCVBUF:
|
279
|
+
if (*optvallen_ < sizeof (uint64_t)) {
|
280
|
+
errno = EINVAL;
|
281
|
+
return -1;
|
282
|
+
}
|
283
|
+
*((uint64_t*) optval_) = rcvbuf;
|
284
|
+
*optvallen_ = sizeof (uint64_t);
|
285
|
+
return 0;
|
286
|
+
|
287
|
+
case ZMQ_TYPE:
|
288
|
+
if (*optvallen_ < sizeof (int)) {
|
289
|
+
errno = EINVAL;
|
290
|
+
return -1;
|
291
|
+
}
|
292
|
+
*((int*) optval_) = type;
|
293
|
+
*optvallen_ = sizeof (int);
|
294
|
+
return 0;
|
295
|
+
|
296
|
+
case ZMQ_LINGER:
|
297
|
+
if (*optvallen_ < sizeof (int)) {
|
298
|
+
errno = EINVAL;
|
299
|
+
return -1;
|
300
|
+
}
|
301
|
+
*((int*) optval_) = linger;
|
302
|
+
*optvallen_ = sizeof (int);
|
303
|
+
return 0;
|
304
|
+
|
305
|
+
case ZMQ_RECONNECT_IVL:
|
306
|
+
if (*optvallen_ < sizeof (int)) {
|
307
|
+
errno = EINVAL;
|
308
|
+
return -1;
|
309
|
+
}
|
310
|
+
*((int*) optval_) = reconnect_ivl;
|
311
|
+
*optvallen_ = sizeof (int);
|
312
|
+
return 0;
|
313
|
+
|
314
|
+
case ZMQ_RECONNECT_IVL_MAX:
|
315
|
+
if (*optvallen_ < sizeof (int)) {
|
316
|
+
errno = EINVAL;
|
317
|
+
return -1;
|
318
|
+
}
|
319
|
+
*((int*) optval_) = reconnect_ivl_max;
|
320
|
+
*optvallen_ = sizeof (int);
|
321
|
+
return 0;
|
322
|
+
|
323
|
+
case ZMQ_BACKLOG:
|
324
|
+
if (*optvallen_ < sizeof (int)) {
|
325
|
+
errno = EINVAL;
|
326
|
+
return -1;
|
327
|
+
}
|
328
|
+
*((int*) optval_) = backlog;
|
329
|
+
*optvallen_ = sizeof (int);
|
330
|
+
return 0;
|
331
|
+
|
332
|
+
}
|
333
|
+
|
334
|
+
errno = EINVAL;
|
335
|
+
return -1;
|
336
|
+
}
|