rbczmq 1.7.1 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (437) hide show
  1. checksums.yaml +8 -8
  2. data/.gitmodules +1 -1
  3. data/CHANGELOG.rdoc +4 -0
  4. data/Gemfile.lock +1 -1
  5. data/README.rdoc +5 -4
  6. data/ext/czmq/.gitignore +5 -0
  7. data/ext/czmq/.travis.yml +10 -1
  8. data/ext/czmq/AUTHORS +2 -0
  9. data/ext/czmq/COPYING.LESSER +3 -0
  10. data/ext/czmq/Makefile.am +13 -3
  11. data/ext/czmq/NEWS +132 -0
  12. data/ext/czmq/README.md +1553 -615
  13. data/ext/czmq/README.txt +188 -72
  14. data/ext/czmq/addons/Makefile.am +9 -0
  15. data/ext/czmq/addons/makecert.c +72 -0
  16. data/ext/czmq/builds/mingw32/Makefile.mingw32 +11 -3
  17. data/ext/czmq/builds/msvc/.gitignore +4 -1
  18. data/ext/czmq/builds/msvc/czmq.vcproj +4 -0
  19. data/ext/czmq/builds/msvc/czmq.vcxproj +6 -1
  20. data/ext/czmq/builds/msvc/czmq.vcxproj.filters +4 -1
  21. data/ext/{zeromq/cmake/Modules/zmq_version.cpp → czmq/builds/msvc/platform.h} +10 -9
  22. data/ext/czmq/configure.ac +64 -5
  23. data/ext/czmq/doc/Makefile.am +8 -1
  24. data/ext/czmq/doc/mkmans +17 -0
  25. data/ext/czmq/doc/zauth.txt +191 -0
  26. data/ext/czmq/doc/zbeacon.txt +13 -22
  27. data/ext/czmq/doc/zcert.txt +122 -0
  28. data/ext/czmq/doc/zcertstore.txt +107 -0
  29. data/ext/czmq/doc/zchunk.txt +77 -0
  30. data/ext/czmq/doc/zclock.txt +8 -0
  31. data/ext/czmq/doc/zconfig.txt +9 -63
  32. data/ext/czmq/doc/zctx.txt +26 -7
  33. data/ext/czmq/doc/zdir.txt +83 -0
  34. data/ext/czmq/doc/zfile.txt +130 -35
  35. data/ext/czmq/doc/zframe.txt +6 -39
  36. data/ext/czmq/doc/zhash.txt +55 -10
  37. data/ext/czmq/doc/zlist.txt +2 -4
  38. data/ext/czmq/doc/zloop.txt +7 -1
  39. data/ext/czmq/doc/zmsg.txt +75 -32
  40. data/ext/czmq/doc/zpoller.txt +88 -0
  41. data/ext/czmq/doc/zsocket.txt +50 -1
  42. data/ext/czmq/doc/zsockopt.txt +185 -251
  43. data/ext/czmq/doc/zstr.txt +14 -3
  44. data/ext/czmq/doc/zsys.txt +89 -1
  45. data/ext/czmq/doc/ztree.txt +21 -11
  46. data/ext/czmq/examples/security/LICENSE +18 -0
  47. data/ext/czmq/examples/security/README.txt +9 -0
  48. data/ext/czmq/examples/security/grasslands.c +29 -0
  49. data/ext/czmq/examples/security/hello.c +10 -0
  50. data/ext/czmq/examples/security/ironhouse.c +55 -0
  51. data/ext/czmq/examples/security/ironhouse2.c +103 -0
  52. data/ext/czmq/examples/security/stonehouse.c +51 -0
  53. data/ext/czmq/examples/security/strawhouse.c +44 -0
  54. data/ext/czmq/examples/security/woodhouse.c +40 -0
  55. data/ext/czmq/images/README_1.png +0 -0
  56. data/ext/czmq/images/README_2.png +0 -0
  57. data/ext/czmq/include/czmq.h +10 -4
  58. data/ext/czmq/include/czmq_prelude.h +42 -42
  59. data/ext/czmq/include/zauth.h +97 -0
  60. data/ext/czmq/include/zbeacon.h +0 -5
  61. data/ext/czmq/include/zcert.h +118 -0
  62. data/ext/czmq/include/zcertstore.h +78 -0
  63. data/ext/czmq/include/zchunk.h +87 -0
  64. data/ext/czmq/include/zclock.h +4 -0
  65. data/ext/czmq/include/zconfig.h +21 -12
  66. data/ext/czmq/include/zctx.h +34 -11
  67. data/ext/czmq/include/zdir.h +90 -0
  68. data/ext/czmq/include/zfile.h +104 -25
  69. data/ext/czmq/include/zframe.h +7 -20
  70. data/ext/czmq/include/zhash.h +13 -0
  71. data/ext/czmq/include/zlist.h +0 -4
  72. data/ext/czmq/include/zloop.h +5 -5
  73. data/ext/czmq/include/zmsg.h +59 -29
  74. data/ext/czmq/include/zmutex.h +5 -0
  75. data/ext/czmq/include/zpoller.h +72 -0
  76. data/ext/czmq/include/zsocket.h +12 -15
  77. data/ext/czmq/include/zsockopt.h +124 -121
  78. data/ext/czmq/include/zstr.h +12 -9
  79. data/ext/czmq/include/zsys.h +50 -2
  80. data/ext/czmq/mkdoc +1 -1
  81. data/ext/czmq/model/sockopts.xml +101 -21
  82. data/ext/czmq/scripts/sockopts.gsl +95 -41
  83. data/ext/czmq/src/Makefile.am +13 -0
  84. data/ext/czmq/src/czmq_selftest.c +16 -10
  85. data/ext/czmq/src/selftest +2 -2
  86. data/ext/czmq/src/zauth.c +714 -0
  87. data/ext/czmq/src/zbeacon.c +27 -35
  88. data/ext/czmq/src/zcert.c +463 -0
  89. data/ext/czmq/src/zcertstore.c +265 -0
  90. data/ext/czmq/src/zchunk.c +207 -0
  91. data/ext/czmq/src/zclock.c +18 -0
  92. data/ext/czmq/src/zconfig.c +116 -99
  93. data/ext/czmq/src/zctx.c +103 -18
  94. data/ext/czmq/src/zdir.c +409 -0
  95. data/ext/czmq/src/zfile.c +421 -130
  96. data/ext/czmq/src/zframe.c +28 -127
  97. data/ext/czmq/src/zhash.c +255 -139
  98. data/ext/czmq/src/zlist.c +2 -8
  99. data/ext/czmq/src/zloop.c +40 -13
  100. data/ext/czmq/src/zmsg.c +109 -141
  101. data/ext/czmq/src/zmutex.c +27 -1
  102. data/ext/czmq/src/zpoller.c +218 -0
  103. data/ext/czmq/src/zsocket.c +53 -66
  104. data/ext/czmq/src/zsockopt.c +2337 -682
  105. data/ext/czmq/src/zstr.c +48 -118
  106. data/ext/czmq/src/zsys.c +270 -3
  107. data/ext/czmq/src/zthread.c +2 -2
  108. data/ext/czmq/src/ztree.c +179 -180
  109. data/ext/rbczmq/beacon.c +1 -1
  110. data/ext/rbczmq/context.c +12 -3
  111. data/ext/rbczmq/context.h +7 -0
  112. data/ext/rbczmq/extconf.rb +13 -4
  113. data/ext/rbczmq/pollitem.c +1 -1
  114. data/ext/rbczmq/socket.c +34 -24
  115. data/ext/rbczmq/socket.h +3 -2
  116. data/ext/zeromq/AUTHORS +17 -3
  117. data/ext/zeromq/CMakeLists.txt +742 -339
  118. data/ext/zeromq/COPYING.LESSER +2 -0
  119. data/ext/zeromq/Makefile.am +3 -3
  120. data/ext/zeromq/NEWS +130 -1
  121. data/ext/zeromq/{README → README.md} +8 -9
  122. data/ext/zeromq/builds/cmake/Modules/FindAsciiDoc.cmake +24 -0
  123. data/ext/zeromq/builds/cmake/Modules/TestZMQVersion.cmake +18 -0
  124. data/ext/zeromq/builds/cmake/Modules/ZMQSourceRunChecks.cmake +129 -0
  125. data/ext/zeromq/{cmake → builds/cmake}/NSIS.template32.in +1 -1
  126. data/ext/zeromq/{cmake → builds/cmake}/NSIS.template64.in +1 -1
  127. data/ext/zeromq/builds/cmake/platform.hpp.in +88 -0
  128. data/ext/zeromq/builds/mingw32/Makefile.mingw32 +47 -0
  129. data/ext/zeromq/{src/i_msg_sink.hpp → builds/mingw32/platform.hpp} +10 -21
  130. data/ext/zeromq/builds/msvc/Makefile.am +5 -2
  131. data/ext/zeromq/builds/msvc/c_local_lat/c_local_lat.vcxproj +1 -1
  132. data/ext/zeromq/builds/msvc/c_local_lat/c_local_lat11.vcxproj +91 -0
  133. data/ext/zeromq/builds/msvc/c_local_thr/c_local_thr.vcproj +2 -0
  134. data/ext/zeromq/builds/msvc/c_local_thr/c_local_thr.vcxproj +21 -1
  135. data/ext/zeromq/builds/msvc/c_local_thr/c_local_thr11.vcxproj +111 -0
  136. data/ext/zeromq/builds/msvc/c_remote_lat/c_remote_lat.vcxproj +1 -1
  137. data/ext/zeromq/builds/msvc/c_remote_lat/c_remote_lat11.vcxproj +91 -0
  138. data/ext/zeromq/builds/msvc/c_remote_thr/c_remote_thr.vcproj +2 -0
  139. data/ext/zeromq/builds/msvc/c_remote_thr/c_remote_thr.vcxproj +21 -1
  140. data/ext/zeromq/builds/msvc/c_remote_thr/c_remote_thr11.vcxproj +111 -0
  141. data/ext/zeromq/builds/msvc/errno.cpp +1 -1
  142. data/ext/zeromq/builds/msvc/errno.hpp +1 -1
  143. data/ext/zeromq/builds/msvc/inproc_lat/inproc_lat.vcproj +176 -174
  144. data/ext/zeromq/builds/msvc/inproc_lat/inproc_lat.vcxproj +21 -1
  145. data/ext/zeromq/builds/msvc/inproc_lat/inproc_lat11.vcxproj +110 -0
  146. data/ext/zeromq/builds/msvc/inproc_thr/inproc_thr.vcproj +176 -174
  147. data/ext/zeromq/builds/msvc/inproc_thr/inproc_thr.vcxproj +21 -1
  148. data/ext/zeromq/builds/msvc/inproc_thr/inproc_thr11.vcxproj +110 -0
  149. data/ext/zeromq/builds/msvc/libzmq/libzmq.vcproj +997 -804
  150. data/ext/zeromq/builds/msvc/libzmq/libzmq.vcxproj +78 -2
  151. data/ext/zeromq/builds/msvc/libzmq/libzmq.vcxproj.filters +42 -6
  152. data/ext/zeromq/builds/msvc/libzmq/libzmq11.vcxproj +362 -0
  153. data/ext/zeromq/builds/msvc/msvc.sln +6 -0
  154. data/ext/zeromq/builds/msvc/msvc10.sln +36 -2
  155. data/ext/zeromq/builds/msvc/msvc11.sln +150 -0
  156. data/ext/zeromq/builds/msvc/properties/Static.props +15 -0
  157. data/ext/zeromq/builds/msvc/properties/ZeroMQ.props +0 -1
  158. data/ext/zeromq/builds/msvc/properties/ZeroMQ_Static.props +23 -0
  159. data/ext/zeromq/builds/redhat/zeromq.spec.in +2 -1
  160. data/ext/zeromq/{configure.in → configure.ac} +74 -15
  161. data/ext/zeromq/doc/Makefile.am +6 -4
  162. data/ext/zeromq/doc/zmq.txt +30 -3
  163. data/ext/zeromq/doc/zmq_bind.txt +2 -2
  164. data/ext/zeromq/doc/zmq_close.txt +2 -2
  165. data/ext/zeromq/doc/zmq_connect.txt +9 -7
  166. data/ext/zeromq/doc/zmq_ctx_destroy.txt +4 -3
  167. data/ext/zeromq/doc/zmq_ctx_get.txt +8 -3
  168. data/ext/zeromq/doc/zmq_ctx_new.txt +3 -2
  169. data/ext/zeromq/doc/zmq_ctx_set.txt +13 -1
  170. data/ext/zeromq/doc/zmq_ctx_shutdown.txt +52 -0
  171. data/ext/zeromq/doc/zmq_ctx_term.txt +67 -0
  172. data/ext/zeromq/doc/zmq_curve.txt +92 -0
  173. data/ext/zeromq/doc/zmq_curve_keypair.txt +56 -0
  174. data/ext/zeromq/doc/zmq_disconnect.txt +2 -2
  175. data/ext/zeromq/doc/zmq_epgm.txt +5 -4
  176. data/ext/zeromq/doc/zmq_errno.txt +2 -2
  177. data/ext/zeromq/doc/zmq_getsockopt.txt +149 -24
  178. data/ext/zeromq/doc/zmq_init.txt +2 -2
  179. data/ext/zeromq/doc/zmq_inproc.txt +2 -2
  180. data/ext/zeromq/doc/zmq_ipc.txt +10 -5
  181. data/ext/zeromq/doc/zmq_msg_close.txt +4 -3
  182. data/ext/zeromq/doc/zmq_msg_copy.txt +2 -2
  183. data/ext/zeromq/doc/zmq_msg_data.txt +2 -2
  184. data/ext/zeromq/doc/zmq_msg_get.txt +3 -3
  185. data/ext/zeromq/doc/zmq_msg_init.txt +2 -2
  186. data/ext/zeromq/doc/zmq_msg_init_data.txt +2 -2
  187. data/ext/zeromq/doc/zmq_msg_init_size.txt +2 -2
  188. data/ext/zeromq/doc/zmq_msg_more.txt +6 -4
  189. data/ext/zeromq/doc/zmq_msg_move.txt +2 -2
  190. data/ext/zeromq/doc/zmq_msg_recv.txt +3 -4
  191. data/ext/zeromq/doc/zmq_msg_send.txt +10 -7
  192. data/ext/zeromq/doc/zmq_msg_set.txt +2 -1
  193. data/ext/zeromq/doc/zmq_msg_size.txt +2 -2
  194. data/ext/zeromq/doc/zmq_null.txt +27 -0
  195. data/ext/zeromq/doc/zmq_pgm.txt +5 -4
  196. data/ext/zeromq/doc/zmq_plain.txt +37 -0
  197. data/ext/zeromq/doc/zmq_poll.txt +2 -6
  198. data/ext/zeromq/doc/zmq_proxy.txt +2 -1
  199. data/ext/zeromq/doc/zmq_recv.txt +2 -5
  200. data/ext/zeromq/doc/zmq_recvmsg.txt +3 -5
  201. data/ext/zeromq/doc/zmq_send.txt +9 -7
  202. data/ext/zeromq/doc/zmq_send_const.txt +103 -0
  203. data/ext/zeromq/doc/zmq_sendmsg.txt +8 -8
  204. data/ext/zeromq/doc/zmq_setsockopt.txt +291 -37
  205. data/ext/zeromq/doc/zmq_socket.txt +92 -21
  206. data/ext/zeromq/doc/zmq_socket_monitor.txt +102 -131
  207. data/ext/zeromq/doc/zmq_strerror.txt +3 -2
  208. data/ext/zeromq/doc/zmq_tcp.txt +4 -2
  209. data/ext/zeromq/doc/zmq_term.txt +3 -3
  210. data/ext/zeromq/doc/zmq_unbind.txt +2 -2
  211. data/ext/zeromq/doc/zmq_version.txt +3 -2
  212. data/ext/zeromq/doc/zmq_z85_decode.txt +50 -0
  213. data/ext/zeromq/doc/zmq_z85_encode.txt +57 -0
  214. data/ext/zeromq/foreign/openpgm/libpgm-5.2.122~dfsg.tar.gz +0 -0
  215. data/ext/zeromq/include/zmq.h +179 -136
  216. data/ext/zeromq/include/zmq_utils.h +44 -3
  217. data/ext/zeromq/perf/inproc_lat.cpp +2 -4
  218. data/ext/zeromq/perf/inproc_thr.cpp +1 -1
  219. data/ext/zeromq/perf/local_lat.cpp +1 -3
  220. data/ext/zeromq/perf/local_thr.cpp +1 -3
  221. data/ext/zeromq/perf/remote_lat.cpp +1 -3
  222. data/ext/zeromq/perf/remote_thr.cpp +1 -8
  223. data/ext/zeromq/src/Makefile.am +26 -7
  224. data/ext/zeromq/src/address.cpp +7 -8
  225. data/ext/zeromq/src/address.hpp +1 -2
  226. data/ext/zeromq/src/array.hpp +1 -3
  227. data/ext/zeromq/src/atomic_counter.hpp +11 -3
  228. data/ext/zeromq/src/atomic_ptr.hpp +9 -3
  229. data/ext/zeromq/src/blob.hpp +2 -2
  230. data/ext/zeromq/src/clock.cpp +3 -4
  231. data/ext/zeromq/src/clock.hpp +1 -2
  232. data/ext/zeromq/src/command.hpp +2 -3
  233. data/ext/zeromq/src/config.hpp +1 -3
  234. data/ext/zeromq/src/ctx.cpp +154 -15
  235. data/ext/zeromq/src/ctx.hpp +34 -3
  236. data/ext/zeromq/src/curve_client.cpp +410 -0
  237. data/ext/zeromq/src/curve_client.hpp +109 -0
  238. data/ext/zeromq/src/curve_server.cpp +629 -0
  239. data/ext/zeromq/src/curve_server.hpp +120 -0
  240. data/ext/zeromq/src/dbuffer.hpp +134 -0
  241. data/ext/zeromq/src/dealer.cpp +52 -60
  242. data/ext/zeromq/src/dealer.hpp +12 -26
  243. data/ext/zeromq/src/decoder.hpp +27 -102
  244. data/ext/zeromq/src/devpoll.cpp +1 -3
  245. data/ext/zeromq/src/devpoll.hpp +1 -3
  246. data/ext/zeromq/src/dist.cpp +17 -15
  247. data/ext/zeromq/src/dist.hpp +5 -6
  248. data/ext/zeromq/src/encoder.hpp +32 -52
  249. data/ext/zeromq/src/epoll.cpp +1 -3
  250. data/ext/zeromq/src/epoll.hpp +1 -3
  251. data/ext/zeromq/src/err.cpp +2 -4
  252. data/ext/zeromq/src/err.hpp +7 -4
  253. data/ext/zeromq/src/fd.hpp +1 -2
  254. data/ext/zeromq/src/fq.cpp +2 -5
  255. data/ext/zeromq/src/fq.hpp +2 -4
  256. data/ext/zeromq/src/i_decoder.hpp +11 -9
  257. data/ext/zeromq/src/i_encoder.hpp +7 -11
  258. data/ext/zeromq/src/i_engine.hpp +3 -3
  259. data/ext/zeromq/src/i_poll_events.hpp +1 -3
  260. data/ext/zeromq/src/io_object.cpp +1 -3
  261. data/ext/zeromq/src/io_object.hpp +1 -3
  262. data/ext/zeromq/src/io_thread.cpp +1 -3
  263. data/ext/zeromq/src/io_thread.hpp +1 -3
  264. data/ext/zeromq/src/ip.cpp +46 -5
  265. data/ext/zeromq/src/ip.hpp +7 -4
  266. data/ext/zeromq/src/ipc_address.cpp +13 -2
  267. data/ext/zeromq/src/ipc_address.hpp +1 -2
  268. data/ext/zeromq/src/ipc_connecter.cpp +3 -3
  269. data/ext/zeromq/src/ipc_connecter.hpp +1 -2
  270. data/ext/zeromq/src/ipc_listener.cpp +15 -10
  271. data/ext/zeromq/src/ipc_listener.hpp +1 -2
  272. data/ext/zeromq/src/kqueue.cpp +11 -3
  273. data/ext/zeromq/src/kqueue.hpp +7 -3
  274. data/ext/zeromq/src/lb.cpp +13 -11
  275. data/ext/zeromq/src/lb.hpp +10 -5
  276. data/ext/zeromq/src/libzmq.pc.cmake.in +10 -0
  277. data/ext/zeromq/src/likely.hpp +1 -2
  278. data/ext/zeromq/src/mailbox.cpp +1 -4
  279. data/ext/zeromq/src/mailbox.hpp +8 -3
  280. data/ext/zeromq/src/mechanism.cpp +163 -0
  281. data/ext/zeromq/src/mechanism.hpp +101 -0
  282. data/ext/zeromq/src/msg.cpp +38 -18
  283. data/ext/zeromq/src/msg.hpp +19 -7
  284. data/ext/zeromq/src/mtrie.cpp +16 -14
  285. data/ext/zeromq/src/mtrie.hpp +1 -3
  286. data/ext/zeromq/src/mutex.hpp +42 -3
  287. data/ext/zeromq/src/null_mechanism.cpp +282 -0
  288. data/ext/zeromq/src/null_mechanism.hpp +65 -0
  289. data/ext/zeromq/src/object.cpp +29 -3
  290. data/ext/zeromq/src/object.hpp +8 -5
  291. data/ext/zeromq/src/options.cpp +557 -485
  292. data/ext/zeromq/src/options.hpp +38 -24
  293. data/ext/zeromq/src/own.cpp +1 -2
  294. data/ext/zeromq/src/own.hpp +1 -2
  295. data/ext/zeromq/src/pair.cpp +8 -25
  296. data/ext/zeromq/src/pair.hpp +5 -22
  297. data/ext/zeromq/src/pgm_receiver.cpp +80 -67
  298. data/ext/zeromq/src/pgm_receiver.hpp +11 -10
  299. data/ext/zeromq/src/pgm_sender.cpp +37 -16
  300. data/ext/zeromq/src/pgm_sender.hpp +12 -6
  301. data/ext/zeromq/src/pgm_socket.cpp +8 -8
  302. data/ext/zeromq/src/pgm_socket.hpp +1 -4
  303. data/ext/zeromq/src/pipe.cpp +110 -72
  304. data/ext/zeromq/src/pipe.hpp +36 -27
  305. data/ext/zeromq/src/plain_mechanism.cpp +482 -0
  306. data/ext/zeromq/src/plain_mechanism.hpp +88 -0
  307. data/ext/zeromq/src/poll.cpp +1 -3
  308. data/ext/zeromq/src/poll.hpp +1 -3
  309. data/ext/zeromq/src/poller.hpp +1 -3
  310. data/ext/zeromq/src/poller_base.cpp +3 -3
  311. data/ext/zeromq/src/poller_base.hpp +1 -2
  312. data/ext/zeromq/src/precompiled.cpp +1 -2
  313. data/ext/zeromq/src/precompiled.hpp +1 -2
  314. data/ext/zeromq/src/proxy.cpp +1 -2
  315. data/ext/zeromq/src/proxy.hpp +1 -2
  316. data/ext/zeromq/src/pub.cpp +2 -16
  317. data/ext/zeromq/src/pub.hpp +2 -19
  318. data/ext/zeromq/src/pull.cpp +7 -24
  319. data/ext/zeromq/src/pull.hpp +4 -21
  320. data/ext/zeromq/src/push.cpp +8 -22
  321. data/ext/zeromq/src/push.hpp +4 -21
  322. data/ext/zeromq/src/random.cpp +1 -2
  323. data/ext/zeromq/src/random.hpp +1 -2
  324. data/ext/zeromq/src/raw_decoder.cpp +63 -0
  325. data/ext/zeromq/src/raw_decoder.hpp +66 -0
  326. data/ext/zeromq/src/raw_encoder.cpp +40 -0
  327. data/ext/zeromq/src/raw_encoder.hpp +60 -0
  328. data/ext/zeromq/src/reaper.cpp +12 -2
  329. data/ext/zeromq/src/reaper.hpp +6 -2
  330. data/ext/zeromq/src/rep.cpp +7 -21
  331. data/ext/zeromq/src/rep.hpp +3 -20
  332. data/ext/zeromq/src/req.cpp +132 -38
  333. data/ext/zeromq/src/req.hpp +27 -8
  334. data/ext/zeromq/src/router.cpp +109 -65
  335. data/ext/zeromq/src/router.hpp +9 -23
  336. data/ext/zeromq/src/select.cpp +1 -3
  337. data/ext/zeromq/src/select.hpp +1 -3
  338. data/ext/zeromq/src/session_base.cpp +164 -118
  339. data/ext/zeromq/src/session_base.hpp +29 -22
  340. data/ext/zeromq/src/signaler.cpp +127 -19
  341. data/ext/zeromq/src/signaler.hpp +20 -3
  342. data/ext/zeromq/src/socket_base.cpp +167 -134
  343. data/ext/zeromq/src/socket_base.hpp +18 -20
  344. data/ext/zeromq/src/stdint.hpp +1 -2
  345. data/ext/zeromq/src/stream.cpp +257 -0
  346. data/ext/zeromq/src/stream.hpp +97 -0
  347. data/ext/zeromq/src/stream_engine.cpp +405 -157
  348. data/ext/zeromq/src/stream_engine.hpp +72 -23
  349. data/ext/zeromq/src/sub.cpp +5 -18
  350. data/ext/zeromq/src/sub.hpp +2 -19
  351. data/ext/zeromq/src/tcp.cpp +23 -3
  352. data/ext/zeromq/src/tcp.hpp +7 -3
  353. data/ext/zeromq/src/tcp_address.cpp +35 -46
  354. data/ext/zeromq/src/tcp_address.hpp +7 -12
  355. data/ext/zeromq/src/tcp_connecter.cpp +10 -5
  356. data/ext/zeromq/src/tcp_connecter.hpp +1 -3
  357. data/ext/zeromq/src/tcp_listener.cpp +19 -8
  358. data/ext/zeromq/src/tcp_listener.hpp +1 -3
  359. data/ext/zeromq/src/thread.cpp +2 -4
  360. data/ext/zeromq/src/thread.hpp +1 -3
  361. data/ext/zeromq/src/trie.cpp +122 -125
  362. data/ext/zeromq/src/trie.hpp +1 -4
  363. data/ext/zeromq/src/v1_decoder.cpp +77 -91
  364. data/ext/zeromq/src/v1_decoder.hpp +10 -21
  365. data/ext/zeromq/src/v1_encoder.cpp +24 -62
  366. data/ext/zeromq/src/v1_encoder.hpp +7 -18
  367. data/ext/zeromq/src/v2_decoder.cpp +142 -0
  368. data/ext/zeromq/src/v2_decoder.hpp +57 -0
  369. data/ext/zeromq/src/v2_encoder.cpp +67 -0
  370. data/ext/zeromq/src/{i_msg_source.hpp → v2_encoder.hpp} +20 -15
  371. data/ext/zeromq/src/{v1_protocol.hpp → v2_protocol.hpp} +7 -11
  372. data/ext/zeromq/src/windows.hpp +2 -4
  373. data/ext/zeromq/src/wire.hpp +5 -6
  374. data/ext/zeromq/src/xpub.cpp +37 -46
  375. data/ext/zeromq/src/xpub.hpp +7 -23
  376. data/ext/zeromq/src/xsub.cpp +26 -40
  377. data/ext/zeromq/src/xsub.hpp +5 -21
  378. data/ext/zeromq/src/ypipe.hpp +3 -4
  379. data/ext/zeromq/src/ypipe_base.hpp +44 -0
  380. data/ext/zeromq/src/ypipe_conflate.hpp +127 -0
  381. data/ext/zeromq/src/yqueue.hpp +3 -7
  382. data/ext/zeromq/src/zmq.cpp +76 -96
  383. data/ext/zeromq/src/zmq_utils.cpp +146 -8
  384. data/ext/zeromq/tests/Makefile.am +56 -8
  385. data/ext/zeromq/tests/test_abstract_ipc.cpp +57 -0
  386. data/ext/zeromq/tests/test_conflate.cpp +75 -0
  387. data/ext/zeromq/tests/test_connect_resolve.cpp +14 -15
  388. data/ext/zeromq/tests/test_ctx_destroy.cpp +90 -0
  389. data/ext/zeromq/tests/test_ctx_options.cpp +52 -0
  390. data/ext/zeromq/tests/test_disconnect_inproc.cpp +35 -30
  391. data/ext/zeromq/tests/test_fork.cpp +81 -0
  392. data/ext/zeromq/tests/test_hwm.cpp +251 -35
  393. data/ext/zeromq/tests/test_immediate.cpp +229 -0
  394. data/ext/zeromq/tests/test_inproc_connect.cpp +339 -0
  395. data/ext/zeromq/tests/test_invalid_rep.cpp +9 -13
  396. data/ext/zeromq/tests/test_iov.cpp +106 -0
  397. data/ext/zeromq/tests/test_issue_566.cpp +85 -0
  398. data/ext/zeromq/tests/test_last_endpoint.cpp +14 -18
  399. data/ext/zeromq/tests/test_linger.cpp +93 -0
  400. data/ext/zeromq/tests/test_monitor.cpp +112 -129
  401. data/ext/zeromq/tests/test_msg_flags.cpp +17 -16
  402. data/ext/zeromq/tests/test_pair_inproc.cpp +25 -7
  403. data/ext/zeromq/tests/test_pair_ipc.cpp +4 -7
  404. data/ext/zeromq/tests/test_pair_tcp.cpp +4 -8
  405. data/ext/zeromq/tests/test_probe_router.cpp +72 -0
  406. data/ext/zeromq/tests/test_req_correlate.cpp +177 -0
  407. data/ext/zeromq/tests/test_req_relaxed.cpp +116 -0
  408. data/ext/zeromq/tests/test_reqrep_device.cpp +9 -17
  409. data/ext/zeromq/tests/test_reqrep_inproc.cpp +4 -7
  410. data/ext/zeromq/tests/test_reqrep_ipc.cpp +4 -7
  411. data/ext/zeromq/tests/test_reqrep_tcp.cpp +4 -8
  412. data/ext/zeromq/tests/test_router_mandatory.cpp +41 -22
  413. data/ext/zeromq/tests/test_security_curve.cpp +212 -0
  414. data/ext/zeromq/tests/test_security_null.cpp +148 -0
  415. data/ext/zeromq/tests/test_security_plain.cpp +150 -0
  416. data/ext/zeromq/tests/test_shutdown_stress.cpp +10 -23
  417. data/ext/zeromq/tests/test_spec_dealer.cpp +254 -0
  418. data/ext/zeromq/tests/test_spec_pushpull.cpp +293 -0
  419. data/ext/zeromq/tests/test_spec_rep.cpp +155 -0
  420. data/ext/zeromq/tests/test_spec_req.cpp +253 -0
  421. data/ext/zeromq/tests/test_spec_router.cpp +204 -0
  422. data/ext/zeromq/tests/test_stream.cpp +228 -0
  423. data/ext/zeromq/tests/test_sub_forward.cpp +14 -22
  424. data/ext/zeromq/tests/test_system.cpp +82 -0
  425. data/ext/zeromq/tests/test_term_endpoint.cpp +17 -31
  426. data/ext/zeromq/tests/test_timeo.cpp +34 -78
  427. data/ext/zeromq/tests/testutil.hpp +211 -26
  428. data/ext/zeromq/tools/Makefile.am +9 -0
  429. data/ext/zeromq/tools/curve_keygen.c +58 -0
  430. data/lib/zmq/version.rb +1 -1
  431. data/test/test_socket.rb +4 -3
  432. metadata +114 -15
  433. data/ext/zeromq/cmake/Modules/TestZMQVersion.cmake +0 -35
  434. data/ext/zeromq/foreign/openpgm/libpgm-5.1.118~dfsg.tar.gz +0 -0
  435. data/ext/zeromq/src/decoder.cpp +0 -166
  436. data/ext/zeromq/src/encoder.cpp +0 -102
  437. data/ext/zeromq/tests/test_connect_delay.cpp +0 -260
