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,123 @@
|
|
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_SWAP_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_SWAP_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "../include/zmq.h"
|
25
|
+
|
26
|
+
#include <string>
|
27
|
+
#include "stdint.hpp"
|
28
|
+
|
29
|
+
namespace zmq
|
30
|
+
{
|
31
|
+
|
32
|
+
// This class implements a message swap. Messages are retrieved from
|
33
|
+
// the swap in the same order as they entered it.
|
34
|
+
|
35
|
+
class swap_t
|
36
|
+
{
|
37
|
+
public:
|
38
|
+
|
39
|
+
enum { default_block_size = 8192 };
|
40
|
+
|
41
|
+
// Creates the swap.
|
42
|
+
swap_t (int64_t filesize_);
|
43
|
+
|
44
|
+
~swap_t ();
|
45
|
+
|
46
|
+
int init ();
|
47
|
+
|
48
|
+
// Stores the message into the swap. The function
|
49
|
+
// returns false if the swap is full; true otherwise.
|
50
|
+
bool store (zmq_msg_t *msg_);
|
51
|
+
|
52
|
+
// Fetches the oldest message from the swap. It is an error
|
53
|
+
// to call this function when the swap is empty.
|
54
|
+
void fetch (zmq_msg_t *msg_);
|
55
|
+
|
56
|
+
void commit ();
|
57
|
+
|
58
|
+
void rollback ();
|
59
|
+
|
60
|
+
// Returns true if the swap is empty; false otherwise.
|
61
|
+
bool empty ();
|
62
|
+
|
63
|
+
|
64
|
+
// // Returns true if and only if the swap is full.
|
65
|
+
// bool full ();
|
66
|
+
|
67
|
+
// Returns true if the message fits into swap.
|
68
|
+
bool fits (zmq_msg_t *msg_);
|
69
|
+
|
70
|
+
private:
|
71
|
+
|
72
|
+
// Copies data from a memory buffer to the backing file.
|
73
|
+
// Wraps around when reaching maximum file size.
|
74
|
+
void copy_from_file (void *buffer_, size_t count_);
|
75
|
+
|
76
|
+
// Copies data from the backing file to the memory buffer.
|
77
|
+
// Wraps around when reaching end-of-file.
|
78
|
+
void copy_to_file (const void *buffer_, size_t count_);
|
79
|
+
|
80
|
+
// Returns the buffer space available.
|
81
|
+
int64_t buffer_space ();
|
82
|
+
|
83
|
+
void fill_buf (char *buf, int64_t pos);
|
84
|
+
|
85
|
+
void save_write_buf ();
|
86
|
+
|
87
|
+
// File descriptor to the backing file.
|
88
|
+
int fd;
|
89
|
+
|
90
|
+
// Name of the backing file.
|
91
|
+
std::string filename;
|
92
|
+
|
93
|
+
// Maximum size of the backing file.
|
94
|
+
int64_t filesize;
|
95
|
+
|
96
|
+
// File offset associated with the fd file descriptor.
|
97
|
+
int64_t file_pos;
|
98
|
+
|
99
|
+
// File offset the next message will be stored at.
|
100
|
+
int64_t write_pos;
|
101
|
+
|
102
|
+
// File offset the next message will be read from.
|
103
|
+
int64_t read_pos;
|
104
|
+
|
105
|
+
int64_t commit_pos;
|
106
|
+
|
107
|
+
size_t block_size;
|
108
|
+
|
109
|
+
char *buf1;
|
110
|
+
char *buf2;
|
111
|
+
char *read_buf;
|
112
|
+
char *write_buf;
|
113
|
+
|
114
|
+
int64_t write_buf_start_addr;
|
115
|
+
|
116
|
+
// Disable copying of the swap object.
|
117
|
+
swap_t (const swap_t&);
|
118
|
+
const swap_t &operator = (const swap_t&);
|
119
|
+
};
|
120
|
+
|
121
|
+
}
|
122
|
+
|
123
|
+
#endif
|
@@ -0,0 +1,310 @@
|
|
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 <string>
|
24
|
+
|
25
|
+
#include "../include/zmq.h"
|
26
|
+
|
27
|
+
#include "tcp_connecter.hpp"
|
28
|
+
#include "platform.hpp"
|
29
|
+
#include "ip.hpp"
|
30
|
+
#include "err.hpp"
|
31
|
+
|
32
|
+
#ifdef ZMQ_HAVE_WINDOWS
|
33
|
+
|
34
|
+
zmq::tcp_connecter_t::tcp_connecter_t () :
|
35
|
+
s (retired_fd)
|
36
|
+
{
|
37
|
+
memset (&addr, 0, sizeof (addr));
|
38
|
+
addr_len = 0;
|
39
|
+
}
|
40
|
+
|
41
|
+
zmq::tcp_connecter_t::~tcp_connecter_t ()
|
42
|
+
{
|
43
|
+
if (s != retired_fd)
|
44
|
+
close ();
|
45
|
+
}
|
46
|
+
|
47
|
+
int zmq::tcp_connecter_t::set_address (const char *protocol_, const char *addr_)
|
48
|
+
{
|
49
|
+
if (strcmp (protocol_, "tcp") == 0)
|
50
|
+
return resolve_ip_hostname (&addr, &addr_len, addr_);
|
51
|
+
|
52
|
+
errno = EPROTONOSUPPORT;
|
53
|
+
return -1;
|
54
|
+
}
|
55
|
+
|
56
|
+
int zmq::tcp_connecter_t::open ()
|
57
|
+
{
|
58
|
+
zmq_assert (s == retired_fd);
|
59
|
+
|
60
|
+
// Create the socket.
|
61
|
+
s = socket (addr.ss_family, SOCK_STREAM, IPPROTO_TCP);
|
62
|
+
if (s == INVALID_SOCKET) {
|
63
|
+
wsa_error_to_errno ();
|
64
|
+
return -1;
|
65
|
+
}
|
66
|
+
|
67
|
+
// Set to non-blocking mode.
|
68
|
+
unsigned long argp = 1;
|
69
|
+
int rc = ioctlsocket (s, FIONBIO, &argp);
|
70
|
+
wsa_assert (rc != SOCKET_ERROR);
|
71
|
+
|
72
|
+
// Disable Nagle's algorithm.
|
73
|
+
int flag = 1;
|
74
|
+
rc = setsockopt (s, IPPROTO_TCP, TCP_NODELAY, (char*) &flag,
|
75
|
+
sizeof (int));
|
76
|
+
wsa_assert (rc != SOCKET_ERROR);
|
77
|
+
|
78
|
+
// Connect to the remote peer.
|
79
|
+
rc = ::connect (s, (sockaddr*) &addr, addr_len);
|
80
|
+
|
81
|
+
// Connect was successfull immediately.
|
82
|
+
if (rc == 0)
|
83
|
+
return 0;
|
84
|
+
|
85
|
+
// Asynchronous connect was launched.
|
86
|
+
if (rc == SOCKET_ERROR && (WSAGetLastError () == WSAEINPROGRESS ||
|
87
|
+
WSAGetLastError () == WSAEWOULDBLOCK)) {
|
88
|
+
errno = EAGAIN;
|
89
|
+
return -1;
|
90
|
+
}
|
91
|
+
|
92
|
+
wsa_error_to_errno ();
|
93
|
+
return -1;
|
94
|
+
}
|
95
|
+
|
96
|
+
int zmq::tcp_connecter_t::close ()
|
97
|
+
{
|
98
|
+
zmq_assert (s != retired_fd);
|
99
|
+
int rc = closesocket (s);
|
100
|
+
wsa_assert (rc != SOCKET_ERROR);
|
101
|
+
s = retired_fd;
|
102
|
+
return 0;
|
103
|
+
}
|
104
|
+
|
105
|
+
zmq::fd_t zmq::tcp_connecter_t::get_fd ()
|
106
|
+
{
|
107
|
+
return s;
|
108
|
+
}
|
109
|
+
|
110
|
+
zmq::fd_t zmq::tcp_connecter_t::connect ()
|
111
|
+
{
|
112
|
+
// Nonblocking connect have finished. Check whether an error occured.
|
113
|
+
int err = 0;
|
114
|
+
socklen_t len = sizeof err;
|
115
|
+
int rc = getsockopt (s, SOL_SOCKET, SO_ERROR, (char*) &err, &len);
|
116
|
+
zmq_assert (rc == 0);
|
117
|
+
if (err != 0) {
|
118
|
+
|
119
|
+
// Assert that the error was caused by the networking problems
|
120
|
+
// rather than 0MQ bug.
|
121
|
+
if (err == WSAECONNREFUSED || err == WSAETIMEDOUT ||
|
122
|
+
err == WSAECONNABORTED || err == WSAEHOSTUNREACH ||
|
123
|
+
err == WSAENETUNREACH || err == WSAENETDOWN)
|
124
|
+
return retired_fd;
|
125
|
+
|
126
|
+
wsa_assert_no (err);
|
127
|
+
}
|
128
|
+
|
129
|
+
// Return the newly connected socket.
|
130
|
+
fd_t result = s;
|
131
|
+
s = retired_fd;
|
132
|
+
return result;
|
133
|
+
}
|
134
|
+
|
135
|
+
#else
|
136
|
+
|
137
|
+
#include <unistd.h>
|
138
|
+
#include <sys/socket.h>
|
139
|
+
#include <arpa/inet.h>
|
140
|
+
#include <netinet/tcp.h>
|
141
|
+
#include <netinet/in.h>
|
142
|
+
#include <netdb.h>
|
143
|
+
#include <fcntl.h>
|
144
|
+
|
145
|
+
#ifdef ZMQ_HAVE_OPENVMS
|
146
|
+
#include <ioctl.h>
|
147
|
+
#endif
|
148
|
+
|
149
|
+
zmq::tcp_connecter_t::tcp_connecter_t () :
|
150
|
+
s (retired_fd)
|
151
|
+
{
|
152
|
+
memset (&addr, 0, sizeof (addr));
|
153
|
+
}
|
154
|
+
|
155
|
+
zmq::tcp_connecter_t::~tcp_connecter_t ()
|
156
|
+
{
|
157
|
+
if (s != retired_fd)
|
158
|
+
close ();
|
159
|
+
}
|
160
|
+
|
161
|
+
int zmq::tcp_connecter_t::set_address (const char *protocol_, const char *addr_)
|
162
|
+
{
|
163
|
+
if (strcmp (protocol_, "tcp") == 0)
|
164
|
+
return resolve_ip_hostname (&addr, &addr_len, addr_);
|
165
|
+
else if (strcmp (protocol_, "ipc") == 0)
|
166
|
+
return resolve_local_path (&addr, &addr_len, addr_);
|
167
|
+
|
168
|
+
errno = EPROTONOSUPPORT;
|
169
|
+
return -1;
|
170
|
+
}
|
171
|
+
|
172
|
+
int zmq::tcp_connecter_t::open ()
|
173
|
+
{
|
174
|
+
zmq_assert (s == retired_fd);
|
175
|
+
struct sockaddr *sa = (struct sockaddr*) &addr;
|
176
|
+
|
177
|
+
if (AF_UNIX != sa->sa_family) {
|
178
|
+
|
179
|
+
// Create the socket.
|
180
|
+
s = socket (sa->sa_family, SOCK_STREAM, IPPROTO_TCP);
|
181
|
+
if (s == -1)
|
182
|
+
return -1;
|
183
|
+
|
184
|
+
// Set to non-blocking mode.
|
185
|
+
#ifdef ZMQ_HAVE_OPENVMS
|
186
|
+
int flags = 1;
|
187
|
+
int rc = ioctl (s, FIONBIO, &flags);
|
188
|
+
errno_assert (rc != -1);
|
189
|
+
#else
|
190
|
+
int flags = fcntl (s, F_GETFL, 0);
|
191
|
+
if (flags == -1)
|
192
|
+
flags = 0;
|
193
|
+
int rc = fcntl (s, F_SETFL, flags | O_NONBLOCK);
|
194
|
+
errno_assert (rc != -1);
|
195
|
+
#endif
|
196
|
+
|
197
|
+
// Disable Nagle's algorithm.
|
198
|
+
int flag = 1;
|
199
|
+
rc = setsockopt (s, IPPROTO_TCP, TCP_NODELAY, (char*) &flag,
|
200
|
+
sizeof (int));
|
201
|
+
errno_assert (rc == 0);
|
202
|
+
|
203
|
+
#ifdef ZMQ_HAVE_OPENVMS
|
204
|
+
// Disable delayed acknowledgements.
|
205
|
+
flag = 1;
|
206
|
+
rc = setsockopt (s, IPPROTO_TCP, TCP_NODELACK, (char*) &flag,
|
207
|
+
sizeof (int));
|
208
|
+
errno_assert (rc != SOCKET_ERROR);
|
209
|
+
#endif
|
210
|
+
|
211
|
+
// Connect to the remote peer.
|
212
|
+
rc = ::connect (s, (struct sockaddr*) &addr, addr_len);
|
213
|
+
|
214
|
+
// Connect was successfull immediately.
|
215
|
+
if (rc == 0)
|
216
|
+
return 0;
|
217
|
+
|
218
|
+
// Asynchronous connect was launched.
|
219
|
+
if (rc == -1 && errno == EINPROGRESS) {
|
220
|
+
errno = EAGAIN;
|
221
|
+
return -1;
|
222
|
+
}
|
223
|
+
|
224
|
+
// Error occured.
|
225
|
+
int err = errno;
|
226
|
+
close ();
|
227
|
+
errno = err;
|
228
|
+
return -1;
|
229
|
+
}
|
230
|
+
|
231
|
+
#ifndef ZMQ_HAVE_OPENVMS
|
232
|
+
else {
|
233
|
+
|
234
|
+
// Create the socket.
|
235
|
+
zmq_assert (AF_UNIX == sa->sa_family);
|
236
|
+
s = socket (AF_UNIX, SOCK_STREAM, 0);
|
237
|
+
if (s == -1)
|
238
|
+
return -1;
|
239
|
+
|
240
|
+
// Set the non-blocking flag.
|
241
|
+
int flag = fcntl (s, F_GETFL, 0);
|
242
|
+
if (flag == -1)
|
243
|
+
flag = 0;
|
244
|
+
int rc = fcntl (s, F_SETFL, flag | O_NONBLOCK);
|
245
|
+
errno_assert (rc != -1);
|
246
|
+
|
247
|
+
// Connect to the remote peer.
|
248
|
+
rc = ::connect (s, (struct sockaddr*) &addr, sizeof (sockaddr_un));
|
249
|
+
|
250
|
+
// Connect was successfull immediately.
|
251
|
+
if (rc == 0)
|
252
|
+
return 0;
|
253
|
+
|
254
|
+
// Error occured.
|
255
|
+
int err = errno;
|
256
|
+
close ();
|
257
|
+
errno = err;
|
258
|
+
return -1;
|
259
|
+
}
|
260
|
+
#endif
|
261
|
+
|
262
|
+
zmq_assert (false);
|
263
|
+
return -1;
|
264
|
+
}
|
265
|
+
|
266
|
+
int zmq::tcp_connecter_t::close ()
|
267
|
+
{
|
268
|
+
zmq_assert (s != retired_fd);
|
269
|
+
int rc = ::close (s);
|
270
|
+
if (rc != 0)
|
271
|
+
return -1;
|
272
|
+
s = retired_fd;
|
273
|
+
return 0;
|
274
|
+
}
|
275
|
+
|
276
|
+
zmq::fd_t zmq::tcp_connecter_t::get_fd ()
|
277
|
+
{
|
278
|
+
return s;
|
279
|
+
}
|
280
|
+
|
281
|
+
zmq::fd_t zmq::tcp_connecter_t::connect ()
|
282
|
+
{
|
283
|
+
// Following code should handle both Berkeley-derived socket
|
284
|
+
// implementations and Solaris.
|
285
|
+
int err = 0;
|
286
|
+
#if defined ZMQ_HAVE_HPUX
|
287
|
+
int len = sizeof (err);
|
288
|
+
#else
|
289
|
+
socklen_t len = sizeof (err);
|
290
|
+
#endif
|
291
|
+
int rc = getsockopt (s, SOL_SOCKET, SO_ERROR, (char*) &err, &len);
|
292
|
+
if (rc == -1)
|
293
|
+
err = errno;
|
294
|
+
if (err != 0) {
|
295
|
+
|
296
|
+
// Assert if the error was caused by 0MQ bug.
|
297
|
+
// Networking problems are OK. No need to assert.
|
298
|
+
errno = err;
|
299
|
+
errno_assert (errno == ECONNREFUSED || errno == ECONNRESET ||
|
300
|
+
errno == ETIMEDOUT || errno == EHOSTUNREACH);
|
301
|
+
|
302
|
+
return retired_fd;
|
303
|
+
}
|
304
|
+
|
305
|
+
fd_t result = s;
|
306
|
+
s = retired_fd;
|
307
|
+
return result;
|
308
|
+
}
|
309
|
+
|
310
|
+
#endif
|
@@ -0,0 +1,81 @@
|
|
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_CONNECTER_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_TCP_CONNECTER_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "platform.hpp"
|
25
|
+
#include "fd.hpp"
|
26
|
+
|
27
|
+
#ifdef ZMQ_HAVE_WINDOWS
|
28
|
+
#include "windows.hpp"
|
29
|
+
#else
|
30
|
+
#include <sys/types.h>
|
31
|
+
#include <sys/socket.h>
|
32
|
+
#endif
|
33
|
+
|
34
|
+
namespace zmq
|
35
|
+
{
|
36
|
+
|
37
|
+
// The class encapsulating simple TCP listening socket.
|
38
|
+
|
39
|
+
class tcp_connecter_t
|
40
|
+
{
|
41
|
+
public:
|
42
|
+
|
43
|
+
tcp_connecter_t ();
|
44
|
+
~tcp_connecter_t ();
|
45
|
+
|
46
|
+
// Set address to connect to.
|
47
|
+
int set_address (const char *protocol, const char *addr_);
|
48
|
+
|
49
|
+
// Open TCP connecting socket. Address is in
|
50
|
+
// <hostname>:<port-number> format. Returns -1 in case of error,
|
51
|
+
// 0 if connect was successfull immediately and 1 if async connect
|
52
|
+
// was launched.
|
53
|
+
int open ();
|
54
|
+
|
55
|
+
// Close the connecting socket.
|
56
|
+
int close ();
|
57
|
+
|
58
|
+
// Get the file descriptor to poll on to get notified about
|
59
|
+
// connection success.
|
60
|
+
fd_t get_fd ();
|
61
|
+
|
62
|
+
// Get the file descriptor of newly created connection. Returns
|
63
|
+
// retired_fd if the connection was unsuccessfull.
|
64
|
+
fd_t connect ();
|
65
|
+
|
66
|
+
private:
|
67
|
+
|
68
|
+
// Address to connect to.
|
69
|
+
sockaddr_storage addr;
|
70
|
+
socklen_t addr_len;
|
71
|
+
|
72
|
+
// Underlying socket.
|
73
|
+
fd_t s;
|
74
|
+
|
75
|
+
tcp_connecter_t (const tcp_connecter_t&);
|
76
|
+
const tcp_connecter_t &operator = (const tcp_connecter_t&);
|
77
|
+
};
|
78
|
+
|
79
|
+
}
|
80
|
+
|
81
|
+
#endif
|