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,34 @@
|
|
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_BLOB_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_BLOB_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include <string>
|
25
|
+
|
26
|
+
namespace zmq
|
27
|
+
{
|
28
|
+
|
29
|
+
// Object to hold dynamically allocated opaque binary data.
|
30
|
+
typedef std::basic_string <unsigned char> blob_t;
|
31
|
+
|
32
|
+
}
|
33
|
+
|
34
|
+
#endif
|
@@ -0,0 +1,118 @@
|
|
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 "clock.hpp"
|
22
|
+
#include "platform.hpp"
|
23
|
+
#include "likely.hpp"
|
24
|
+
#include "config.hpp"
|
25
|
+
#include "err.hpp"
|
26
|
+
|
27
|
+
#include <stddef.h>
|
28
|
+
|
29
|
+
#if defined _MSC_VER
|
30
|
+
#include <intrin.h>
|
31
|
+
#endif
|
32
|
+
|
33
|
+
#if !defined ZMQ_HAVE_WINDOWS
|
34
|
+
#include <sys/time.h>
|
35
|
+
#endif
|
36
|
+
|
37
|
+
zmq::clock_t::clock_t () :
|
38
|
+
last_tsc (rdtsc ()),
|
39
|
+
last_time (now_us () / 1000)
|
40
|
+
{
|
41
|
+
}
|
42
|
+
|
43
|
+
zmq::clock_t::~clock_t ()
|
44
|
+
{
|
45
|
+
}
|
46
|
+
|
47
|
+
uint64_t zmq::clock_t::now_us ()
|
48
|
+
{
|
49
|
+
#if defined ZMQ_HAVE_WINDOWS
|
50
|
+
|
51
|
+
// Get the high resolution counter's accuracy.
|
52
|
+
LARGE_INTEGER ticksPerSecond;
|
53
|
+
QueryPerformanceFrequency (&ticksPerSecond);
|
54
|
+
|
55
|
+
// What time is it?
|
56
|
+
LARGE_INTEGER tick;
|
57
|
+
QueryPerformanceCounter (&tick);
|
58
|
+
|
59
|
+
// Convert the tick number into the number of seconds
|
60
|
+
// since the system was started.
|
61
|
+
double ticks_div = (double) (ticksPerSecond.QuadPart / 1000000);
|
62
|
+
return (uint64_t) (tick.QuadPart / ticks_div);
|
63
|
+
|
64
|
+
#else
|
65
|
+
|
66
|
+
// Use POSIX gettimeofday function to get precise time.
|
67
|
+
struct timeval tv;
|
68
|
+
int rc = gettimeofday (&tv, NULL);
|
69
|
+
errno_assert (rc == 0);
|
70
|
+
return (tv.tv_sec * (uint64_t) 1000000 + tv.tv_usec);
|
71
|
+
|
72
|
+
#endif
|
73
|
+
}
|
74
|
+
|
75
|
+
uint64_t zmq::clock_t::now_ms ()
|
76
|
+
{
|
77
|
+
uint64_t tsc = rdtsc ();
|
78
|
+
|
79
|
+
// If TSC is not supported, get precise time and chop off the microseconds.
|
80
|
+
if (!tsc)
|
81
|
+
return now_us () / 1000;
|
82
|
+
|
83
|
+
// If TSC haven't jumped back (in case of migration to a different
|
84
|
+
// CPU core) and if not too much time elapsed since last measurement,
|
85
|
+
// we can return cached time value.
|
86
|
+
if (likely (tsc - last_tsc <= (clock_precision / 2) && tsc >= last_tsc))
|
87
|
+
return last_time;
|
88
|
+
|
89
|
+
last_tsc = tsc;
|
90
|
+
last_time = now_us () / 1000;
|
91
|
+
return last_time;
|
92
|
+
}
|
93
|
+
|
94
|
+
uint64_t zmq::clock_t::rdtsc ()
|
95
|
+
{
|
96
|
+
#if (defined _MSC_VER && (defined _M_IX86 || defined _M_X64))
|
97
|
+
return __rdtsc ();
|
98
|
+
#elif (defined __GNUC__ && (defined __i386__ || defined __x86_64__))
|
99
|
+
uint32_t low, high;
|
100
|
+
__asm__ volatile ("rdtsc" : "=a" (low), "=d" (high));
|
101
|
+
return (uint64_t) high << 32 | low;
|
102
|
+
#elif (defined __SUNPRO_CC && (__SUNPRO_CC >= 0x5100) && (defined __i386 || \
|
103
|
+
defined __amd64 || defined __x86_64))
|
104
|
+
union {
|
105
|
+
uint64_t u64val;
|
106
|
+
uint32_t u32val [2];
|
107
|
+
} tsc;
|
108
|
+
asm("rdtsc" : "=a" (tsc.u32val [0]), "=d" (tsc.u32val [1]));
|
109
|
+
return tsc.u64val;
|
110
|
+
#elif defined(__s390__)
|
111
|
+
uint64_t tsc;
|
112
|
+
asm("\tstck\t%0\n" : "=Q" (tsc) : : "cc");
|
113
|
+
tsc >>= 12; /* convert to microseconds just to be consistent */
|
114
|
+
return(tsc);
|
115
|
+
#else
|
116
|
+
return 0;
|
117
|
+
#endif
|
118
|
+
}
|
@@ -0,0 +1,60 @@
|
|
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_CLOCK_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_CLOCK_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "stdint.hpp"
|
25
|
+
|
26
|
+
namespace zmq
|
27
|
+
{
|
28
|
+
|
29
|
+
class clock_t
|
30
|
+
{
|
31
|
+
public:
|
32
|
+
|
33
|
+
clock_t ();
|
34
|
+
~clock_t ();
|
35
|
+
|
36
|
+
// CPU's timestamp counter. Returns 0 if it's not available.
|
37
|
+
static uint64_t rdtsc ();
|
38
|
+
|
39
|
+
// High precision timestamp.
|
40
|
+
static uint64_t now_us ();
|
41
|
+
|
42
|
+
// Low precision timestamp. In tight loops generating it can be
|
43
|
+
// 10 to 100 times faster than the high precision timestamp.
|
44
|
+
uint64_t now_ms ();
|
45
|
+
|
46
|
+
private:
|
47
|
+
|
48
|
+
// TSC timestamp of when last time measurement was made.
|
49
|
+
uint64_t last_tsc;
|
50
|
+
|
51
|
+
// Physical time corresponding to the TSC above (in milliseconds).
|
52
|
+
uint64_t last_time;
|
53
|
+
|
54
|
+
clock_t (const clock_t&);
|
55
|
+
const clock_t &operator = (const clock_t&);
|
56
|
+
};
|
57
|
+
|
58
|
+
}
|
59
|
+
|
60
|
+
#endif
|
@@ -0,0 +1,39 @@
|
|
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 "command.hpp"
|
24
|
+
|
25
|
+
void zmq::deallocate_command (command_t *cmd_)
|
26
|
+
{
|
27
|
+
switch (cmd_->type) {
|
28
|
+
case command_t::attach:
|
29
|
+
if (cmd_->args.attach.peer_identity)
|
30
|
+
free (cmd_->args.attach.peer_identity);
|
31
|
+
break;
|
32
|
+
case command_t::bind:
|
33
|
+
if (cmd_->args.bind.peer_identity)
|
34
|
+
free (cmd_->args.bind.peer_identity);
|
35
|
+
break;
|
36
|
+
default:
|
37
|
+
/* noop */;
|
38
|
+
}
|
39
|
+
}
|
@@ -0,0 +1,147 @@
|
|
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_COMMAND_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_COMMAND_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "stdint.hpp"
|
25
|
+
|
26
|
+
namespace zmq
|
27
|
+
{
|
28
|
+
|
29
|
+
// This structure defines the commands that can be sent between threads.
|
30
|
+
|
31
|
+
struct command_t
|
32
|
+
{
|
33
|
+
// Object to process the command.
|
34
|
+
class object_t *destination;
|
35
|
+
|
36
|
+
enum type_t
|
37
|
+
{
|
38
|
+
stop,
|
39
|
+
plug,
|
40
|
+
own,
|
41
|
+
attach,
|
42
|
+
bind,
|
43
|
+
activate_reader,
|
44
|
+
activate_writer,
|
45
|
+
pipe_term,
|
46
|
+
pipe_term_ack,
|
47
|
+
term_req,
|
48
|
+
term,
|
49
|
+
term_ack,
|
50
|
+
reap,
|
51
|
+
reaped,
|
52
|
+
done
|
53
|
+
} type;
|
54
|
+
|
55
|
+
union {
|
56
|
+
|
57
|
+
// Sent to I/O thread to let it know that it should
|
58
|
+
// terminate itself.
|
59
|
+
struct {
|
60
|
+
} stop;
|
61
|
+
|
62
|
+
// Sent to I/O object to make it register with its I/O thread.
|
63
|
+
struct {
|
64
|
+
} plug;
|
65
|
+
|
66
|
+
// Sent to socket to let it know about the newly created object.
|
67
|
+
struct {
|
68
|
+
class own_t *object;
|
69
|
+
} own;
|
70
|
+
|
71
|
+
// Attach the engine to the session. If engine is NULL, it informs
|
72
|
+
// session that the connection have failed.
|
73
|
+
struct {
|
74
|
+
struct i_engine *engine;
|
75
|
+
unsigned char peer_identity_size;
|
76
|
+
unsigned char *peer_identity;
|
77
|
+
} attach;
|
78
|
+
|
79
|
+
// Sent from session to socket to establish pipe(s) between them.
|
80
|
+
// Caller have used inc_seqnum beforehand sending the command.
|
81
|
+
struct {
|
82
|
+
class reader_t *in_pipe;
|
83
|
+
class writer_t *out_pipe;
|
84
|
+
unsigned char peer_identity_size;
|
85
|
+
unsigned char *peer_identity;
|
86
|
+
} bind;
|
87
|
+
|
88
|
+
// Sent by pipe writer to inform dormant pipe reader that there
|
89
|
+
// are messages in the pipe.
|
90
|
+
struct {
|
91
|
+
} activate_reader;
|
92
|
+
|
93
|
+
// Sent by pipe reader to inform pipe writer about how many
|
94
|
+
// messages it has read so far.
|
95
|
+
struct {
|
96
|
+
uint64_t msgs_read;
|
97
|
+
} activate_writer;
|
98
|
+
|
99
|
+
// Sent by pipe reader to pipe writer to ask it to terminate
|
100
|
+
// its end of the pipe.
|
101
|
+
struct {
|
102
|
+
} pipe_term;
|
103
|
+
|
104
|
+
// Pipe writer acknowledges pipe_term command.
|
105
|
+
struct {
|
106
|
+
} pipe_term_ack;
|
107
|
+
|
108
|
+
// Sent by I/O object ot the socket to request the shutdown of
|
109
|
+
// the I/O object.
|
110
|
+
struct {
|
111
|
+
class own_t *object;
|
112
|
+
} term_req;
|
113
|
+
|
114
|
+
// Sent by socket to I/O object to start its shutdown.
|
115
|
+
struct {
|
116
|
+
int linger;
|
117
|
+
} term;
|
118
|
+
|
119
|
+
// Sent by I/O object to the socket to acknowledge it has
|
120
|
+
// shut down.
|
121
|
+
struct {
|
122
|
+
} term_ack;
|
123
|
+
|
124
|
+
// Transfers the ownership of the closed socket
|
125
|
+
// to the reaper thread.
|
126
|
+
struct {
|
127
|
+
class socket_base_t *socket;
|
128
|
+
} reap;
|
129
|
+
|
130
|
+
// Closed socket notifies the reaper that it's already deallocated.
|
131
|
+
struct {
|
132
|
+
} reaped;
|
133
|
+
|
134
|
+
// Sent by reaper thread to the term thread when all the sockets
|
135
|
+
// are successfully deallocated.
|
136
|
+
struct {
|
137
|
+
} done;
|
138
|
+
|
139
|
+
} args;
|
140
|
+
};
|
141
|
+
|
142
|
+
// Function to deallocate dynamically allocated components of the command.
|
143
|
+
void deallocate_command (command_t *cmd_);
|
144
|
+
|
145
|
+
}
|
146
|
+
|
147
|
+
#endif
|
@@ -0,0 +1,88 @@
|
|
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_CONFIG_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_CONFIG_HPP_INCLUDED__
|
23
|
+
|
24
|
+
namespace zmq
|
25
|
+
{
|
26
|
+
|
27
|
+
// Compile-time settings.
|
28
|
+
|
29
|
+
enum
|
30
|
+
{
|
31
|
+
// Maximum number of sockets that can be opened at the same time.
|
32
|
+
max_sockets = 512,
|
33
|
+
|
34
|
+
// Number of new messages in message pipe needed to trigger new memory
|
35
|
+
// allocation. Setting this parameter to 256 decreases the impact of
|
36
|
+
// memory allocation by approximately 99.6%
|
37
|
+
message_pipe_granularity = 256,
|
38
|
+
|
39
|
+
// Determines how often does socket poll for new commands when it
|
40
|
+
// still has unprocessed messages to handle. Thus, if it is set to 100,
|
41
|
+
// socket will process 100 inbound messages before doing the poll.
|
42
|
+
// If there are no unprocessed messages available, poll is done
|
43
|
+
// immediately. Decreasing the value trades overall latency for more
|
44
|
+
// real-time behaviour (less latency peaks).
|
45
|
+
inbound_poll_rate = 100,
|
46
|
+
|
47
|
+
// Maximal batching size for engines with receiving functionality.
|
48
|
+
// So, if there are 10 messages that fit into the batch size, all of
|
49
|
+
// them may be read by a single 'recv' system call, thus avoiding
|
50
|
+
// unnecessary network stack traversals.
|
51
|
+
in_batch_size = 8192,
|
52
|
+
|
53
|
+
// Maximal batching size for engines with sending functionality.
|
54
|
+
// So, if there are 10 messages that fit into the batch size, all of
|
55
|
+
// them may be written by a single 'send' system call, thus avoiding
|
56
|
+
// unnecessary network stack traversals.
|
57
|
+
out_batch_size = 8192,
|
58
|
+
|
59
|
+
// Maximal delta between high and low watermark.
|
60
|
+
max_wm_delta = 1024,
|
61
|
+
|
62
|
+
// Swap inteligently batches data for writing to disk. The size of
|
63
|
+
// the batch in bytes is specified by this option.
|
64
|
+
swap_block_size = 8192,
|
65
|
+
|
66
|
+
// Maximum number of events the I/O thread can process in one go.
|
67
|
+
max_io_events = 256,
|
68
|
+
|
69
|
+
// Maximal delay to process command in API thread (in CPU ticks).
|
70
|
+
// 3,000,000 ticks equals to 1 - 2 milliseconds on current CPUs.
|
71
|
+
// Note that delay is only applied when there is continuous stream of
|
72
|
+
// messages to process. If not so, commands are processed immediately.
|
73
|
+
max_command_delay = 3000000,
|
74
|
+
|
75
|
+
// Low-precision clock precision in CPU ticks. 1ms. Value of 1000000
|
76
|
+
// should be OK for CPU frequencies above 1GHz. If should work
|
77
|
+
// reasonably well for CPU frequencies above 500MHz. For lower CPU
|
78
|
+
// frequencies you may consider lowering this value to get best
|
79
|
+
// possible latencies.
|
80
|
+
clock_precision = 1000000,
|
81
|
+
|
82
|
+
// Maximum transport data unit size for PGM (TPDU).
|
83
|
+
pgm_max_tpdu = 1500
|
84
|
+
};
|
85
|
+
|
86
|
+
}
|
87
|
+
|
88
|
+
#endif
|