@@ -105,6 +105,10 @@ CZMQ_EXPORT void
105
105
  CZMQ_EXPORT bool
106
106
  zframe_eq (zframe_t *self, zframe_t *other);
107
107
 
108
+ // Print contents of the frame to FILE stream.
109
+ CZMQ_EXPORT void
110
+ zframe_fprint (zframe_t *self, const char *prefix, FILE *file);
111
+
108
112
  // Print contents of frame to stderr
109
113
  CZMQ_EXPORT void
110
114
  zframe_print (zframe_t *self, const char *prefix);
@@ -113,31 +117,14 @@ CZMQ_EXPORT void
113
117
  CZMQ_EXPORT void
114
118
  zframe_reset (zframe_t *self, const void *data, size_t size);
115
119
 
116
- // Callback function for zframe_free_fn method
117
- // DEPRECATED - will be removed for next stable release
118
- typedef void (zframe_free_fn) (void *data, void *arg);
119
-
120
- // Create a zero-copy frame
121
- // DEPRECATED - will be removed for next stable release
122
- CZMQ_EXPORT zframe_t *
123
- zframe_new_zero_copy (void *data, size_t size,
124
- zframe_free_fn *free_fn, void *arg);
125
-
126
- // Return frame zero copy indicator (1 or 0)
127
- // DEPRECATED - will be removed for next stable release
128
- CZMQ_EXPORT int
129
- zframe_zero_copy (zframe_t *self);
130
-
131
- // Set the free callback for frame
132
- // DEPRECATED - will be removed at next stable release
133
- CZMQ_EXPORT void
134
- zframe_freefn (zframe_t *self, zframe_free_fn *free_fn, void *arg);
135
-
136
120
  // Self test of this class
