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,72 @@
|
|
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_TCP_SOCKET_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_TCP_SOCKET_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "fd.hpp"
|
25
|
+
#include "stdint.hpp"
|
26
|
+
|
27
|
+
namespace zmq
|
28
|
+
{
|
29
|
+
|
30
|
+
// The class encapsulating simple TCP read/write socket.
|
31
|
+
|
32
|
+
class tcp_socket_t
|
33
|
+
{
|
34
|
+
public:
|
35
|
+
|
36
|
+
tcp_socket_t ();
|
37
|
+
~tcp_socket_t ();
|
38
|
+
|
39
|
+
// Associates a socket with a native socket descriptor.
|
40
|
+
int open (fd_t fd_, uint64_t sndbuf_, uint64_t rcvbuf_);
|
41
|
+
|
42
|
+
// Closes the underlying socket.
|
43
|
+
int close ();
|
44
|
+
|
45
|
+
// Returns the underlying socket. Returns retired_fd when the socket
|
46
|
+
// is in the closed state.
|
47
|
+
fd_t get_fd ();
|
48
|
+
|
49
|
+
// Writes data to the socket. Returns the number of bytes actually
|
50
|
+
// written (even zero is to be considered to be a success). In case
|
51
|
+
// of error or orderly shutdown by the other peer -1 is returned.
|
52
|
+
int write (const void *data, int size);
|
53
|
+
|
54
|
+
// Reads data from the socket (up to 'size' bytes). Returns the number
|
55
|
+
// of bytes actually read (even zero is to be considered to be
|
56
|
+
// a success). In case of error or orderly shutdown by the other
|
57
|
+
// peer -1 is returned.
|
58
|
+
int read (void *data, int size);
|
59
|
+
|
60
|
+
private:
|
61
|
+
|
62
|
+
// Underlying socket.
|
63
|
+
fd_t s;
|
64
|
+
|
65
|
+
// Disable copy construction of tcp_socket.
|
66
|
+
tcp_socket_t (const tcp_socket_t&);
|
67
|
+
const tcp_socket_t &operator = (const tcp_socket_t&);
|
68
|
+
};
|
69
|
+
|
70
|
+
}
|
71
|
+
|
72
|
+
#endif
|
@@ -0,0 +1,97 @@
|
|
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 "thread.hpp"
|
22
|
+
#include "err.hpp"
|
23
|
+
#include "platform.hpp"
|
24
|
+
|
25
|
+
#ifdef ZMQ_HAVE_WINDOWS
|
26
|
+
|
27
|
+
extern "C"
|
28
|
+
{
|
29
|
+
static unsigned int __stdcall thread_routine (void *arg_)
|
30
|
+
{
|
31
|
+
zmq::thread_t *self = (zmq::thread_t*) arg_;
|
32
|
+
self->tfn (self->arg);
|
33
|
+
return 0;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
void zmq::thread_t::start (thread_fn *tfn_, void *arg_)
|
38
|
+
{
|
39
|
+
tfn = tfn_;
|
40
|
+
arg =arg_;
|
41
|
+
descriptor = (HANDLE) _beginthreadex (NULL, 0,
|
42
|
+
&::thread_routine, this, 0 , NULL);
|
43
|
+
win_assert (descriptor != NULL);
|
44
|
+
}
|
45
|
+
|
46
|
+
void zmq::thread_t::stop ()
|
47
|
+
{
|
48
|
+
DWORD rc = WaitForSingleObject (descriptor, INFINITE);
|
49
|
+
win_assert (rc != WAIT_FAILED);
|
50
|
+
BOOL rc2 = CloseHandle (descriptor);
|
51
|
+
win_assert (rc2 != 0);
|
52
|
+
}
|
53
|
+
|
54
|
+
#else
|
55
|
+
|
56
|
+
#include <signal.h>
|
57
|
+
|
58
|
+
extern "C"
|
59
|
+
{
|
60
|
+
static void *thread_routine (void *arg_)
|
61
|
+
{
|
62
|
+
#if !defined ZMQ_HAVE_OPENVMS
|
63
|
+
// Following code will guarantee more predictable latecnies as it'll
|
64
|
+
// disallow any signal handling in the I/O thread.
|
65
|
+
sigset_t signal_set;
|
66
|
+
int rc = sigfillset (&signal_set);
|
67
|
+
errno_assert (rc == 0);
|
68
|
+
rc = pthread_sigmask (SIG_BLOCK, &signal_set, NULL);
|
69
|
+
errno_assert (rc == 0);
|
70
|
+
#endif
|
71
|
+
|
72
|
+
zmq::thread_t *self = (zmq::thread_t*) arg_;
|
73
|
+
self->tfn (self->arg);
|
74
|
+
return NULL;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
void zmq::thread_t::start (thread_fn *tfn_, void *arg_)
|
79
|
+
{
|
80
|
+
tfn = tfn_;
|
81
|
+
arg =arg_;
|
82
|
+
int rc = pthread_create (&descriptor, NULL, thread_routine, this);
|
83
|
+
errno_assert (rc == 0);
|
84
|
+
}
|
85
|
+
|
86
|
+
void zmq::thread_t::stop ()
|
87
|
+
{
|
88
|
+
int rc = pthread_join (descriptor, NULL);
|
89
|
+
errno_assert (rc == 0);
|
90
|
+
}
|
91
|
+
|
92
|
+
#endif
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
@@ -0,0 +1,78 @@
|
|
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_THREAD_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_THREAD_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "platform.hpp"
|
25
|
+
|
26
|
+
#ifdef ZMQ_HAVE_WINDOWS
|
27
|
+
#include "windows.hpp"
|
28
|
+
#else
|
29
|
+
#include <pthread.h>
|
30
|
+
#endif
|
31
|
+
|
32
|
+
namespace zmq
|
33
|
+
{
|
34
|
+
|
35
|
+
typedef void (thread_fn) (void*);
|
36
|
+
|
37
|
+
// Class encapsulating OS thread. Thread initiation/termination is done
|
38
|
+
// using special functions rather than in constructor/destructor so that
|
39
|
+
// thread isn't created during object construction by accident, causing
|
40
|
+
// newly created thread to access half-initialised object. Same applies
|
41
|
+
// to the destruction process: Thread should be terminated before object
|
42
|
+
// destruction begins, otherwise it can access half-destructed object.
|
43
|
+
|
44
|
+
class thread_t
|
45
|
+
{
|
46
|
+
public:
|
47
|
+
|
48
|
+
inline thread_t ()
|
49
|
+
{
|
50
|
+
}
|
51
|
+
|
52
|
+
// Creates OS thread. 'tfn' is main thread function. It'll be passed
|
53
|
+
// 'arg' as an argument.
|
54
|
+
void start (thread_fn *tfn_, void *arg_);
|
55
|
+
|
56
|
+
// Waits for thread termination.
|
57
|
+
void stop ();
|
58
|
+
|
59
|
+
// These are internal members. They should be private, however then
|
60
|
+
// they would not be accessible from the main C routine of the thread.
|
61
|
+
thread_fn *tfn;
|
62
|
+
void *arg;
|
63
|
+
|
64
|
+
private:
|
65
|
+
|
66
|
+
#ifdef ZMQ_HAVE_WINDOWS
|
67
|
+
HANDLE descriptor;
|
68
|
+
#else
|
69
|
+
pthread_t descriptor;
|
70
|
+
#endif
|
71
|
+
|
72
|
+
thread_t (const thread_t&);
|
73
|
+
const thread_t &operator = (const thread_t&);
|
74
|
+
};
|
75
|
+
|
76
|
+
}
|
77
|
+
|
78
|
+
#endif
|
@@ -0,0 +1,41 @@
|
|
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 "transient_session.hpp"
|
22
|
+
|
23
|
+
zmq::transient_session_t::transient_session_t (class io_thread_t *io_thread_,
|
24
|
+
class socket_base_t *socket_, const options_t &options_) :
|
25
|
+
session_t (io_thread_, socket_, options_)
|
26
|
+
{
|
27
|
+
}
|
28
|
+
|
29
|
+
zmq::transient_session_t::~transient_session_t ()
|
30
|
+
{
|
31
|
+
}
|
32
|
+
|
33
|
+
void zmq::transient_session_t::attached (const blob_t &peer_identity_)
|
34
|
+
{
|
35
|
+
}
|
36
|
+
|
37
|
+
void zmq::transient_session_t::detached ()
|
38
|
+
{
|
39
|
+
// There's no way to reestablish a transient session. Tear it down.
|
40
|
+
terminate ();
|
41
|
+
}
|
@@ -0,0 +1,52 @@
|
|
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_TRANSIENT_SESSION_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_TRANSIENT_SESSION_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "session.hpp"
|
25
|
+
|
26
|
+
namespace zmq
|
27
|
+
{
|
28
|
+
|
29
|
+
// Transient session is created by the listener when the connected peer
|
30
|
+
// stays anonymous. Transient session is destroyed on disconnect.
|
31
|
+
|
32
|
+
class transient_session_t : public session_t
|
33
|
+
{
|
34
|
+
public:
|
35
|
+
|
36
|
+
transient_session_t (class io_thread_t *io_thread_,
|
37
|
+
class socket_base_t *socket_, const options_t &options_);
|
38
|
+
~transient_session_t ();
|
39
|
+
|
40
|
+
private:
|
41
|
+
|
42
|
+
// Handlers for events from session base class.
|
43
|
+
void attached (const blob_t &peer_identity_);
|
44
|
+
void detached ();
|
45
|
+
|
46
|
+
transient_session_t (const transient_session_t&);
|
47
|
+
const transient_session_t &operator = (const transient_session_t&);
|
48
|
+
};
|
49
|
+
|
50
|
+
}
|
51
|
+
|
52
|
+
#endif
|
@@ -0,0 +1,181 @@
|
|
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 <stdlib.h>
|
22
|
+
|
23
|
+
#include <new>
|
24
|
+
#include <algorithm>
|
25
|
+
|
26
|
+
#include "platform.hpp"
|
27
|
+
#if defined ZMQ_HAVE_WINDOWS
|
28
|
+
#include "windows.hpp"
|
29
|
+
#endif
|
30
|
+
|
31
|
+
#include "err.hpp"
|
32
|
+
#include "trie.hpp"
|
33
|
+
|
34
|
+
zmq::trie_t::trie_t () :
|
35
|
+
refcnt (0),
|
36
|
+
min (0),
|
37
|
+
count (0)
|
38
|
+
{
|
39
|
+
}
|
40
|
+
|
41
|
+
zmq::trie_t::~trie_t ()
|
42
|
+
{
|
43
|
+
if (count == 1)
|
44
|
+
delete next.node;
|
45
|
+
else if (count > 1) {
|
46
|
+
for (unsigned short i = 0; i != count; ++i)
|
47
|
+
if (next.table [i])
|
48
|
+
delete next.table [i];
|
49
|
+
free (next.table);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
void zmq::trie_t::add (unsigned char *prefix_, size_t size_)
|
54
|
+
{
|
55
|
+
// We are at the node corresponding to the prefix. We are done.
|
56
|
+
if (!size_) {
|
57
|
+
++refcnt;
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
|
61
|
+
unsigned char c = *prefix_;
|
62
|
+
if (c < min || c >= min + count) {
|
63
|
+
|
64
|
+
// The character is out of range of currently handled
|
65
|
+
// charcters. We have to extend the table.
|
66
|
+
if (!count) {
|
67
|
+
min = c;
|
68
|
+
count = 1;
|
69
|
+
next.node = NULL;
|
70
|
+
}
|
71
|
+
else if (count == 1) {
|
72
|
+
unsigned char oldc = min;
|
73
|
+
trie_t *oldp = next.node;
|
74
|
+
count = (min < c ? c - min : min - c) + 1;
|
75
|
+
next.table = (trie_t**)
|
76
|
+
malloc (sizeof (trie_t*) * count);
|
77
|
+
alloc_assert (next.table);
|
78
|
+
for (unsigned short i = 0; i != count; ++i)
|
79
|
+
next.table [i] = 0;
|
80
|
+
min = std::min (min, c);
|
81
|
+
next.table [oldc - min] = oldp;
|
82
|
+
}
|
83
|
+
else if (min < c) {
|
84
|
+
|
85
|
+
// The new character is above the current character range.
|
86
|
+
unsigned short old_count = count;
|
87
|
+
count = c - min + 1;
|
88
|
+
next.table = (trie_t**) realloc ((void*) next.table,
|
89
|
+
sizeof (trie_t*) * count);
|
90
|
+
zmq_assert (next.table);
|
91
|
+
for (unsigned short i = old_count; i != count; i++)
|
92
|
+
next.table [i] = NULL;
|
93
|
+
}
|
94
|
+
else {
|
95
|
+
|
96
|
+
// The new character is below the current character range.
|
97
|
+
unsigned short old_count = count;
|
98
|
+
count = (min + old_count) - c;
|
99
|
+
next.table = (trie_t**) realloc ((void*) next.table,
|
100
|
+
sizeof (trie_t*) * count);
|
101
|
+
zmq_assert (next.table);
|
102
|
+
memmove (next.table + min - c, next.table,
|
103
|
+
old_count * sizeof (trie_t*));
|
104
|
+
for (unsigned short i = 0; i != min - c; i++)
|
105
|
+
next.table [i] = NULL;
|
106
|
+
min = c;
|
107
|
+
}
|
108
|
+
}
|
109
|
+
|
110
|
+
// If next node does not exist, create one.
|
111
|
+
if (count == 1) {
|
112
|
+
if (!next.node) {
|
113
|
+
next.node = new (std::nothrow) trie_t;
|
114
|
+
alloc_assert (next.node);
|
115
|
+
}
|
116
|
+
next.node->add (prefix_ + 1, size_ - 1);
|
117
|
+
}
|
118
|
+
else {
|
119
|
+
if (!next.table [c - min]) {
|
120
|
+
next.table [c - min] = new (std::nothrow) trie_t;
|
121
|
+
alloc_assert (next.table [c - min]);
|
122
|
+
}
|
123
|
+
next.table [c - min]->add (prefix_ + 1, size_ - 1);
|
124
|
+
}
|
125
|
+
}
|
126
|
+
|
127
|
+
bool zmq::trie_t::rm (unsigned char *prefix_, size_t size_)
|
128
|
+
{
|
129
|
+
if (!size_) {
|
130
|
+
if (!refcnt)
|
131
|
+
return false;
|
132
|
+
refcnt--;
|
133
|
+
return true;
|
134
|
+
}
|
135
|
+
|
136
|
+
unsigned char c = *prefix_;
|
137
|
+
if (!count || c < min || c >= min + count)
|
138
|
+
return false;
|
139
|
+
|
140
|
+
trie_t *next_node =
|
141
|
+
count == 1 ? next.node : next.table [c - min];
|
142
|
+
|
143
|
+
if (!next_node)
|
144
|
+
return false;
|
145
|
+
|
146
|
+
return next_node->rm (prefix_ + 1, size_ - 1);
|
147
|
+
}
|
148
|
+
|
149
|
+
bool zmq::trie_t::check (unsigned char *data_, size_t size_)
|
150
|
+
{
|
151
|
+
// This function is on critical path. It deliberately doesn't use
|
152
|
+
// recursion to get a bit better performance.
|
153
|
+
trie_t *current = this;
|
154
|
+
while (true) {
|
155
|
+
|
156
|
+
// We've found a corresponding subscription!
|
157
|
+
if (current->refcnt)
|
158
|
+
return true;
|
159
|
+
|
160
|
+
// We've checked all the data and haven't found matching subscription.
|
161
|
+
if (!size_)
|
162
|
+
return false;
|
163
|
+
|
164
|
+
// If there's no corresponding slot for the first character
|
165
|
+
// of the prefix, the message does not match.
|
166
|
+
unsigned char c = *data_;
|
167
|
+
if (c < current->min || c >= current->min + current->count)
|
168
|
+
return false;
|
169
|
+
|
170
|
+
// Move to the next character.
|
171
|
+
if (current->count == 1)
|
172
|
+
current = current->next.node;
|
173
|
+
else {
|
174
|
+
current = current->next.table [c - current->min];
|
175
|
+
if (!current)
|
176
|
+
return false;
|
177
|
+
}
|
178
|
+
data_++;
|
179
|
+
size_--;
|
180
|
+
}
|
181
|
+
}
|