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,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_ARRAY_INCLUDED__
|
22
|
+
#define __ZMQ_ARRAY_INCLUDED__
|
23
|
+
|
24
|
+
#include <vector>
|
25
|
+
#include <algorithm>
|
26
|
+
|
27
|
+
namespace zmq
|
28
|
+
{
|
29
|
+
|
30
|
+
// Base class for objects stored in the array. Note that each object can
|
31
|
+
// be stored in at most one array.
|
32
|
+
|
33
|
+
class array_item_t
|
34
|
+
{
|
35
|
+
public:
|
36
|
+
|
37
|
+
inline array_item_t () :
|
38
|
+
array_index (-1)
|
39
|
+
{
|
40
|
+
}
|
41
|
+
|
42
|
+
// The destructor doesn't have to be virtual. It is mad virtual
|
43
|
+
// just to keep ICC and code checking tools from complaining.
|
44
|
+
inline virtual ~array_item_t ()
|
45
|
+
{
|
46
|
+
}
|
47
|
+
|
48
|
+
inline void set_array_index (int index_)
|
49
|
+
{
|
50
|
+
array_index = index_;
|
51
|
+
}
|
52
|
+
|
53
|
+
inline int get_array_index ()
|
54
|
+
{
|
55
|
+
return array_index;
|
56
|
+
}
|
57
|
+
|
58
|
+
private:
|
59
|
+
|
60
|
+
int array_index;
|
61
|
+
|
62
|
+
array_item_t (const array_item_t&);
|
63
|
+
const array_item_t &operator = (const array_item_t&);
|
64
|
+
};
|
65
|
+
|
66
|
+
// Fast array implementation with O(1) access to item, insertion and
|
67
|
+
// removal. Array stores pointers rather than objects. The objects have
|
68
|
+
// to be derived from array_item_t class.
|
69
|
+
|
70
|
+
template <typename T> class array_t
|
71
|
+
{
|
72
|
+
public:
|
73
|
+
|
74
|
+
typedef typename std::vector <T*>::size_type size_type;
|
75
|
+
|
76
|
+
inline array_t ()
|
77
|
+
{
|
78
|
+
}
|
79
|
+
|
80
|
+
inline ~array_t ()
|
81
|
+
{
|
82
|
+
}
|
83
|
+
|
84
|
+
inline size_type size ()
|
85
|
+
{
|
86
|
+
return items.size ();
|
87
|
+
}
|
88
|
+
|
89
|
+
inline bool empty ()
|
90
|
+
{
|
91
|
+
return items.empty ();
|
92
|
+
}
|
93
|
+
|
94
|
+
inline T *&operator [] (size_type index_)
|
95
|
+
{
|
96
|
+
return items [index_];
|
97
|
+
}
|
98
|
+
|
99
|
+
inline void push_back (T *item_)
|
100
|
+
{
|
101
|
+
if (item_)
|
102
|
+
item_->set_array_index (items.size ());
|
103
|
+
items.push_back (item_);
|
104
|
+
}
|
105
|
+
|
106
|
+
inline void erase (T *item_) {
|
107
|
+
erase (item_->get_array_index ());
|
108
|
+
}
|
109
|
+
|
110
|
+
inline void erase (size_type index_) {
|
111
|
+
if (items.back ())
|
112
|
+
items.back ()->set_array_index (index_);
|
113
|
+
items [index_] = items.back ();
|
114
|
+
items.pop_back ();
|
115
|
+
}
|
116
|
+
|
117
|
+
inline void swap (size_type index1_, size_type index2_)
|
118
|
+
{
|
119
|
+
if (items [index1_])
|
120
|
+
items [index1_]->set_array_index (index2_);
|
121
|
+
if (items [index2_])
|
122
|
+
items [index2_]->set_array_index (index1_);
|
123
|
+
std::swap (items [index1_], items [index2_]);
|
124
|
+
}
|
125
|
+
|
126
|
+
inline void clear ()
|
127
|
+
{
|
128
|
+
items.clear ();
|
129
|
+
}
|
130
|
+
|
131
|
+
inline size_type index (T *item_)
|
132
|
+
{
|
133
|
+
return (size_type) item_->get_array_index ();
|
134
|
+
}
|
135
|
+
|
136
|
+
private:
|
137
|
+
|
138
|
+
typedef std::vector <T*> items_t;
|
139
|
+
items_t items;
|
140
|
+
|
141
|
+
array_t (const array_t&);
|
142
|
+
const array_t &operator = (const array_t&);
|
143
|
+
};
|
144
|
+
|
145
|
+
}
|
146
|
+
|
147
|
+
#endif
|
@@ -0,0 +1,164 @@
|
|
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_ATOMIC_COUNTER_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_ATOMIC_COUNTER_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "stdint.hpp"
|
25
|
+
#include "platform.hpp"
|
26
|
+
|
27
|
+
#if defined ZMQ_FORCE_MUTEXES
|
28
|
+
#define ZMQ_ATOMIC_COUNTER_MUTEX
|
29
|
+
#elif (defined __i386__ || defined __x86_64__) && defined __GNUC__
|
30
|
+
#define ZMQ_ATOMIC_COUNTER_X86
|
31
|
+
#elif defined ZMQ_HAVE_WINDOWS
|
32
|
+
#define ZMQ_ATOMIC_COUNTER_WINDOWS
|
33
|
+
#elif (defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_NETBSD)
|
34
|
+
#define ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
35
|
+
#else
|
36
|
+
#define ZMQ_ATOMIC_COUNTER_MUTEX
|
37
|
+
#endif
|
38
|
+
|
39
|
+
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
40
|
+
#include "mutex.hpp"
|
41
|
+
#elif defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
42
|
+
#include "windows.hpp"
|
43
|
+
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
44
|
+
#include <atomic.h>
|
45
|
+
#endif
|
46
|
+
|
47
|
+
namespace zmq
|
48
|
+
{
|
49
|
+
|
50
|
+
// This class represents an integer that can be incremented/decremented
|
51
|
+
// in atomic fashion.
|
52
|
+
|
53
|
+
class atomic_counter_t
|
54
|
+
{
|
55
|
+
public:
|
56
|
+
|
57
|
+
typedef uint32_t integer_t;
|
58
|
+
|
59
|
+
inline atomic_counter_t (integer_t value_ = 0) :
|
60
|
+
value (value_)
|
61
|
+
{
|
62
|
+
}
|
63
|
+
|
64
|
+
inline ~atomic_counter_t ()
|
65
|
+
{
|
66
|
+
}
|
67
|
+
|
68
|
+
// Set counter value (not thread-safe).
|
69
|
+
inline void set (integer_t value_)
|
70
|
+
{
|
71
|
+
value = value_;
|
72
|
+
}
|
73
|
+
|
74
|
+
// Atomic addition. Returns the old value.
|
75
|
+
inline integer_t add (integer_t increment_)
|
76
|
+
{
|
77
|
+
integer_t old_value;
|
78
|
+
|
79
|
+
#if defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
80
|
+
old_value = InterlockedExchangeAdd ((LONG*) &value, increment_);
|
81
|
+
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
82
|
+
integer_t new_value = atomic_add_32_nv (&value, increment_);
|
83
|
+
old_value = new_value - increment_;
|
84
|
+
#elif defined ZMQ_ATOMIC_COUNTER_X86
|
85
|
+
__asm__ volatile (
|
86
|
+
"lock; xadd %0, %1 \n\t"
|
87
|
+
: "=r" (old_value), "=m" (value)
|
88
|
+
: "0" (increment_), "m" (value)
|
89
|
+
: "cc", "memory");
|
90
|
+
#elif defined ZMQ_ATOMIC_COUNTER_MUTEX
|
91
|
+
sync.lock ();
|
92
|
+
old_value = value;
|
93
|
+
value += increment_;
|
94
|
+
sync.unlock ();
|
95
|
+
#else
|
96
|
+
#error atomic_counter is not implemented for this platform
|
97
|
+
#endif
|
98
|
+
return old_value;
|
99
|
+
}
|
100
|
+
|
101
|
+
// Atomic subtraction. Returns false if the counter drops to zero.
|
102
|
+
inline bool sub (integer_t decrement)
|
103
|
+
{
|
104
|
+
#if defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
105
|
+
LONG delta = - ((LONG) decrement);
|
106
|
+
integer_t old = InterlockedExchangeAdd ((LONG*) &value, delta);
|
107
|
+
return old - decrement != 0;
|
108
|
+
#elif defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
109
|
+
int32_t delta = - ((int32_t) decrement);
|
110
|
+
integer_t nv = atomic_add_32_nv (&value, delta);
|
111
|
+
return nv != 0;
|
112
|
+
#elif defined ZMQ_ATOMIC_COUNTER_X86
|
113
|
+
integer_t oldval = -decrement;
|
114
|
+
volatile integer_t *val = &value;
|
115
|
+
__asm__ volatile ("lock; xaddl %0,%1"
|
116
|
+
: "=r" (oldval), "=m" (*val)
|
117
|
+
: "0" (oldval), "m" (*val)
|
118
|
+
: "cc", "memory");
|
119
|
+
return oldval != decrement;
|
120
|
+
#elif defined ZMQ_ATOMIC_COUNTER_MUTEX
|
121
|
+
sync.lock ();
|
122
|
+
value -= decrement;
|
123
|
+
bool result = value ? true : false;
|
124
|
+
sync.unlock ();
|
125
|
+
return result;
|
126
|
+
#else
|
127
|
+
#error atomic_counter is not implemented for this platform
|
128
|
+
#endif
|
129
|
+
}
|
130
|
+
|
131
|
+
inline integer_t get ()
|
132
|
+
{
|
133
|
+
return value;
|
134
|
+
}
|
135
|
+
|
136
|
+
private:
|
137
|
+
|
138
|
+
volatile integer_t value;
|
139
|
+
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
140
|
+
mutex_t sync;
|
141
|
+
#endif
|
142
|
+
|
143
|
+
atomic_counter_t (const atomic_counter_t&);
|
144
|
+
const atomic_counter_t& operator = (const atomic_counter_t&);
|
145
|
+
};
|
146
|
+
|
147
|
+
}
|
148
|
+
|
149
|
+
// Remove macros local to this file.
|
150
|
+
#if defined ZMQ_ATOMIC_COUNTER_WINDOWS
|
151
|
+
#undef ZMQ_ATOMIC_COUNTER_WINDOWS
|
152
|
+
#endif
|
153
|
+
#if defined ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
154
|
+
#undef ZMQ_ATOMIC_COUNTER_ATOMIC_H
|
155
|
+
#endif
|
156
|
+
#if defined ZMQ_ATOMIC_COUNTER_X86
|
157
|
+
#undef ZMQ_ATOMIC_COUNTER_X86
|
158
|
+
#endif
|
159
|
+
#if defined ZMQ_ATOMIC_COUNTER_MUTEX
|
160
|
+
#undef ZMQ_ATOMIC_COUNTER_MUTEX
|
161
|
+
#endif
|
162
|
+
|
163
|
+
#endif
|
164
|
+
|
@@ -0,0 +1,159 @@
|
|
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_ATOMIC_PTR_HPP_INCLUDED__
|
22
|
+
#define __ZMQ_ATOMIC_PTR_HPP_INCLUDED__
|
23
|
+
|
24
|
+
#include "platform.hpp"
|
25
|
+
|
26
|
+
#if defined ZMQ_FORCE_MUTEXES
|
27
|
+
#define ZMQ_ATOMIC_PTR_MUTEX
|
28
|
+
#elif (defined __i386__ || defined __x86_64__) && defined __GNUC__
|
29
|
+
#define ZMQ_ATOMIC_PTR_X86
|
30
|
+
#elif defined ZMQ_HAVE_WINDOWS
|
31
|
+
#define ZMQ_ATOMIC_PTR_WINDOWS
|
32
|
+
#elif (defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_NETBSD)
|
33
|
+
#define ZMQ_ATOMIC_PTR_ATOMIC_H
|
34
|
+
#else
|
35
|
+
#define ZMQ_ATOMIC_PTR_MUTEX
|
36
|
+
#endif
|
37
|
+
|
38
|
+
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
39
|
+
#include "mutex.hpp"
|
40
|
+
#elif defined ZMQ_ATOMIC_PTR_WINDOWS
|
41
|
+
#include "windows.hpp"
|
42
|
+
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
43
|
+
#include <atomic.h>
|
44
|
+
#endif
|
45
|
+
|
46
|
+
namespace zmq
|
47
|
+
{
|
48
|
+
|
49
|
+
// This class encapsulates several atomic operations on pointers.
|
50
|
+
|
51
|
+
template <typename T> class atomic_ptr_t
|
52
|
+
{
|
53
|
+
public:
|
54
|
+
|
55
|
+
// Initialise atomic pointer
|
56
|
+
inline atomic_ptr_t ()
|
57
|
+
{
|
58
|
+
ptr = NULL;
|
59
|
+
}
|
60
|
+
|
61
|
+
// Destroy atomic pointer
|
62
|
+
inline ~atomic_ptr_t ()
|
63
|
+
{
|
64
|
+
}
|
65
|
+
|
66
|
+
// Set value of atomic pointer in a non-threadsafe way
|
67
|
+
// Use this function only when you are sure that at most one
|
68
|
+
// thread is accessing the pointer at the moment.
|
69
|
+
inline void set (T *ptr_)
|
70
|
+
{
|
71
|
+
this->ptr = ptr_;
|
72
|
+
}
|
73
|
+
|
74
|
+
// Perform atomic 'exchange pointers' operation. Pointer is set
|
75
|
+
// to the 'val' value. Old value is returned.
|
76
|
+
inline T *xchg (T *val_)
|
77
|
+
{
|
78
|
+
#if defined ZMQ_ATOMIC_PTR_WINDOWS
|
79
|
+
return (T*) InterlockedExchangePointer ((PVOID*) &ptr, val_);
|
80
|
+
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
81
|
+
return (T*) atomic_swap_ptr (&ptr, val_);
|
82
|
+
#elif defined ZMQ_ATOMIC_PTR_X86
|
83
|
+
T *old;
|
84
|
+
__asm__ volatile (
|
85
|
+
"lock; xchg %0, %2"
|
86
|
+
: "=r" (old), "=m" (ptr)
|
87
|
+
: "m" (ptr), "0" (val_));
|
88
|
+
return old;
|
89
|
+
#elif defined ZMQ_ATOMIC_PTR_MUTEX
|
90
|
+
sync.lock ();
|
91
|
+
T *old = (T*) ptr;
|
92
|
+
ptr = val_;
|
93
|
+
sync.unlock ();
|
94
|
+
return old;
|
95
|
+
#else
|
96
|
+
#error atomic_ptr is not implemented for this platform
|
97
|
+
#endif
|
98
|
+
}
|
99
|
+
|
100
|
+
// Perform atomic 'compare and swap' operation on the pointer.
|
101
|
+
// The pointer is compared to 'cmp' argument and if they are
|
102
|
+
// equal, its value is set to 'val'. Old value of the pointer
|
103
|
+
// is returned.
|
104
|
+
inline T *cas (T *cmp_, T *val_)
|
105
|
+
{
|
106
|
+
#if defined ZMQ_ATOMIC_PTR_WINDOWS
|
107
|
+
return (T*) InterlockedCompareExchangePointer (
|
108
|
+
(volatile PVOID*) &ptr, val_, cmp_);
|
109
|
+
#elif defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
110
|
+
return (T*) atomic_cas_ptr (&ptr, cmp_, val_);
|
111
|
+
#elif defined ZMQ_ATOMIC_PTR_X86
|
112
|
+
T *old;
|
113
|
+
__asm__ volatile (
|
114
|
+
"lock; cmpxchg %2, %3"
|
115
|
+
: "=a" (old), "=m" (ptr)
|
116
|
+
: "r" (val_), "m" (ptr), "0" (cmp_)
|
117
|
+
: "cc");
|
118
|
+
return old;
|
119
|
+
#elif defined ZMQ_ATOMIC_PTR_MUTEX
|
120
|
+
sync.lock ();
|
121
|
+
T *old = (T*) ptr;
|
122
|
+
if (ptr == cmp_)
|
123
|
+
ptr = val_;
|
124
|
+
sync.unlock ();
|
125
|
+
return old;
|
126
|
+
#else
|
127
|
+
#error atomic_ptr is not implemented for this platform
|
128
|
+
#endif
|
129
|
+
}
|
130
|
+
|
131
|
+
private:
|
132
|
+
|
133
|
+
volatile T *ptr;
|
134
|
+
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
135
|
+
mutex_t sync;
|
136
|
+
#endif
|
137
|
+
|
138
|
+
atomic_ptr_t (const atomic_ptr_t&);
|
139
|
+
const atomic_ptr_t &operator = (const atomic_ptr_t&);
|
140
|
+
};
|
141
|
+
|
142
|
+
}
|
143
|
+
|
144
|
+
// Remove macros local to this file.
|
145
|
+
#if defined ZMQ_ATOMIC_PTR_WINDOWS
|
146
|
+
#undef ZMQ_ATOMIC_PTR_WINDOWS
|
147
|
+
#endif
|
148
|
+
#if defined ZMQ_ATOMIC_PTR_ATOMIC_H
|
149
|
+
#undef ZMQ_ATOMIC_PTR_ATOMIC_H
|
150
|
+
#endif
|
151
|
+
#if defined ZMQ_ATOMIC_PTR_X86
|
152
|
+
#undef ZMQ_ATOMIC_PTR_X86
|
153
|
+
#endif
|
154
|
+
#if defined ZMQ_ATOMIC_PTR_MUTEX
|
155
|
+
#undef ZMQ_ATOMIC_PTR_MUTEX
|
156
|
+
#endif
|
157
|
+
|
158
|
+
#endif
|
159
|
+
|