137
121
  CZMQ_EXPORT int
138
122
  zframe_test (bool verbose);
139
123
  // @end
140
124
 
125
+ // Deprecated method aliases
126
+ #define zframe_print_to_stream(s,p,F) zframe_fprint(s,p,F)
127
+
141
128
  #ifdef __cplusplus
142
129
  }
143
130
  #endif
@@ -99,6 +99,12 @@ CZMQ_EXPORT zlist_t *
99
99
  CZMQ_EXPORT int
100
100
  zhash_foreach (zhash_t *self, zhash_foreach_fn *callback, void *argument);
101
101
 
102
+ // Add comment to hash table before saving to disk. You can add as many
103
+ // comment lines as you like. These comment lines are discarded when loading
104
+ // the file. If you use a null format, all comments are deleted.
105
+ CZMQ_EXPORT void
106
+ zhash_comment (zhash_t *self, char *format, ...);
107
+
102
108
  // Save hash table to a text file in name=value format. Hash values must be
103
109
  // printable strings; keys may not contain '=' character. Returns 0 if OK,
104
110
  // else -1 if a file error occurred.
@@ -111,6 +117,13 @@ CZMQ_EXPORT int
111
117
  CZMQ_EXPORT int
112
118
  zhash_load (zhash_t *self, char *filename);
