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,59 @@
|
|
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_REP_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_REP_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "xrep.hpp"
|
25
|
+
|
26
|
+
namespace zmq
|
27
|
+
{
|
28
|
+
|
29
|
+
class rep_t : public xrep_t
|
30
|
+
{
|
31
|
+
public:
|
32
|
+
|
33
|
+
rep_t (class ctx_t *parent_, uint32_t tid_);
|
34
|
+
~rep_t ();
|
35
|
+
|
36
|
+
// Overloads of functions from socket_base_t.
|
37
|
+
int xsend (zmq_msg_t *msg_, int flags_);
|
38
|
+
int xrecv (zmq_msg_t *msg_, int flags_);
|
39
|
+
bool xhas_in ();
|
40
|
+
bool xhas_out ();
|
41
|
+
|
42
|
+
private:
|
43
|
+
|
44
|
+
// If true, we are in process of sending the reply. If false we are
|
45
|
+
// in process of receiving a request.
|
46
|
+
bool sending_reply;
|
47
|
+
|
48
|
+
// If true, we are starting to receive a request. The beginning
|
49
|
+
// of the request is the backtrace stack.
|
50
|
+
bool request_begins;
|
51
|
+
|
52
|
+
rep_t (const rep_t&);
|
53
|
+
const rep_t &operator = (const rep_t&);
|
54
|
+
|
55
|
+
};
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
#endif
|
@@ -0,0 +1,121 @@
|
|
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 "../include/zmq.h"
|
22
|
+
|
23
|
+
#include "req.hpp"
|
24
|
+
#include "err.hpp"
|
25
|
+
|
26
|
+
zmq::req_t::req_t (class ctx_t *parent_, uint32_t tid_) :
|
27
|
+
xreq_t (parent_, tid_),
|
28
|
+
receiving_reply (false),
|
29
|
+
message_begins (true)
|
30
|
+
{
|
31
|
+
options.type = ZMQ_REQ;
|
32
|
+
}
|
33
|
+
|
34
|
+
zmq::req_t::~req_t ()
|
35
|
+
{
|
36
|
+
}
|
37
|
+
|
38
|
+
int zmq::req_t::xsend (zmq_msg_t *msg_, int flags_)
|
39
|
+
{
|
40
|
+
// If we've sent a request and we still haven't got the reply,
|
41
|
+
// we can't send another request.
|
42
|
+
if (receiving_reply) {
|
43
|
+
errno = EFSM;
|
44
|
+
return -1;
|
45
|
+
}
|
46
|
+
|
47
|
+
// First part of the request is empty message part (stack bottom).
|
48
|
+
if (message_begins) {
|
49
|
+
zmq_msg_t prefix;
|
50
|
+
int rc = zmq_msg_init (&prefix);
|
51
|
+
zmq_assert (rc == 0);
|
52
|
+
prefix.flags |= ZMQ_MSG_MORE;
|
53
|
+
rc = xreq_t::xsend (&prefix, flags_);
|
54
|
+
if (rc != 0)
|
55
|
+
return rc;
|
56
|
+
message_begins = false;
|
57
|
+
}
|
58
|
+
|
59
|
+
bool more = msg_->flags & ZMQ_MSG_MORE;
|
60
|
+
|
61
|
+
int rc = xreq_t::xsend (msg_, flags_);
|
62
|
+
if (rc != 0)
|
63
|
+
return rc;
|
64
|
+
|
65
|
+
// If the request was fully sent, flip the FSM into reply-receiving state.
|
66
|
+
if (!more) {
|
67
|
+
receiving_reply = true;
|
68
|
+
message_begins = true;
|
69
|
+
}
|
70
|
+
|
71
|
+
return 0;
|
72
|
+
}
|
73
|
+
|
74
|
+
int zmq::req_t::xrecv (zmq_msg_t *msg_, int flags_)
|
75
|
+
{
|
76
|
+
// If request wasn't send, we can't wait for reply.
|
77
|
+
if (!receiving_reply) {
|
78
|
+
errno = EFSM;
|
79
|
+
return -1;
|
80
|
+
}
|
81
|
+
|
82
|
+
// First part of the reply should be empty message part (stack bottom).
|
83
|
+
if (message_begins) {
|
84
|
+
int rc = xreq_t::xrecv (msg_, flags_);
|
85
|
+
if (rc != 0)
|
86
|
+
return rc;
|
87
|
+
zmq_assert (msg_->flags & ZMQ_MSG_MORE);
|
88
|
+
zmq_assert (zmq_msg_size (msg_) == 0);
|
89
|
+
message_begins = false;
|
90
|
+
}
|
91
|
+
|
92
|
+
int rc = xreq_t::xrecv (msg_, flags_);
|
93
|
+
if (rc != 0)
|
94
|
+
return rc;
|
95
|
+
|
96
|
+
// If the reply is fully received, flip the FSM into request-sending state.
|
97
|
+
if (!(msg_->flags & ZMQ_MSG_MORE)) {
|
98
|
+
receiving_reply = false;
|
99
|
+
message_begins = true;
|
100
|
+
}
|
101
|
+
|
102
|
+
return 0;
|
103
|
+
}
|
104
|
+
|
105
|
+
bool zmq::req_t::xhas_in ()
|
106
|
+
{
|
107
|
+
if (!receiving_reply)
|
108
|
+
return false;
|
109
|
+
|
110
|
+
return xreq_t::xhas_in ();
|
111
|
+
}
|
112
|
+
|
113
|
+
bool zmq::req_t::xhas_out ()
|
114
|
+
{
|
115
|
+
if (receiving_reply)
|
116
|
+
return false;
|
117
|
+
|
118
|
+
return xreq_t::xhas_out ();
|
119
|
+
}
|
120
|
+
|
121
|
+
|
@@ -0,0 +1,58 @@
|
|
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_REQ_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_REQ_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "xreq.hpp"
|
25
|
+
|
26
|
+
namespace zmq
|
27
|
+
{
|
28
|
+
|
29
|
+
class req_t : public xreq_t
|
30
|
+
{
|
31
|
+
public:
|
32
|
+
|
33
|
+
req_t (class ctx_t *parent_, uint32_t tid_);
|
34
|
+
~req_t ();
|
35
|
+
|
36
|
+
// Overloads of functions from socket_base_t.
|
37
|
+
int xsend (zmq_msg_t *msg_, int flags_);
|
38
|
+
int xrecv (zmq_msg_t *msg_, int flags_);
|
39
|
+
bool xhas_in ();
|
40
|
+
bool xhas_out ();
|
41
|
+
|
42
|
+
private:
|
43
|
+
|
44
|
+
// If true, request was already sent and reply wasn't received yet or
|
45
|
+
// was raceived partially.
|
46
|
+
bool receiving_reply;
|
47
|
+
|
48
|
+
// If true, we are starting to send/recv a message. The first part
|
49
|
+
// of the message must be empty message part (backtrace stack bottom).
|
50
|
+
bool message_begins;
|
51
|
+
|
52
|
+
req_t (const req_t&);
|
53
|
+
const req_t &operator = (const req_t&);
|
54
|
+
};
|
55
|
+
|
56
|
+
}
|
57
|
+
|
58
|
+
#endif
|
@@ -0,0 +1,211 @@
|
|
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 "platform.hpp"
|
22
|
+
|
23
|
+
#include <string.h>
|
24
|
+
#include <algorithm>
|
25
|
+
|
26
|
+
#ifdef ZMQ_HAVE_WINDOWS
|
27
|
+
#include "winsock2.h"
|
28
|
+
#elif defined ZMQ_HAVE_HPUX
|
29
|
+
#include <sys/param.h>
|
30
|
+
#include <sys/types.h>
|
31
|
+
#include <sys/time.h>
|
32
|
+
#elif defined ZMQ_HAVE_OPENVMS
|
33
|
+
#include <sys/types.h>
|
34
|
+
#include <sys/time.h>
|
35
|
+
#else
|
36
|
+
#include <sys/select.h>
|
37
|
+
#endif
|
38
|
+
|
39
|
+
#include "select.hpp"
|
40
|
+
#include "err.hpp"
|
41
|
+
#include "config.hpp"
|
42
|
+
#include "i_poll_events.hpp"
|
43
|
+
|
44
|
+
zmq::select_t::select_t () :
|
45
|
+
maxfd (retired_fd),
|
46
|
+
retired (false),
|
47
|
+
stopping (false)
|
48
|
+
{
|
49
|
+
// Clear file descriptor sets.
|
50
|
+
FD_ZERO (&source_set_in);
|
51
|
+
FD_ZERO (&source_set_out);
|
52
|
+
FD_ZERO (&source_set_err);
|
53
|
+
}
|
54
|
+
|
55
|
+
zmq::select_t::~select_t ()
|
56
|
+
{
|
57
|
+
worker.stop ();
|
58
|
+
}
|
59
|
+
|
60
|
+
zmq::select_t::handle_t zmq::select_t::add_fd (fd_t fd_, i_poll_events *events_)
|
61
|
+
{
|
62
|
+
// Store the file descriptor.
|
63
|
+
fd_entry_t entry = {fd_, events_};
|
64
|
+
fds.push_back (entry);
|
65
|
+
|
66
|
+
// Ensure we do not attempt to select () on more than FD_SETSIZE
|
67
|
+
// file descriptors.
|
68
|
+
zmq_assert (fds.size () <= FD_SETSIZE);
|
69
|
+
|
70
|
+
// Start polling on errors.
|
71
|
+
FD_SET (fd_, &source_set_err);
|
72
|
+
|
73
|
+
// Adjust maxfd if necessary.
|
74
|
+
if (fd_ > maxfd)
|
75
|
+
maxfd = fd_;
|
76
|
+
|
77
|
+
// Increase the load metric of the thread.
|
78
|
+
adjust_load (1);
|
79
|
+
|
80
|
+
return fd_;
|
81
|
+
}
|
82
|
+
|
83
|
+
void zmq::select_t::rm_fd (handle_t handle_)
|
84
|
+
{
|
85
|
+
// Mark the descriptor as retired.
|
86
|
+
fd_set_t::iterator it;
|
87
|
+
for (it = fds.begin (); it != fds.end (); ++it)
|
88
|
+
if (it->fd == handle_)
|
89
|
+
break;
|
90
|
+
zmq_assert (it != fds.end ());
|
91
|
+
it->fd = retired_fd;
|
92
|
+
retired = true;
|
93
|
+
|
94
|
+
// Stop polling on the descriptor.
|
95
|
+
FD_CLR (handle_, &source_set_in);
|
96
|
+
FD_CLR (handle_, &source_set_out);
|
97
|
+
FD_CLR (handle_, &source_set_err);
|
98
|
+
|
99
|
+
// Discard all events generated on this file descriptor.
|
100
|
+
FD_CLR (handle_, &readfds);
|
101
|
+
FD_CLR (handle_, &writefds);
|
102
|
+
FD_CLR (handle_, &exceptfds);
|
103
|
+
|
104
|
+
// Adjust the maxfd attribute if we have removed the
|
105
|
+
// highest-numbered file descriptor.
|
106
|
+
if (handle_ == maxfd) {
|
107
|
+
maxfd = retired_fd;
|
108
|
+
for (fd_set_t::iterator it = fds.begin (); it != fds.end (); ++it)
|
109
|
+
if (it->fd > maxfd)
|
110
|
+
maxfd = it->fd;
|
111
|
+
}
|
112
|
+
|
113
|
+
// Decrease the load metric of the thread.
|
114
|
+
adjust_load (-1);
|
115
|
+
}
|
116
|
+
|
117
|
+
void zmq::select_t::set_pollin (handle_t handle_)
|
118
|
+
{
|
119
|
+
FD_SET (handle_, &source_set_in);
|
120
|
+
}
|
121
|
+
|
122
|
+
void zmq::select_t::reset_pollin (handle_t handle_)
|
123
|
+
{
|
124
|
+
FD_CLR (handle_, &source_set_in);
|
125
|
+
}
|
126
|
+
|
127
|
+
void zmq::select_t::set_pollout (handle_t handle_)
|
128
|
+
{
|
129
|
+
FD_SET (handle_, &source_set_out);
|
130
|
+
}
|
131
|
+
|
132
|
+
void zmq::select_t::reset_pollout (handle_t handle_)
|
133
|
+
{
|
134
|
+
FD_CLR (handle_, &source_set_out);
|
135
|
+
}
|
136
|
+
|
137
|
+
void zmq::select_t::start ()
|
138
|
+
{
|
139
|
+
worker.start (worker_routine, this);
|
140
|
+
}
|
141
|
+
|
142
|
+
void zmq::select_t::stop ()
|
143
|
+
{
|
144
|
+
stopping = true;
|
145
|
+
}
|
146
|
+
|
147
|
+
void zmq::select_t::loop ()
|
148
|
+
{
|
149
|
+
while (!stopping) {
|
150
|
+
|
151
|
+
// Execute any due timers.
|
152
|
+
int timeout = (int) execute_timers ();
|
153
|
+
|
154
|
+
// Intialise the pollsets.
|
155
|
+
memcpy (&readfds, &source_set_in, sizeof source_set_in);
|
156
|
+
memcpy (&writefds, &source_set_out, sizeof source_set_out);
|
157
|
+
memcpy (&exceptfds, &source_set_err, sizeof source_set_err);
|
158
|
+
|
159
|
+
// Wait for events.
|
160
|
+
struct timeval tv = {(long) (timeout / 1000),
|
161
|
+
(long) (timeout % 1000 * 1000)};
|
162
|
+
int rc = select (maxfd + 1, &readfds, &writefds, &exceptfds,
|
163
|
+
timeout ? &tv : NULL);
|
164
|
+
|
165
|
+
#ifdef ZMQ_HAVE_WINDOWS
|
166
|
+
wsa_assert (rc != SOCKET_ERROR);
|
167
|
+
#else
|
168
|
+
if (rc == -1 && errno == EINTR)
|
169
|
+
continue;
|
170
|
+
errno_assert (rc != -1);
|
171
|
+
#endif
|
172
|
+
|
173
|
+
// If there are no events (i.e. it's a timeout) there's no point
|
174
|
+
// in checking the pollset.
|
175
|
+
if (rc == 0)
|
176
|
+
continue;
|
177
|
+
|
178
|
+
for (fd_set_t::size_type i = 0; i < fds.size (); i ++) {
|
179
|
+
if (fds [i].fd == retired_fd)
|
180
|
+
continue;
|
181
|
+
if (FD_ISSET (fds [i].fd, &exceptfds))
|
182
|
+
fds [i].events->in_event ();
|
183
|
+
if (fds [i].fd == retired_fd)
|
184
|
+
continue;
|
185
|
+
if (FD_ISSET (fds [i].fd, &writefds))
|
186
|
+
fds [i].events->out_event ();
|
187
|
+
if (fds [i].fd == retired_fd)
|
188
|
+
continue;
|
189
|
+
if (FD_ISSET (fds [i].fd, &readfds))
|
190
|
+
fds [i].events->in_event ();
|
191
|
+
}
|
192
|
+
|
193
|
+
// Destroy retired event sources.
|
194
|
+
if (retired) {
|
195
|
+
fds.erase (std::remove_if (fds.begin (), fds.end (),
|
196
|
+
zmq::select_t::is_retired_fd), fds.end ());
|
197
|
+
retired = false;
|
198
|
+
}
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
void zmq::select_t::worker_routine (void *arg_)
|
203
|
+
{
|
204
|
+
((select_t*) arg_)->loop ();
|
205
|
+
}
|
206
|
+
|
207
|
+
bool zmq::select_t::is_retired_fd (const fd_entry_t &entry)
|
208
|
+
{
|
209
|
+
return (entry.fd == retired_fd);
|
210
|
+
}
|
211
|
+
|