113
119
 
120
+ // When a hash table was loaded from a file by zhash_load, this method will
121
+ // reload the file if it has been modified since, and is "stable", i.e. not
122
+ // still changing. Returns 0 if OK, -1 if there was an error reloading the
123
+ // file.
124
+ CZMQ_EXPORT int
125
+ zhash_refresh (zhash_t *self);
126
+
114
127
  // Set hash for automatic value destruction
115
128
  CZMQ_EXPORT void
116
129
  zhash_autofree (zhash_t *self);
@@ -85,10 +85,6 @@ CZMQ_EXPORT void
85
85
  CZMQ_EXPORT zlist_t *
86
86
  zlist_dup (zlist_t *self);
87
87
 
88
- // Copy the entire list, return the copy (deprecated)
89
- CZMQ_EXPORT zlist_t *
90
- zlist_copy (zlist_t *self);
91
-
92
88
  // Return number of items in the list
93
89
  CZMQ_EXPORT size_t
94
90
  zlist_size (zlist_t *self);
@@ -59,6 +59,11 @@ CZMQ_EXPORT int
59
59
  CZMQ_EXPORT void
60
60
  zloop_poller_end (zloop_t *self, zmq_pollitem_t *item);
61
61
 
62
+ // Configure a registered pollitem to ignore errors. If you do not set this,
63
+ // then pollitems that have errors are removed from the reactor silently.
64
+ CZMQ_EXPORT void
65
+ zloop_set_tolerant (zloop_t *self, zmq_pollitem_t *item);
66
+
62
67
  // Register a timer that expires after some delay and repeats some number of
63
68
  // times. At each expiry, will call the handler, passing the arg. To
64
69
  // run a timer forever, use 0 times. Returns 0 if OK, -1 if there was an
@@ -86,11 +91,6 @@ CZMQ_EXPORT void
86
91
  zloop_test (bool verbose);
87
92
  // @end
88
93
 
89
-
90
- // to suppress disabling the event handler on POLLERR
91
- // set this in pollitem.events
92
- #define ZMQ_IGNERR 8
93
-
94
94
  #ifdef __cplusplus
95
95
  }
96
96
  #endif
@@ -42,40 +42,57 @@ CZMQ_EXPORT zmsg_t *
42
42
  CZMQ_EXPORT void
43
43
  zmsg_destroy (zmsg_t **self_p);
44
44
 
45
- // Read 1 or more frames off the socket, into a new message object
45
+ // Receive message from socket, returns zmsg_t object or NULL if the recv
46
+ // was interrupted. Does a blocking recv, if you want to not block then use
47
+ // the zloop class or zmq_poll to check for socket input before receiving.
46
48
  CZMQ_EXPORT zmsg_t *
47
49
  zmsg_recv (void *socket);
48
50
 
49
- // Send a message to the socket, and then destroy it
51
+ // Send message to socket, destroy after sending. If the message has no
52
+ // frames, sends nothing but destroys the message anyhow. Safe to call
53
+ // if zmsg is null.
50
54
  CZMQ_EXPORT int
51
55
  zmsg_send (zmsg_t **self_p, void *socket);
52
56
 
53
- // Return number of frames in message
57
+ // Return size of message, i.e. number of frames (0 or more).
54
58
  CZMQ_EXPORT size_t
55
59
  zmsg_size (zmsg_t *self);
56
60
 
57
- // Return combined size of all frames in message
61
+ // Return total size of all frames in message.
58
62
  CZMQ_EXPORT size_t
59
63
  zmsg_content_size (zmsg_t *self);
60
64
 
61
- // Push frame to front of message, before first frame
65
+ // Push frame to the front of the message, i.e. before all other frames.
66
+ // Message takes ownership of frame, will destroy it when message is sent.
67
+ // Returns 0 on success, -1 on error.
62
68
  CZMQ_EXPORT int
63
69
  zmsg_push (zmsg_t *self, zframe_t *frame);
64
70
 
65
- // Pop frame off front of message, caller now owns frame
71
+ // Remove first frame from message, if any. Returns frame, or NULL. Caller
72
+ // now owns frame and must destroy it when finished with it.
66
73
  CZMQ_EXPORT zframe_t *
67
74
  zmsg_pop (zmsg_t *self);
68
75
 
69
- // Add frame to end of message, after last frame
76
+ // Add frame to the end of the message, i.e. after all other frames.
77
+ // Message takes ownership of frame, will destroy it when message is sent.
78
+ // Returns 0 on success. Deprecates zmsg_add, which did not nullify the
79
+ // caller's frame reference.
80
+ CZMQ_EXPORT int
81
+ zmsg_append (zmsg_t *self, zframe_t **frame_p);
82
+
83
+ // Add frame to the end of the message, i.e. after all other frames.
84
+ // Message takes ownership of frame, will destroy it when message is sent.
85
+ // Returns 0 on success.
86
+ // DEPRECATED - will be removed for next stable release
70
87
  CZMQ_EXPORT int
71
88
  zmsg_add (zmsg_t *self, zframe_t *frame);
72
89
 
73
- // Push block of memory as new frame to front of message.
90
+ // Push block of memory to front of message, as a new frame.
74
91
  // Returns 0 on success, -1 on error.
75
92
  CZMQ_EXPORT int
76
93
  zmsg_pushmem (zmsg_t *self, const void *src, size_t size);
77
94
 
78
- // Push block of memory as new frame to end of message.
95
+ // Add block of memory to the end of the message, as a new frame.
79
96
  // Returns 0 on success, -1 on error.
80
97
  CZMQ_EXPORT int
81
98
  zmsg_addmem (zmsg_t *self, const void *src, size_t size);
@@ -90,12 +107,13 @@ CZMQ_EXPORT int
90
107
  CZMQ_EXPORT int
91
108
  zmsg_addstr (zmsg_t *self, const char *format, ...);
92
109
 
93
- // Pop frame off front of message, return as fresh string
110
+ // Pop frame off front of message, return as fresh string. If there were
111
+ // no more frames in the message, returns NULL.
94
112
  CZMQ_EXPORT char *
95
113
  zmsg_popstr (zmsg_t *self);
96
114
 
97
- // Push frame to front of message, before first frame
98
- // Pushes an empty frame in front of frame
115
+ // Push frame plus empty frame to front of message, before first frame.
116
+ // Message takes ownership of frame, will destroy it when message is sent.
99
117
  CZMQ_EXPORT void
100
118
  zmsg_wrap (zmsg_t *self, zframe_t *frame);
101
119
 
@@ -104,54 +122,66 @@ CZMQ_EXPORT void
104
122
  CZMQ_EXPORT zframe_t *
105
123
  zmsg_unwrap (zmsg_t *self);
106
124
 
107
- // Remove frame from message, at any position, caller owns it
125
+ // Remove specified frame from list, if present. Does not destroy frame.
108
126
  CZMQ_EXPORT void
109
127
  zmsg_remove (zmsg_t *self, zframe_t *frame);
110
128
 
111
- // Return first frame in message, or null
129
+ // Set cursor to first frame in message. Returns frame, or NULL, if the
130
+ // message is empty. Use this to navigate the frames as a list.
112
131
  CZMQ_EXPORT zframe_t *
113
132
  zmsg_first (zmsg_t *self);
114
133
 
115
- // Return next frame in message, or null
134
+ // Return the next frame. If there are no more frames, returns NULL. To move
135
+ // to the first frame call zmsg_first(). Advances the cursor.
116
136
  CZMQ_EXPORT zframe_t *
117
137
  zmsg_next (zmsg_t *self);
118
138
 
119
- // Return last frame in message, or null
139
+ // Return the last frame. If there are no frames, returns NULL.
120
140
  CZMQ_EXPORT zframe_t *
121
141
  zmsg_last (zmsg_t *self);
122
142
 
123
- // Save message to an open file, return 0 if OK, else -1.
143
+ // Save message to an open file, return 0 if OK, else -1. The message is
144
+ // saved as a series of frames, each with length and data. Note that the
145
+ // file is NOT guaranteed to be portable between operating systems, not
146
+ // versions of CZMQ. The file format is at present undocumented and liable
147
+ // to arbitrary change.
124
148
  CZMQ_EXPORT int
125
149
  zmsg_save (zmsg_t *self, FILE *file);
126
150
 
127
151
  // Load/append an open file into message, create new message if
128
- // null message provided.
152
+ // null message provided. Returns NULL if the message could not
153
+ // be loaded.
129
154
  CZMQ_EXPORT zmsg_t *
130
155
  zmsg_load (zmsg_t *self, FILE *file);
131
156
 
132
- // Encode message to a new buffer, return buffer size
157
+ // Serialize multipart message to a single buffer. Use this method to send
158
+ // structured messages across transports that do not support multipart data.
159
+ // Allocates and returns a new buffer containing the serialized message.
160
+ // To decode a serialized message buffer, use zmsg_decode ().
133
161
  CZMQ_EXPORT size_t
134
162
  zmsg_encode (zmsg_t *self, byte **buffer);
135
163
 
136
- // Decode a buffer into a new message, returns NULL if buffer is not
137
- // properly formatted.
164
+ // Decodes a serialized message buffer created by zmsg_encode () and returns
165
+ // a new zmsg_t object. Returns NULL if the buffer was badly formatted or
166
+ // there was insufficient memory to work.
138
167
  CZMQ_EXPORT zmsg_t *
139
168
  zmsg_decode (byte *buffer, size_t buffer_size);
140
169
 
141
- // Create copy of message, as new message object
170
+ // Create copy of message, as new message object. Returns a fresh zmsg_t
171
+ // object, or NULL if there was not enough heap memory.
142
172
  CZMQ_EXPORT zmsg_t *
143
173
  zmsg_dup (zmsg_t *self);
144
174
 
145
- // Print message to stderr, for debugging
175
+ // Dump message to stderr, for debugging and tracing.
176
+ // See zmsg_dump_to_stream() for details
146
177
  CZMQ_EXPORT void
147
178
  zmsg_dump (zmsg_t *self);
148
179
 
149
- // Push block of memory as new frame to end of message.
150
- // The frame is constructed using zero-copy.
151
- // Returns 0 on success, -1 on error.
152
- // DEPRECATED - will be removed for next stable release
153
- CZMQ_EXPORT int
154
- zmsg_addmem_zero_copy (zmsg_t *self, void *src, size_t size, zframe_free_fn *free_fn, void *arg);
180
+ // Dump message to FILE stream, for debugging and tracing.
181
+ // Truncates to first 10 frames, for readability; this may be unfortunate
182
+ // when debugging larger and more complex messages.
183
+ CZMQ_EXPORT void
184
+ zmsg_dump_to_stream (zmsg_t *self, FILE *file);
155
185
 
156
186
  // Self test of this class
157
187
  CZMQ_EXPORT int
@@ -50,6 +50,11 @@ CZMQ_EXPORT void
50
50
  CZMQ_EXPORT void
51
51
  zmutex_unlock (zmutex_t *self);
52
52
 
53
+ // Try to lock mutex
54
+ CZMQ_EXPORT int
55
+ zmutex_try_lock (zmutex_t *self);
56
+
57
+
53
58
  // Self test of this class
54
59
  CZMQ_EXPORT int
55
60
  zmutex_test (bool verbose);
@@ -0,0 +1,72 @@
1
+ /* =========================================================================
2
+ zpoller - trivial socket poller class
3
+
4
+ -------------------------------------------------------------------------
5
+ Copyright (c) 1991-2013 iMatix Corporation <www.imatix.com>
6
+ Copyright other contributors as noted in the AUTHORS file.
7
+
8
+ This file is part of CZMQ, the high-level C binding for 0MQ:
9
+ http://czmq.zeromq.org.
10
+
11
+ This is free software; you can redistribute it and/or modify it under the
12
+ terms of the GNU Lesser General Public License as published by the Free
13
+ Software Foundation; either version 3 of the License, or (at your option)
14
+ any later version.
15
+
16
+ This software is distributed in the hope that it will be useful, but
17
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABIL-
18
+ ITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
19
+ Public License for more details.
20
+
21
+ You should have received a copy of the GNU Lesser General Public License
22
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
23
+ =========================================================================
24
+ */
25
+
26
+ #ifndef __zpoller_H_INCLUDED__
27
+ #define __zpoller_H_INCLUDED__
28
+
29
+ #ifdef __cplusplus
30
+ extern "C" {
31
+ #endif
32
+
33
+ // Opaque class structure
34
+ typedef struct _zpoller_t zpoller_t;
35
+
36
+ // @interface
37
+ // Create new poller
38
+ CZMQ_EXPORT zpoller_t *
39
+ zpoller_new (void *reader, ...);
40
+
41
+ // Destroy a poller
42
+ CZMQ_EXPORT void
43
+ zpoller_destroy (zpoller_t **self_p);
44
+
45
+ // Poll the registered readers for I/O, return first socket that has input.
46
+ // This means the order that sockets are defined in the poll list affects
47
+ // their priority. If you need a balanced poll, use the low level zmq_poll
48
+ // method directly.
49
+ CZMQ_EXPORT void *
50
+ zpoller_wait (zpoller_t *self, int timeout);
51
+
52
+ // Return true if the last zpoller_wait () call ended because the timeout
53
+ // expired, without any error.
54
+ CZMQ_EXPORT bool
55
+ zpoller_expired (zpoller_t *self);
56
+
57
+ // Return true if the last zpoller_wait () call ended because the process
58
+ // was interrupted, or the parent context was destroyed.
59
+ CZMQ_EXPORT bool
60
+ zpoller_terminated (zpoller_t *self);
61
+
62
+ // Self test of this class
63
+ CZMQ_EXPORT int
64
+ zpoller_test (bool verbose);
65
+ // @end
66
+
67
+ #ifdef __cplusplus
68
+ }
69
+ #endif
70
+
71
+ #endif
72
+
@@ -9,16 +9,16 @@
9
9
  http://czmq.zeromq.org.
10
10
 
11
11
  This is free software; you can redistribute it and/or modify it under
12
- the terms of the GNU Lesser General Public License as published by the
13
- Free Software Foundation; either version 3 of the License, or (at your
12
+ the terms of the GNU Lesser General Public License as published by the
13
+ Free Software Foundation; either version 3 of the License, or (at your
14
14
  option) any later version.
15
15
 
16
16
  This software is distributed in the hope that it will be useful, but
17
17
  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABIL-
18
- ITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
18
+ ITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
19
19
  Public License for more details.
20
20
 
21
- You should have received a copy of the GNU Lesser General Public License
21
+ You should have received a copy of the GNU Lesser General Public License
22
22
  along with this program. If not, see <http://www.gnu.org/licenses/>.
23
23
  =========================================================================
24
24
  */
@@ -35,7 +35,7 @@ extern "C" {
35
35
  // We use this when choosing a port for dynamic binding.
36
36
  #define ZSOCKET_DYNFROM 0xc000
37
37
  #define ZSOCKET_DYNTO 0xffff
38
-
38
+
39
39
  // Callback function for zero-copy methods
40
40
  typedef void (zsocket_free_fn) (void *data, void *arg);
41
41
 
@@ -58,6 +58,12 @@ CZMQ_EXPORT void
58
58
  CZMQ_EXPORT int
59
59
  zsocket_bind (void *socket, const char *format, ...);
60
60
 
61
+ // Unbind a socket from a formatted endpoint.
62
+ // Returns 0 if OK, -1 if the endpoint was invalid or the function
63
+ // isn't supported.
64
+ CZMQ_EXPORT int
65
+ zsocket_unbind (void *socket, const char *format, ...);
66
+
61
67
  // Connect a socket to a formatted endpoint
62
68
  // Returns 0 if OK, -1 if the endpoint was invalid.
63
69
  CZMQ_EXPORT int
@@ -73,7 +79,7 @@ CZMQ_EXPORT int
73
79
  // ready on the socket, else FALSE.
74
80
  CZMQ_EXPORT bool
75
81
  zsocket_poll (void *socket, int msecs);
76
-
82
+
77
83
  // Returns socket type as printable constant string
78
84
  CZMQ_EXPORT char *
79
85
  zsocket_type_str (void *socket);
@@ -83,15 +89,6 @@ CZMQ_EXPORT char *
83
89
  CZMQ_EXPORT int
84
90
  zsocket_sendmem (void *socket, const void* data, size_t size, int flags);
85
91
 
86
- // Send data over a socket as a single frame
87
- // Returns -1 on error, 0 on success
88
- // DEPRECATED - will be removed for next stable release
89
- CZMQ_EXPORT int
90
- zsocket_sendmem_zero_copy (void *socket, void *data, size_t size,
91
- zsocket_free_fn *free_fn,
92
- void *hint, int flags);
93
-
94
-
95
92
  // Self test of this class
96
93
  CZMQ_EXPORT int
97
94
  zsocket_test (bool verbose);
@@ -36,60 +36,99 @@ extern "C" {
36
36
  #endif
37
37
 
38
38
  // @interface
39
- #if (ZMQ_VERSION_MAJOR == 2)
39
+ #if (ZMQ_VERSION_MAJOR == 4)
40
40
  // Get socket options
41
- CZMQ_EXPORT int zsocket_hwm (void *zocket);
42
- CZMQ_EXPORT int zsocket_swap (void *zocket);
41
+ CZMQ_EXPORT int zsocket_ipv6 (void *zocket);
42
+ CZMQ_EXPORT int zsocket_ipv4only (void *zocket);
43
+ CZMQ_EXPORT int zsocket_probe_router (void *zocket);
44
+ CZMQ_EXPORT int zsocket_plain_server (void *zocket);
45
+ CZMQ_EXPORT char * zsocket_plain_username (void *zocket);
46
+ CZMQ_EXPORT char * zsocket_plain_password (void *zocket);
47
+ CZMQ_EXPORT int zsocket_curve_server (void *zocket);
48
+ CZMQ_EXPORT char * zsocket_curve_publickey (void *zocket);
49
+ CZMQ_EXPORT char * zsocket_curve_secretkey (void *zocket);
50
+ CZMQ_EXPORT char * zsocket_curve_serverkey (void *zocket);
51
+ CZMQ_EXPORT char * zsocket_zap_domain (void *zocket);
52
+ CZMQ_EXPORT int zsocket_type (void *zocket);
53
+ CZMQ_EXPORT int zsocket_sndhwm (void *zocket);
54
+ CZMQ_EXPORT int zsocket_rcvhwm (void *zocket);
43
55
  CZMQ_EXPORT int zsocket_affinity (void *zocket);
44
56
  CZMQ_EXPORT char * zsocket_identity (void *zocket);
45
57
  CZMQ_EXPORT int zsocket_rate (void *zocket);
46
58
  CZMQ_EXPORT int zsocket_recovery_ivl (void *zocket);
47
- CZMQ_EXPORT int zsocket_recovery_ivl_msec (void *zocket);
48
- CZMQ_EXPORT int zsocket_mcast_loop (void *zocket);
49
- # if (ZMQ_VERSION_MINOR == 2)
50
- CZMQ_EXPORT int zsocket_rcvtimeo (void *zocket);
51
- # endif
52
- # if (ZMQ_VERSION_MINOR == 2)
53
- CZMQ_EXPORT int zsocket_sndtimeo (void *zocket);
54
- # endif
55
59
  CZMQ_EXPORT int zsocket_sndbuf (void *zocket);
56
60
  CZMQ_EXPORT int zsocket_rcvbuf (void *zocket);
57
61
  CZMQ_EXPORT int zsocket_linger (void *zocket);
58
62
  CZMQ_EXPORT int zsocket_reconnect_ivl (void *zocket);
59
63
  CZMQ_EXPORT int zsocket_reconnect_ivl_max (void *zocket);
60
64
  CZMQ_EXPORT int zsocket_backlog (void *zocket);
61
- CZMQ_EXPORT int zsocket_type (void *zocket);
65
+ CZMQ_EXPORT int zsocket_maxmsgsize (void *zocket);
66
+ CZMQ_EXPORT int zsocket_multicast_hops (void *zocket);
67
+ CZMQ_EXPORT int zsocket_rcvtimeo (void *zocket);
68
+ CZMQ_EXPORT int zsocket_sndtimeo (void *zocket);
69
+ CZMQ_EXPORT int zsocket_tcp_keepalive (void *zocket);
70
+ CZMQ_EXPORT int zsocket_tcp_keepalive_idle (void *zocket);
71
+ CZMQ_EXPORT int zsocket_tcp_keepalive_cnt (void *zocket);
72
+ CZMQ_EXPORT int zsocket_tcp_keepalive_intvl (void *zocket);
73
+ CZMQ_EXPORT char * zsocket_tcp_accept_filter (void *zocket);
62
74
  CZMQ_EXPORT int zsocket_rcvmore (void *zocket);
63
75
  CZMQ_EXPORT int zsocket_fd (void *zocket);
64
76
  CZMQ_EXPORT int zsocket_events (void *zocket);
77
+ CZMQ_EXPORT char * zsocket_last_endpoint (void *zocket);
65
78
 
66
79
  // Set socket options
67
- CZMQ_EXPORT void zsocket_set_hwm (void *zocket, int hwm);
68
- CZMQ_EXPORT void zsocket_set_swap (void *zocket, int swap);
80
+ CZMQ_EXPORT void zsocket_set_ipv6 (void *zocket, int ipv6);
81
+ CZMQ_EXPORT void zsocket_set_immediate (void *zocket, int immediate);
82
+ CZMQ_EXPORT void zsocket_set_router_raw (void *zocket, int router_raw);
83
+ CZMQ_EXPORT void zsocket_set_ipv4only (void *zocket, int ipv4only);
84
+ CZMQ_EXPORT void zsocket_set_delay_attach_on_connect (void *zocket, int delay_attach_on_connect);
85
+ CZMQ_EXPORT void zsocket_set_router_mandatory (void *zocket, int router_mandatory);
86
+ CZMQ_EXPORT void zsocket_set_req_relaxed (void *zocket, int req_relaxed);
87
+ CZMQ_EXPORT void zsocket_set_req_correlate (void *zocket, int req_correlate);
88
+ CZMQ_EXPORT void zsocket_set_conflate (void *zocket, int conflate);
89
+ CZMQ_EXPORT void zsocket_set_plain_server (void *zocket, int plain_server);
90
+ CZMQ_EXPORT void zsocket_set_plain_username (void *zocket, const char * plain_username);
91
+ CZMQ_EXPORT void zsocket_set_plain_password (void *zocket, const char * plain_password);
92
+ CZMQ_EXPORT void zsocket_set_curve_server (void *zocket, int curve_server);
93
+ CZMQ_EXPORT void zsocket_set_curve_publickey (void *zocket, const char * curve_publickey);
94
+ CZMQ_EXPORT void zsocket_set_curve_publickey_bin (void *zocket, const byte *curve_publickey);
95
+ CZMQ_EXPORT void zsocket_set_curve_secretkey (void *zocket, const char * curve_secretkey);
96
+ CZMQ_EXPORT void zsocket_set_curve_secretkey_bin (void *zocket, const byte *curve_secretkey);
97
+ CZMQ_EXPORT void zsocket_set_curve_serverkey (void *zocket, const char * curve_serverkey);
98
+ CZMQ_EXPORT void zsocket_set_curve_serverkey_bin (void *zocket, const byte *curve_serverkey);
99
+ CZMQ_EXPORT void zsocket_set_zap_domain (void *zocket, const char * zap_domain);
100
+ CZMQ_EXPORT void zsocket_set_sndhwm (void *zocket, int sndhwm);
101
+ CZMQ_EXPORT void zsocket_set_rcvhwm (void *zocket, int rcvhwm);
69
102
  CZMQ_EXPORT void zsocket_set_affinity (void *zocket, int affinity);
103
+ CZMQ_EXPORT void zsocket_set_subscribe (void *zocket, const char * subscribe);
104
+ CZMQ_EXPORT void zsocket_set_unsubscribe (void *zocket, const char * unsubscribe);
70
105
  CZMQ_EXPORT void zsocket_set_identity (void *zocket, const char * identity);
71
106
  CZMQ_EXPORT void zsocket_set_rate (void *zocket, int rate);
72
107
  CZMQ_EXPORT void zsocket_set_recovery_ivl (void *zocket, int recovery_ivl);
73
- CZMQ_EXPORT void zsocket_set_recovery_ivl_msec (void *zocket, int recovery_ivl_msec);
74
- CZMQ_EXPORT void zsocket_set_mcast_loop (void *zocket, int mcast_loop);
75
- # if (ZMQ_VERSION_MINOR == 2)
76
- CZMQ_EXPORT void zsocket_set_rcvtimeo (void *zocket, int rcvtimeo);
77
- # endif
78
- # if (ZMQ_VERSION_MINOR == 2)
79
- CZMQ_EXPORT void zsocket_set_sndtimeo (void *zocket, int sndtimeo);
80
- # endif
81
108
  CZMQ_EXPORT void zsocket_set_sndbuf (void *zocket, int sndbuf);
82
109
  CZMQ_EXPORT void zsocket_set_rcvbuf (void *zocket, int rcvbuf);
83
110
  CZMQ_EXPORT void zsocket_set_linger (void *zocket, int linger);
84
111
  CZMQ_EXPORT void zsocket_set_reconnect_ivl (void *zocket, int reconnect_ivl);
85
112
  CZMQ_EXPORT void zsocket_set_reconnect_ivl_max (void *zocket, int reconnect_ivl_max);
86
113
  CZMQ_EXPORT void zsocket_set_backlog (void *zocket, int backlog);
87
- CZMQ_EXPORT void zsocket_set_subscribe (void *zocket, const char * subscribe);
88
- CZMQ_EXPORT void zsocket_set_unsubscribe (void *zocket, const char * unsubscribe);
114
+ CZMQ_EXPORT void zsocket_set_maxmsgsize (void *zocket, int maxmsgsize);
115
+ CZMQ_EXPORT void zsocket_set_multicast_hops (void *zocket, int multicast_hops);
116
+ CZMQ_EXPORT void zsocket_set_rcvtimeo (void *zocket, int rcvtimeo);
117
+ CZMQ_EXPORT void zsocket_set_sndtimeo (void *zocket, int sndtimeo);
118
+ CZMQ_EXPORT void zsocket_set_xpub_verbose (void *zocket, int xpub_verbose);
119
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive (void *zocket, int tcp_keepalive);
120
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive_idle (void *zocket, int tcp_keepalive_idle);
121
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive_cnt (void *zocket, int tcp_keepalive_cnt);
122
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive_intvl (void *zocket, int tcp_keepalive_intvl);
123
+ CZMQ_EXPORT void zsocket_set_tcp_accept_filter (void *zocket, const char * tcp_accept_filter);
124
+
125
+ // Emulation of widely-used 2.x socket options
126
+ CZMQ_EXPORT void zsocket_set_hwm (void *zocket, int hwm);
89
127
  #endif
90
128
 
91
129
  #if (ZMQ_VERSION_MAJOR == 3)
92
130
  // Get socket options
131
+ CZMQ_EXPORT int zsocket_ipv4only (void *zocket);
93
132
  CZMQ_EXPORT int zsocket_type (void *zocket);
94
133
  CZMQ_EXPORT int zsocket_sndhwm (void *zocket);
95
134
  CZMQ_EXPORT int zsocket_rcvhwm (void *zocket);
@@ -107,13 +146,20 @@ CZMQ_EXPORT int zsocket_maxmsgsize (void *zocket);
107
146
  CZMQ_EXPORT int zsocket_multicast_hops (void *zocket);
108
147
  CZMQ_EXPORT int zsocket_rcvtimeo (void *zocket);
109
148
  CZMQ_EXPORT int zsocket_sndtimeo (void *zocket);
110
- CZMQ_EXPORT int zsocket_ipv4only (void *zocket);
149
+ CZMQ_EXPORT int zsocket_tcp_keepalive (void *zocket);
150
+ CZMQ_EXPORT int zsocket_tcp_keepalive_idle (void *zocket);
151
+ CZMQ_EXPORT int zsocket_tcp_keepalive_cnt (void *zocket);
152
+ CZMQ_EXPORT int zsocket_tcp_keepalive_intvl (void *zocket);
153
+ CZMQ_EXPORT char * zsocket_tcp_accept_filter (void *zocket);
111
154
  CZMQ_EXPORT int zsocket_rcvmore (void *zocket);
112
155
  CZMQ_EXPORT int zsocket_fd (void *zocket);
113
156
  CZMQ_EXPORT int zsocket_events (void *zocket);
114
157
  CZMQ_EXPORT char * zsocket_last_endpoint (void *zocket);
115
158
 
116
159
  // Set socket options
160
+ CZMQ_EXPORT void zsocket_set_router_raw (void *zocket, int router_raw);
161
+ CZMQ_EXPORT void zsocket_set_ipv4only (void *zocket, int ipv4only);
162
+ CZMQ_EXPORT void zsocket_set_delay_attach_on_connect (void *zocket, int delay_attach_on_connect);
117
163
  CZMQ_EXPORT void zsocket_set_sndhwm (void *zocket, int sndhwm);
118
164
  CZMQ_EXPORT void zsocket_set_rcvhwm (void *zocket, int rcvhwm);
119
165
  CZMQ_EXPORT void zsocket_set_affinity (void *zocket, int affinity);
@@ -132,115 +178,72 @@ CZMQ_EXPORT void zsocket_set_maxmsgsize (void *zocket, int maxmsgsize);
132
178
  CZMQ_EXPORT void zsocket_set_multicast_hops (void *zocket, int multicast_hops);
133
179
  CZMQ_EXPORT void zsocket_set_rcvtimeo (void *zocket, int rcvtimeo);
134
180
  CZMQ_EXPORT void zsocket_set_sndtimeo (void *zocket, int sndtimeo);
135
- CZMQ_EXPORT void zsocket_set_ipv4only (void *zocket, int ipv4only);
136
- CZMQ_EXPORT void zsocket_set_delay_attach_on_connect (void *zocket, int delay_attach_on_connect);
137
- CZMQ_EXPORT void zsocket_set_router_mandatory (void *zocket, int router_mandatory);
138
- CZMQ_EXPORT void zsocket_set_router_raw (void *zocket, int router_raw);
139
181
  CZMQ_EXPORT void zsocket_set_xpub_verbose (void *zocket, int xpub_verbose);
182
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive (void *zocket, int tcp_keepalive);
183
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive_idle (void *zocket, int tcp_keepalive_idle);
184
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive_cnt (void *zocket, int tcp_keepalive_cnt);
185
+ CZMQ_EXPORT void zsocket_set_tcp_keepalive_intvl (void *zocket, int tcp_keepalive_intvl);
186
+ CZMQ_EXPORT void zsocket_set_tcp_accept_filter (void *zocket, const char * tcp_accept_filter);
140
187
 
141
188
  // Emulation of widely-used 2.x socket options
142
- void zsocket_set_hwm (void *zocket, int hwm);
189
+ CZMQ_EXPORT void zsocket_set_hwm (void *zocket, int hwm);
143
190
  #endif
144
191
 
145
- // Self test of this class
146
- int zsockopt_test (bool verbose);
147
- // @end
148
-
149
- // Deprecated function names
150
192
  #if (ZMQ_VERSION_MAJOR == 2)
151
- #define zsockopt_hwm zsocket_hwm
152
- #define zsockopt_set_hwm zsocket_set_hwm
153
- #define zsockopt_swap zsocket_swap
154
- #define zsockopt_set_swap zsocket_set_swap
155
- #define zsockopt_affinity zsocket_affinity
156
- #define zsockopt_set_affinity zsocket_set_affinity
157
- #define zsockopt_identity zsocket_identity
158
- #define zsockopt_set_identity zsocket_set_identity
159
- #define zsockopt_rate zsocket_rate
160
- #define zsockopt_set_rate zsocket_set_rate
161
- #define zsockopt_recovery_ivl zsocket_recovery_ivl
162
- #define zsockopt_set_recovery_ivl zsocket_set_recovery_ivl
163
- #define zsockopt_recovery_ivl_msec zsocket_recovery_ivl_msec
164
- #define zsockopt_set_recovery_ivl_msec zsocket_set_recovery_ivl_msec
165
- #define zsockopt_mcast_loop zsocket_mcast_loop
166
- #define zsockopt_set_mcast_loop zsocket_set_mcast_loop
193
+ // Get socket options
194
+ CZMQ_EXPORT int zsocket_hwm (void *zocket);
195
+ CZMQ_EXPORT int zsocket_swap (void *zocket);
196
+ CZMQ_EXPORT int zsocket_affinity (void *zocket);
197
+ CZMQ_EXPORT char * zsocket_identity (void *zocket);
198
+ CZMQ_EXPORT int zsocket_rate (void *zocket);
199
+ CZMQ_EXPORT int zsocket_recovery_ivl (void *zocket);
200
+ CZMQ_EXPORT int zsocket_recovery_ivl_msec (void *zocket);
201
+ CZMQ_EXPORT int zsocket_mcast_loop (void *zocket);
167
202
  # if (ZMQ_VERSION_MINOR == 2)
168
- #define zsockopt_rcvtimeo zsocket_rcvtimeo
169
- #define zsockopt_set_rcvtimeo zsocket_set_rcvtimeo
203
+ CZMQ_EXPORT int zsocket_rcvtimeo (void *zocket);
170
204
  # endif
171
205
  # if (ZMQ_VERSION_MINOR == 2)
172
- #define zsockopt_sndtimeo zsocket_sndtimeo
173
- #define zsockopt_set_sndtimeo zsocket_set_sndtimeo
206
+ CZMQ_EXPORT int zsocket_sndtimeo (void *zocket);
174
207
  # endif
175
- #define zsockopt_sndbuf zsocket_sndbuf
176
- #define zsockopt_set_sndbuf zsocket_set_sndbuf
177
- #define zsockopt_rcvbuf zsocket_rcvbuf
178
- #define zsockopt_set_rcvbuf zsocket_set_rcvbuf
179
- #define zsockopt_linger zsocket_linger
180
- #define zsockopt_set_linger zsocket_set_linger
181
- #define zsockopt_reconnect_ivl zsocket_reconnect_ivl
182
- #define zsockopt_set_reconnect_ivl zsocket_set_reconnect_ivl
183
- #define zsockopt_reconnect_ivl_max zsocket_reconnect_ivl_max
184
- #define zsockopt_set_reconnect_ivl_max zsocket_set_reconnect_ivl_max
185
- #define zsockopt_backlog zsocket_backlog
186
- #define zsockopt_set_backlog zsocket_set_backlog
187
- #define zsockopt_set_subscribe zsocket_set_subscribe
188
- #define zsockopt_set_unsubscribe zsocket_set_unsubscribe
189
- #define zsockopt_type zsocket_type
190
- #define zsockopt_rcvmore zsocket_rcvmore
191
- #define zsockopt_fd zsocket_fd
192
- #define zsockopt_events zsocket_events
193
- #endif
208
+ CZMQ_EXPORT int zsocket_sndbuf (void *zocket);
209
+ CZMQ_EXPORT int zsocket_rcvbuf (void *zocket);
210
+ CZMQ_EXPORT int zsocket_linger (void *zocket);
211
+ CZMQ_EXPORT int zsocket_reconnect_ivl (void *zocket);
212
+ CZMQ_EXPORT int zsocket_reconnect_ivl_max (void *zocket);
213
+ CZMQ_EXPORT int zsocket_backlog (void *zocket);
214
+ CZMQ_EXPORT int zsocket_type (void *zocket);
215
+ CZMQ_EXPORT int zsocket_rcvmore (void *zocket);
216
+ CZMQ_EXPORT int zsocket_fd (void *zocket);
217
+ CZMQ_EXPORT int zsocket_events (void *zocket);
194
218
 
195
- // Deprecated function names
196
- #if (ZMQ_VERSION_MAJOR == 3)
197
- #define zsockopt_type zsocket_type
198
- #define zsockopt_sndhwm zsocket_sndhwm
199
- #define zsockopt_set_sndhwm zsocket_set_sndhwm
200
- #define zsockopt_rcvhwm zsocket_rcvhwm
201
- #define zsockopt_set_rcvhwm zsocket_set_rcvhwm
202
- #define zsockopt_affinity zsocket_affinity
203
- #define zsockopt_set_affinity zsocket_set_affinity
204
- #define zsockopt_set_subscribe zsocket_set_subscribe
205
- #define zsockopt_set_unsubscribe zsocket_set_unsubscribe
206
- #define zsockopt_identity zsocket_identity
207
- #define zsockopt_set_identity zsocket_set_identity
208
- #define zsockopt_rate zsocket_rate
209
- #define zsockopt_set_rate zsocket_set_rate
210
- #define zsockopt_recovery_ivl zsocket_recovery_ivl
211
- #define zsockopt_set_recovery_ivl zsocket_set_recovery_ivl
212
- #define zsockopt_sndbuf zsocket_sndbuf
213
- #define zsockopt_set_sndbuf zsocket_set_sndbuf
214
- #define zsockopt_rcvbuf zsocket_rcvbuf
215
- #define zsockopt_set_rcvbuf zsocket_set_rcvbuf
216
- #define zsockopt_linger zsocket_linger
217
- #define zsockopt_set_linger zsocket_set_linger
218
- #define zsockopt_reconnect_ivl zsocket_reconnect_ivl
219
- #define zsockopt_set_reconnect_ivl zsocket_set_reconnect_ivl
220
- #define zsockopt_reconnect_ivl_max zsocket_reconnect_ivl_max
221
- #define zsockopt_set_reconnect_ivl_max zsocket_set_reconnect_ivl_max
222
- #define zsockopt_backlog zsocket_backlog
223
- #define zsockopt_set_backlog zsocket_set_backlog
224
- #define zsockopt_maxmsgsize zsocket_maxmsgsize
225
- #define zsockopt_set_maxmsgsize zsocket_set_maxmsgsize
226
- #define zsockopt_multicast_hops zsocket_multicast_hops
227
- #define zsockopt_set_multicast_hops zsocket_set_multicast_hops
228
- #define zsockopt_rcvtimeo zsocket_rcvtimeo
229
- #define zsockopt_set_rcvtimeo zsocket_set_rcvtimeo
230
- #define zsockopt_sndtimeo zsocket_sndtimeo
231
- #define zsockopt_set_sndtimeo zsocket_set_sndtimeo
232
- #define zsockopt_ipv4only zsocket_ipv4only
233
- #define zsockopt_set_ipv4only zsocket_set_ipv4only
234
- #define zsockopt_set_delay_attach_on_connect zsocket_set_delay_attach_on_connect
235
- #define zsockopt_set_router_mandatory zsocket_set_router_mandatory
236
- #define zsockopt_set_router_raw zsocket_set_router_raw
237
- #define zsockopt_set_xpub_verbose zsocket_set_xpub_verbose
238
- #define zsockopt_rcvmore zsocket_rcvmore
239
- #define zsockopt_fd zsocket_fd
240
- #define zsockopt_events zsocket_events
241
- #define zsockopt_last_endpoint zsocket_last_endpoint
219
+ // Set socket options
220
+ CZMQ_EXPORT void zsocket_set_hwm (void *zocket, int hwm);
221
+ CZMQ_EXPORT void zsocket_set_swap (void *zocket, int swap);
222
+ CZMQ_EXPORT void zsocket_set_affinity (void *zocket, int affinity);
223
+ CZMQ_EXPORT void zsocket_set_identity (void *zocket, const char * identity);
224
+ CZMQ_EXPORT void zsocket_set_rate (void *zocket, int rate);
225
+ CZMQ_EXPORT void zsocket_set_recovery_ivl (void *zocket, int recovery_ivl);
226
+ CZMQ_EXPORT void zsocket_set_recovery_ivl_msec (void *zocket, int recovery_ivl_msec);
227
+ CZMQ_EXPORT void zsocket_set_mcast_loop (void *zocket, int mcast_loop);
228
+ # if (ZMQ_VERSION_MINOR == 2)
229
+ CZMQ_EXPORT void zsocket_set_rcvtimeo (void *zocket, int rcvtimeo);
230
+ # endif
231
+ # if (ZMQ_VERSION_MINOR == 2)
232
+ CZMQ_EXPORT void zsocket_set_sndtimeo (void *zocket, int sndtimeo);
233
+ # endif
234
+ CZMQ_EXPORT void zsocket_set_sndbuf (void *zocket, int sndbuf);
235
+ CZMQ_EXPORT void zsocket_set_rcvbuf (void *zocket, int rcvbuf);
236
+ CZMQ_EXPORT void zsocket_set_linger (void *zocket, int linger);
237
+ CZMQ_EXPORT void zsocket_set_reconnect_ivl (void *zocket, int reconnect_ivl);
238
+ CZMQ_EXPORT void zsocket_set_reconnect_ivl_max (void *zocket, int reconnect_ivl_max);
239
+ CZMQ_EXPORT void zsocket_set_backlog (void *zocket, int backlog);
240
+ CZMQ_EXPORT void zsocket_set_subscribe (void *zocket, const char * subscribe);
241
+ CZMQ_EXPORT void zsocket_set_unsubscribe (void *zocket, const char * unsubscribe);
242
242
  #endif
243
243
 
244
+ // Self test of this class
245
+ int zsockopt_test (bool verbose);
246
+ // @end
244
247
 
245
248
  #ifdef __cplusplus
246
249
  }