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
@@ -40,603 +40,439 @@
40
40
 
41
41
  #include "../include/czmq.h"
42
42
 
43
- #if (ZMQ_VERSION_MAJOR == 2)
43
+ #if (ZMQ_VERSION_MAJOR == 4)
44
44
  // --------------------------------------------------------------------------
45
- // Set socket ZMQ_HWM value
45
+ // Set socket ZMQ_IPV6 value
46
46
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
47
47
 
48
48
  void
49
- zsocket_set_hwm (void *zocket, int hwm)
49
+ zsocket_set_ipv6 (void *zocket, int ipv6)
50
50
  {
51
- # if defined (ZMQ_HWM)
52
- uint64_t value = hwm;
53
- int rc = zmq_setsockopt (zocket, ZMQ_HWM, &value, sizeof (uint64_t));
54
- assert (rc == 0 || errno == ETERM);
55
- # endif
51
+ int rc = zmq_setsockopt (zocket, ZMQ_IPV6, &ipv6, sizeof (int));
52
+ assert (rc == 0 || zmq_errno () == ETERM);
56
53
  }
57
54
 
58
55
 
59
56
  // --------------------------------------------------------------------------
60
- // Return socket ZMQ_HWM value
57
+ // Return socket ZMQ_IPV6 value
61
58
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
62
59
 
63
60
  int
64
- zsocket_hwm (void *zocket)
61
+ zsocket_ipv6 (void *zocket)
65
62
  {
66
- # if defined (ZMQ_HWM)
67
- uint64_t hwm;
68
- size_t option_len = sizeof (uint64_t);
69
- zmq_getsockopt (zocket, ZMQ_HWM, &hwm, &option_len);
70
- return (int) hwm;
71
- # endif
63
+ int ipv6;
64
+ size_t option_len = sizeof (int);
65
+ zmq_getsockopt (zocket, ZMQ_IPV6, &ipv6, &option_len);
66
+ return ipv6;
72
67
  }
73
68
 
74
69
 
75
70
  // --------------------------------------------------------------------------
76
- // Set socket ZMQ_SWAP value
71
+ // Set socket ZMQ_IMMEDIATE value
77
72
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
78
73
 
79
74
  void
80
- zsocket_set_swap (void *zocket, int swap)
75
+ zsocket_set_immediate (void *zocket, int immediate)
81
76
  {
82
- # if defined (ZMQ_SWAP)
83
- int64_t value = swap;
84
- int rc = zmq_setsockopt (zocket, ZMQ_SWAP, &value, sizeof (int64_t));
85
- assert (rc == 0 || errno == ETERM);
86
- # endif
77
+ int rc = zmq_setsockopt (zocket, ZMQ_IMMEDIATE, &immediate, sizeof (int));
78
+ assert (rc == 0 || zmq_errno () == ETERM);
87
79
  }
88
80
 
89
81
 
90
82
  // --------------------------------------------------------------------------
91
- // Return socket ZMQ_SWAP value
83
+ // Set socket ZMQ_ROUTER_RAW value
92
84
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
93
85
 
94
- int
95
- zsocket_swap (void *zocket)
86
+ void
87
+ zsocket_set_router_raw (void *zocket, int router_raw)
96
88
  {
97
- # if defined (ZMQ_SWAP)
98
- int64_t swap;
99
- size_t option_len = sizeof (int64_t);
100
- zmq_getsockopt (zocket, ZMQ_SWAP, &swap, &option_len);
101
- return (int) swap;
102
- # endif
89
+ if (zsocket_type (zocket) != ZMQ_ROUTER) {
90
+ printf ("ZMQ_ROUTER_RAW is not valid on %s sockets\n", zsocket_type_str (zocket));
91
+ assert (false);
92
+ }
93
+ int rc = zmq_setsockopt (zocket, ZMQ_ROUTER_RAW, &router_raw, sizeof (int));
94
+ assert (rc == 0 || zmq_errno () == ETERM);
103
95
  }
104
96
 
105
97
 
106
98
  // --------------------------------------------------------------------------
107
- // Set socket ZMQ_AFFINITY value
99
+ // Set socket ZMQ_IPV4ONLY value
108
100
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
109
101
 
110
102
  void
111
- zsocket_set_affinity (void *zocket, int affinity)
103
+ zsocket_set_ipv4only (void *zocket, int ipv4only)
112
104
  {
113
- # if defined (ZMQ_AFFINITY)
114
- uint64_t value = affinity;
115
- int rc = zmq_setsockopt (zocket, ZMQ_AFFINITY, &value, sizeof (uint64_t));
116
- assert (rc == 0 || errno == ETERM);
117
- # endif
105
+ int rc = zmq_setsockopt (zocket, ZMQ_IPV4ONLY, &ipv4only, sizeof (int));
106
+ assert (rc == 0 || zmq_errno () == ETERM);
118
107
  }
119
108
 
120
109
 
121
110
  // --------------------------------------------------------------------------
122
- // Return socket ZMQ_AFFINITY value
111
+ // Return socket ZMQ_IPV4ONLY value
123
112
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
124
113
 
125
114
  int
126
- zsocket_affinity (void *zocket)
115
+ zsocket_ipv4only (void *zocket)
127
116
  {
128
- # if defined (ZMQ_AFFINITY)
129
- uint64_t affinity;
130
- size_t option_len = sizeof (uint64_t);
131
- zmq_getsockopt (zocket, ZMQ_AFFINITY, &affinity, &option_len);
132
- return (int) affinity;
133
- # endif
117
+ int ipv4only;
118
+ size_t option_len = sizeof (int);
119
+ zmq_getsockopt (zocket, ZMQ_IPV4ONLY, &ipv4only, &option_len);
120
+ return ipv4only;
134
121
  }
135
122
 
136
123
 
137
124
  // --------------------------------------------------------------------------
138
- // Set socket ZMQ_IDENTITY value
125
+ // Set socket ZMQ_DELAY_ATTACH_ON_CONNECT value
139
126
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
140
127
 
141
128
  void
142
- zsocket_set_identity (void *zocket, const char * identity)
129
+ zsocket_set_delay_attach_on_connect (void *zocket, int delay_attach_on_connect)
143
130
  {
144
- # if defined (ZMQ_IDENTITY)
145
- int rc = zmq_setsockopt (zocket, ZMQ_IDENTITY, identity, strlen (identity));
146
- assert (rc == 0 || errno == ETERM);
147
- # endif
131
+ int rc = zmq_setsockopt (zocket, ZMQ_DELAY_ATTACH_ON_CONNECT, &delay_attach_on_connect, sizeof (int));
132
+ assert (rc == 0 || zmq_errno () == ETERM);
148
133
  }
149
134
 
150
135
 
151
136
  // --------------------------------------------------------------------------
152
- // Return socket ZMQ_IDENTITY value
137
+ // Set socket ZMQ_ROUTER_MANDATORY value
153
138
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
154
139
 
155
- char *
156
- zsocket_identity (void *zocket)
140
+ void
141
+ zsocket_set_router_mandatory (void *zocket, int router_mandatory)
157
142
  {
158
- # if defined (ZMQ_IDENTITY)
159
- size_t option_len = 255;
160
- char *identity = (char *) zmalloc (option_len);
161
- zmq_getsockopt (zocket, ZMQ_IDENTITY, identity, &option_len);
162
- return (char *) identity;
163
- # endif
143
+ if (zsocket_type (zocket) != ZMQ_ROUTER) {
144
+ printf ("ZMQ_ROUTER_MANDATORY is not valid on %s sockets\n", zsocket_type_str (zocket));
145
+ assert (false);
146
+ }
147
+ int rc = zmq_setsockopt (zocket, ZMQ_ROUTER_MANDATORY, &router_mandatory, sizeof (int));
148
+ assert (rc == 0 || zmq_errno () == ETERM);
164
149
  }
165
150
 
166
151
 
167
152
  // --------------------------------------------------------------------------
168
- // Set socket ZMQ_RATE value
153
+ // Return socket ZMQ_PROBE_ROUTER value
169
154
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
170
155
 
171
- void
172
- zsocket_set_rate (void *zocket, int rate)
156
+ int
157
+ zsocket_probe_router (void *zocket)
173
158
  {
174
- # if defined (ZMQ_RATE)
175
- int64_t value = rate;
176
- int rc = zmq_setsockopt (zocket, ZMQ_RATE, &value, sizeof (int64_t));
177
- assert (rc == 0 || errno == ETERM);
178
- # endif
159
+ int probe_router;
160
+ size_t option_len = sizeof (int);
161
+ zmq_getsockopt (zocket, ZMQ_PROBE_ROUTER, &probe_router, &option_len);
162
+ return probe_router;
179
163
  }
180
164
 
181
165
 
182
166
  // --------------------------------------------------------------------------
183
- // Return socket ZMQ_RATE value
167
+ // Set socket ZMQ_REQ_RELAXED value
184
168
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
185
169
 
186
- int
187
- zsocket_rate (void *zocket)
170
+ void
171
+ zsocket_set_req_relaxed (void *zocket, int req_relaxed)
188
172
  {
189
- # if defined (ZMQ_RATE)
190
- int64_t rate;
191
- size_t option_len = sizeof (int64_t);
192
- zmq_getsockopt (zocket, ZMQ_RATE, &rate, &option_len);
193
- return (int) rate;
194
- # endif
173
+ if (zsocket_type (zocket) != ZMQ_REQ) {
174
+ printf ("ZMQ_REQ_RELAXED is not valid on %s sockets\n", zsocket_type_str (zocket));
175
+ assert (false);
176
+ }
177
+ int rc = zmq_setsockopt (zocket, ZMQ_REQ_RELAXED, &req_relaxed, sizeof (int));
178
+ assert (rc == 0 || zmq_errno () == ETERM);
195
179
  }
196
180
 
197
181
 
198
182
  // --------------------------------------------------------------------------
199
- // Set socket ZMQ_RECOVERY_IVL value
183
+ // Set socket ZMQ_REQ_CORRELATE value
200
184
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
201
185
 
202
186
  void
203
- zsocket_set_recovery_ivl (void *zocket, int recovery_ivl)
187
+ zsocket_set_req_correlate (void *zocket, int req_correlate)
204
188
  {
205
- # if defined (ZMQ_RECOVERY_IVL)
206
- int64_t value = recovery_ivl;
207
- int rc = zmq_setsockopt (zocket, ZMQ_RECOVERY_IVL, &value, sizeof (int64_t));
208
- assert (rc == 0 || errno == ETERM);
209
- # endif
189
+ if (zsocket_type (zocket) != ZMQ_REQ) {
190
+ printf ("ZMQ_REQ_CORRELATE is not valid on %s sockets\n", zsocket_type_str (zocket));
191
+ assert (false);
192
+ }
193
+ int rc = zmq_setsockopt (zocket, ZMQ_REQ_CORRELATE, &req_correlate, sizeof (int));
194
+ assert (rc == 0 || zmq_errno () == ETERM);
210
195
  }
211
196
 
212
197
 
213
198
  // --------------------------------------------------------------------------
214
- // Return socket ZMQ_RECOVERY_IVL value
199
+ // Set socket ZMQ_CONFLATE value
215
200
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
216
201
 
217
- int
218
- zsocket_recovery_ivl (void *zocket)
219
- {
220
- # if defined (ZMQ_RECOVERY_IVL)
221
- int64_t recovery_ivl;
222
- size_t option_len = sizeof (int64_t);
223
- zmq_getsockopt (zocket, ZMQ_RECOVERY_IVL, &recovery_ivl, &option_len);
224
- return (int) recovery_ivl;
225
- # endif
202
+ void
203
+ zsocket_set_conflate (void *zocket, int conflate)
204
+ {
205
+ if (zsocket_type (zocket) != ZMQ_PUSH
206
+ && zsocket_type (zocket) != ZMQ_PULL
207
+ && zsocket_type (zocket) != ZMQ_PUB
208
+ && zsocket_type (zocket) != ZMQ_SUB
209
+ && zsocket_type (zocket) != ZMQ_DEALER) {
210
+ printf ("ZMQ_CONFLATE is not valid on %s sockets\n", zsocket_type_str (zocket));
211
+ assert (false);
212
+ }
213
+ int rc = zmq_setsockopt (zocket, ZMQ_CONFLATE, &conflate, sizeof (int));
214
+ assert (rc == 0 || zmq_errno () == ETERM);
226
215
  }
227
216
 
228
217
 
229
218
  // --------------------------------------------------------------------------
230
- // Set socket ZMQ_RECOVERY_IVL_MSEC value
219
+ // Set socket ZMQ_PLAIN_SERVER value
231
220
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
232
221
 
233
222
  void
234
- zsocket_set_recovery_ivl_msec (void *zocket, int recovery_ivl_msec)
223
+ zsocket_set_plain_server (void *zocket, int plain_server)
235
224
  {
236
- # if defined (ZMQ_RECOVERY_IVL_MSEC)
237
- int64_t value = recovery_ivl_msec;
238
- int rc = zmq_setsockopt (zocket, ZMQ_RECOVERY_IVL_MSEC, &value, sizeof (int64_t));
239
- assert (rc == 0 || errno == ETERM);
240
- # endif
225
+ int rc = zmq_setsockopt (zocket, ZMQ_PLAIN_SERVER, &plain_server, sizeof (int));
226
+ assert (rc == 0 || zmq_errno () == ETERM);
241
227
  }
242
228
 
243
229
 
244
230
  // --------------------------------------------------------------------------
245
- // Return socket ZMQ_RECOVERY_IVL_MSEC value
231
+ // Return socket ZMQ_PLAIN_SERVER value
246
232
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
247
233
 
248
234
  int
249
- zsocket_recovery_ivl_msec (void *zocket)
235
+ zsocket_plain_server (void *zocket)
250
236
  {
251
- # if defined (ZMQ_RECOVERY_IVL_MSEC)
252
- int64_t recovery_ivl_msec;
253
- size_t option_len = sizeof (int64_t);
254
- zmq_getsockopt (zocket, ZMQ_RECOVERY_IVL_MSEC, &recovery_ivl_msec, &option_len);
255
- return (int) recovery_ivl_msec;
256
- # endif
237
+ int plain_server;
238
+ size_t option_len = sizeof (int);
239
+ zmq_getsockopt (zocket, ZMQ_PLAIN_SERVER, &plain_server, &option_len);
240
+ return plain_server;
257
241
  }
258
242
 
259
243
 
260
244
  // --------------------------------------------------------------------------
261
- // Set socket ZMQ_MCAST_LOOP value
245
+ // Set socket ZMQ_PLAIN_USERNAME value
262
246
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
263
247
 
264
248
  void
265
- zsocket_set_mcast_loop (void *zocket, int mcast_loop)
249
+ zsocket_set_plain_username (void *zocket, const char * plain_username)
266
250
  {
267
- # if defined (ZMQ_MCAST_LOOP)
268
- int64_t value = mcast_loop;
269
- int rc = zmq_setsockopt (zocket, ZMQ_MCAST_LOOP, &value, sizeof (int64_t));
270
- assert (rc == 0 || errno == ETERM);
271
- # endif
251
+ int rc = zmq_setsockopt (zocket, ZMQ_PLAIN_USERNAME, plain_username, strlen (plain_username));
252
+ assert (rc == 0 || zmq_errno () == ETERM);
272
253
  }
273
254
 
274
255
 
275
256
  // --------------------------------------------------------------------------
276
- // Return socket ZMQ_MCAST_LOOP value
257
+ // Return socket ZMQ_PLAIN_USERNAME value
277
258
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
278
259
 
279
- int
280
- zsocket_mcast_loop (void *zocket)
260
+ char *
261
+ zsocket_plain_username (void *zocket)
281
262
  {
282
- # if defined (ZMQ_MCAST_LOOP)
283
- int64_t mcast_loop;
284
- size_t option_len = sizeof (int64_t);
285
- zmq_getsockopt (zocket, ZMQ_MCAST_LOOP, &mcast_loop, &option_len);
286
- return (int) mcast_loop;
287
- # endif
263
+ size_t option_len = 255;
264
+ char *plain_username = (char *) zmalloc (option_len);
265
+ zmq_getsockopt (zocket, ZMQ_PLAIN_USERNAME, plain_username, &option_len);
266
+ return (char *) plain_username;
288
267
  }
289
268
 
290
269
 
291
- # if (ZMQ_VERSION_MINOR == 2)
292
270
  // --------------------------------------------------------------------------
293
- // Set socket ZMQ_RCVTIMEO value
271
+ // Set socket ZMQ_PLAIN_PASSWORD value
294
272
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
295
273
 
296
274
  void
297
- zsocket_set_rcvtimeo (void *zocket, int rcvtimeo)
275
+ zsocket_set_plain_password (void *zocket, const char * plain_password)
298
276
  {
299
- # if defined (ZMQ_RCVTIMEO)
300
- int rc = zmq_setsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, sizeof (int));
301
- assert (rc == 0 || errno == ETERM);
302
- # endif
277
+ int rc = zmq_setsockopt (zocket, ZMQ_PLAIN_PASSWORD, plain_password, strlen (plain_password));
278
+ assert (rc == 0 || zmq_errno () == ETERM);
303
279
  }
304
280
 
305
281
 
306
282
  // --------------------------------------------------------------------------
307
- // Return socket ZMQ_RCVTIMEO value
283
+ // Return socket ZMQ_PLAIN_PASSWORD value
308
284
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
309
285
 
310
- int
311
- zsocket_rcvtimeo (void *zocket)
286
+ char *
287
+ zsocket_plain_password (void *zocket)
312
288
  {
313
- # if defined (ZMQ_RCVTIMEO)
314
- int rcvtimeo;
315
- size_t option_len = sizeof (int);
316
- zmq_getsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, &option_len);
317
- return rcvtimeo;
318
- # endif
289
+ size_t option_len = 255;
290
+ char *plain_password = (char *) zmalloc (option_len);
291
+ zmq_getsockopt (zocket, ZMQ_PLAIN_PASSWORD, plain_password, &option_len);
292
+ return (char *) plain_password;
319
293
  }
320
294
 
321
295
 
322
- # endif
323
- # if (ZMQ_VERSION_MINOR == 2)
324
296
  // --------------------------------------------------------------------------
325
- // Set socket ZMQ_SNDTIMEO value
297
+ // Set socket ZMQ_CURVE_SERVER value
326
298
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
327
299
 
328
300
  void
329
- zsocket_set_sndtimeo (void *zocket, int sndtimeo)
301
+ zsocket_set_curve_server (void *zocket, int curve_server)
330
302
  {
331
- # if defined (ZMQ_SNDTIMEO)
332
- int rc = zmq_setsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, sizeof (int));
333
- assert (rc == 0 || errno == ETERM);
334
- # endif
303
+ # if defined (HAVE_LIBSODIUM)
304
+ int rc = zmq_setsockopt (zocket, ZMQ_CURVE_SERVER, &curve_server, sizeof (int));
305
+ assert (rc == 0 || zmq_errno () == ETERM);
306
+ # endif
335
307
  }
336
308
 
337
309
 
338
310
  // --------------------------------------------------------------------------
339
- // Return socket ZMQ_SNDTIMEO value
311
+ // Return socket ZMQ_CURVE_SERVER value
340
312
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
341
313
 
342
314
  int
343
- zsocket_sndtimeo (void *zocket)
315
+ zsocket_curve_server (void *zocket)
344
316
  {
345
- # if defined (ZMQ_SNDTIMEO)
346
- int sndtimeo;
317
+ int curve_server;
347
318
  size_t option_len = sizeof (int);
348
- zmq_getsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, &option_len);
349
- return sndtimeo;
350
- # endif
319
+ zmq_getsockopt (zocket, ZMQ_CURVE_SERVER, &curve_server, &option_len);
320
+ return curve_server;
351
321
  }
352
322
 
353
323
 
354
- # endif
355
324
  // --------------------------------------------------------------------------
356
- // Set socket ZMQ_SNDBUF value
325
+ // Set socket ZMQ_CURVE_PUBLICKEY value
357
326
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
358
327
 
359
328
  void
360
- zsocket_set_sndbuf (void *zocket, int sndbuf)
329
+ zsocket_set_curve_publickey (void *zocket, const char * curve_publickey)
361
330
  {
362
- # if defined (ZMQ_SNDBUF)
363
- uint64_t value = sndbuf;
364
- int rc = zmq_setsockopt (zocket, ZMQ_SNDBUF, &value, sizeof (uint64_t));
365
- assert (rc == 0 || errno == ETERM);
366
- # endif
331
+ # if defined (HAVE_LIBSODIUM)
332
+ int rc = zmq_setsockopt (zocket, ZMQ_CURVE_PUBLICKEY, curve_publickey, strlen (curve_publickey));
333
+ assert (rc == 0 || zmq_errno () == ETERM);
334
+ # endif
367
335
  }
368
336
 
369
337
 
370
338
  // --------------------------------------------------------------------------
371
- // Return socket ZMQ_SNDBUF value
339
+ // Set socket ZMQ_CURVE_PUBLICKEY value from 32-octet binary
372
340
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
373
341
 
374
- int
375
- zsocket_sndbuf (void *zocket)
342
+ void
343
+ zsocket_set_curve_publickey_bin (void *zocket, const byte *curve_publickey)
376
344
  {
377
- # if defined (ZMQ_SNDBUF)
378
- uint64_t sndbuf;
379
- size_t option_len = sizeof (uint64_t);
380
- zmq_getsockopt (zocket, ZMQ_SNDBUF, &sndbuf, &option_len);
381
- return (int) sndbuf;
382
- # endif
345
+ # if defined (HAVE_LIBSODIUM)
346
+ int rc = zmq_setsockopt (zocket, ZMQ_CURVE_PUBLICKEY, curve_publickey, 32);
347
+ assert (rc == 0 || zmq_errno () == ETERM);
348
+ # endif
383
349
  }
384
350
 
385
351
 
386
352
  // --------------------------------------------------------------------------
387
- // Set socket ZMQ_RCVBUF value
353
+ // Return socket ZMQ_CURVE_PUBLICKEY value
388
354
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
389
355
 
390
- void
391
- zsocket_set_rcvbuf (void *zocket, int rcvbuf)
356
+ char *
357
+ zsocket_curve_publickey (void *zocket)
392
358
  {
393
- # if defined (ZMQ_RCVBUF)
394
- uint64_t value = rcvbuf;
395
- int rc = zmq_setsockopt (zocket, ZMQ_RCVBUF, &value, sizeof (uint64_t));
396
- assert (rc == 0 || errno == ETERM);
397
- # endif
359
+ size_t option_len = 255;
360
+ char *curve_publickey = (char *) zmalloc (option_len);
361
+ zmq_getsockopt (zocket, ZMQ_CURVE_PUBLICKEY, curve_publickey, &option_len);
362
+ return (char *) curve_publickey;
398
363
  }
399
364
 
400
365
 
401
366
  // --------------------------------------------------------------------------
402
- // Return socket ZMQ_RCVBUF value
367
+ // Set socket ZMQ_CURVE_SECRETKEY value
403
368
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
404
369
 
405
- int
406
- zsocket_rcvbuf (void *zocket)
370
+ void
371
+ zsocket_set_curve_secretkey (void *zocket, const char * curve_secretkey)
407
372
  {
408
- # if defined (ZMQ_RCVBUF)
409
- uint64_t rcvbuf;
410
- size_t option_len = sizeof (uint64_t);
411
- zmq_getsockopt (zocket, ZMQ_RCVBUF, &rcvbuf, &option_len);
412
- return (int) rcvbuf;
413
- # endif
373
+ # if defined (HAVE_LIBSODIUM)
374
+ int rc = zmq_setsockopt (zocket, ZMQ_CURVE_SECRETKEY, curve_secretkey, strlen (curve_secretkey));
375
+ assert (rc == 0 || zmq_errno () == ETERM);
376
+ # endif
414
377
  }
415
378
 
416
379
 
417
380
  // --------------------------------------------------------------------------
418
- // Set socket ZMQ_LINGER value
381
+ // Set socket ZMQ_CURVE_SECRETKEY value from 32-octet binary
419
382
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
420
383
 
421
384
  void
422
- zsocket_set_linger (void *zocket, int linger)
385
+ zsocket_set_curve_secretkey_bin (void *zocket, const byte *curve_secretkey)
423
386
  {
424
- # if defined (ZMQ_LINGER)
425
- int rc = zmq_setsockopt (zocket, ZMQ_LINGER, &linger, sizeof (int));
426
- assert (rc == 0 || errno == ETERM);
427
- # endif
387
+ # if defined (HAVE_LIBSODIUM)
388
+ int rc = zmq_setsockopt (zocket, ZMQ_CURVE_SECRETKEY, curve_secretkey, 32);
389
+ assert (rc == 0 || zmq_errno () == ETERM);
390
+ # endif
428
391
  }
429
392
 
430
393
 
431
394
  // --------------------------------------------------------------------------
432
- // Return socket ZMQ_LINGER value
395
+ // Return socket ZMQ_CURVE_SECRETKEY value
433
396
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
434
397
 
435
- int
436
- zsocket_linger (void *zocket)
398
+ char *
399
+ zsocket_curve_secretkey (void *zocket)
437
400
  {
438
- # if defined (ZMQ_LINGER)
439
- int linger;
440
- size_t option_len = sizeof (int);
441
- zmq_getsockopt (zocket, ZMQ_LINGER, &linger, &option_len);
442
- return linger;
443
- # endif
401
+ size_t option_len = 255;
402
+ char *curve_secretkey = (char *) zmalloc (option_len);
403
+ zmq_getsockopt (zocket, ZMQ_CURVE_SECRETKEY, curve_secretkey, &option_len);
404
+ return (char *) curve_secretkey;
444
405
  }
445
406
 
446
407
 
447
408
  // --------------------------------------------------------------------------
448
- // Set socket ZMQ_RECONNECT_IVL value
409
+ // Set socket ZMQ_CURVE_SERVERKEY value
449
410
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
450
411
 
451
412
  void
452
- zsocket_set_reconnect_ivl (void *zocket, int reconnect_ivl)
413
+ zsocket_set_curve_serverkey (void *zocket, const char * curve_serverkey)
453
414
  {
454
- # if defined (ZMQ_RECONNECT_IVL)
455
- int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, sizeof (int));
456
- assert (rc == 0 || errno == ETERM);
457
- # endif
415
+ # if defined (HAVE_LIBSODIUM)
416
+ int rc = zmq_setsockopt (zocket, ZMQ_CURVE_SERVERKEY, curve_serverkey, strlen (curve_serverkey));
417
+ assert (rc == 0 || zmq_errno () == ETERM);
418
+ # endif
458
419
  }
459
420
 
460
421
 
461
422
  // --------------------------------------------------------------------------
462
- // Return socket ZMQ_RECONNECT_IVL value
423
+ // Set socket ZMQ_CURVE_SERVERKEY value from 32-octet binary
463
424
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
464
425
 
465
- int
466
- zsocket_reconnect_ivl (void *zocket)
426
+ void
427
+ zsocket_set_curve_serverkey_bin (void *zocket, const byte *curve_serverkey)
467
428
  {
468
- # if defined (ZMQ_RECONNECT_IVL)
469
- int reconnect_ivl;
470
- size_t option_len = sizeof (int);
471
- zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, &option_len);
472
- return reconnect_ivl;
473
- # endif
474
- }
475
-
476
-
477
- // --------------------------------------------------------------------------
478
- // Set socket ZMQ_RECONNECT_IVL_MAX value
479
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
480
-
481
- void
482
- zsocket_set_reconnect_ivl_max (void *zocket, int reconnect_ivl_max)
483
- {
484
- # if defined (ZMQ_RECONNECT_IVL_MAX)
485
- int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, sizeof (int));
486
- assert (rc == 0 || errno == ETERM);
487
- # endif
488
- }
489
-
490
-
491
- // --------------------------------------------------------------------------
492
- // Return socket ZMQ_RECONNECT_IVL_MAX value
493
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
494
-
495
- int
496
- zsocket_reconnect_ivl_max (void *zocket)
497
- {
498
- # if defined (ZMQ_RECONNECT_IVL_MAX)
499
- int reconnect_ivl_max;
500
- size_t option_len = sizeof (int);
501
- zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, &option_len);
502
- return reconnect_ivl_max;
503
- # endif
504
- }
505
-
506
-
507
- // --------------------------------------------------------------------------
508
- // Set socket ZMQ_BACKLOG value
509
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
510
-
511
- void
512
- zsocket_set_backlog (void *zocket, int backlog)
513
- {
514
- # if defined (ZMQ_BACKLOG)
515
- int rc = zmq_setsockopt (zocket, ZMQ_BACKLOG, &backlog, sizeof (int));
516
- assert (rc == 0 || errno == ETERM);
517
- # endif
518
- }
519
-
520
-
521
- // --------------------------------------------------------------------------
522
- // Return socket ZMQ_BACKLOG value
523
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
524
-
525
- int
526
- zsocket_backlog (void *zocket)
527
- {
528
- # if defined (ZMQ_BACKLOG)
529
- int backlog;
530
- size_t option_len = sizeof (int);
531
- zmq_getsockopt (zocket, ZMQ_BACKLOG, &backlog, &option_len);
532
- return backlog;
533
- # endif
429
+ # if defined (HAVE_LIBSODIUM)
430
+ int rc = zmq_setsockopt (zocket, ZMQ_CURVE_SERVERKEY, curve_serverkey, 32);
431
+ assert (rc == 0 || zmq_errno () == ETERM);
432
+ # endif
534
433
  }
535
434
 
536
435
 
537
436
  // --------------------------------------------------------------------------
538
- // Set socket ZMQ_SUBSCRIBE value
437
+ // Return socket ZMQ_CURVE_SERVERKEY value
539
438
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
540
439
 
541
- void
542
- zsocket_set_subscribe (void *zocket, const char * subscribe)
440
+ char *
441
+ zsocket_curve_serverkey (void *zocket)
543
442
  {
544
- # if defined (ZMQ_SUBSCRIBE)
545
- if (zsockopt_type (zocket) != ZMQ_SUB) {
546
- printf ("ZMQ_SUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
547
- assert (false);
548
- }
549
- int rc = zmq_setsockopt (zocket, ZMQ_SUBSCRIBE, subscribe, strlen (subscribe));
550
- assert (rc == 0 || errno == ETERM);
551
- # endif
443
+ size_t option_len = 255;
444
+ char *curve_serverkey = (char *) zmalloc (option_len);
445
+ zmq_getsockopt (zocket, ZMQ_CURVE_SERVERKEY, curve_serverkey, &option_len);
446
+ return (char *) curve_serverkey;
552
447
  }
553
448
 
554
449
 
555
450
  // --------------------------------------------------------------------------
556
- // Set socket ZMQ_UNSUBSCRIBE value
451
+ // Set socket ZMQ_ZAP_DOMAIN value
557
452
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
558
453
 
559
454
  void
560
- zsocket_set_unsubscribe (void *zocket, const char * unsubscribe)
561
- {
562
- # if defined (ZMQ_UNSUBSCRIBE)
563
- if (zsockopt_type (zocket) != ZMQ_SUB) {
564
- printf ("ZMQ_UNSUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
565
- assert (false);
566
- }
567
- int rc = zmq_setsockopt (zocket, ZMQ_UNSUBSCRIBE, unsubscribe, strlen (unsubscribe));
568
- assert (rc == 0 || errno == ETERM);
569
- # endif
570
- }
571
-
572
-
573
- // --------------------------------------------------------------------------
574
- // Return socket ZMQ_TYPE value
575
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
576
-
577
- int
578
- zsocket_type (void *zocket)
579
- {
580
- # if defined (ZMQ_TYPE)
581
- int type;
582
- size_t option_len = sizeof (int);
583
- zmq_getsockopt (zocket, ZMQ_TYPE, &type, &option_len);
584
- return type;
585
- # endif
586
- }
587
-
588
-
589
- // --------------------------------------------------------------------------
590
- // Return socket ZMQ_RCVMORE value
591
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
592
-
593
- int
594
- zsocket_rcvmore (void *zocket)
595
- {
596
- # if defined (ZMQ_RCVMORE)
597
- int64_t rcvmore;
598
- size_t option_len = sizeof (int64_t);
599
- zmq_getsockopt (zocket, ZMQ_RCVMORE, &rcvmore, &option_len);
600
- return (int) rcvmore;
601
- # endif
602
- }
603
-
604
-
605
- // --------------------------------------------------------------------------
606
- // Return socket ZMQ_FD value
607
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
608
-
609
- int
610
- zsocket_fd (void *zocket)
455
+ zsocket_set_zap_domain (void *zocket, const char * zap_domain)
611
456
  {
612
- # if defined (ZMQ_FD)
613
- int fd;
614
- size_t option_len = sizeof (int);
615
- zmq_getsockopt (zocket, ZMQ_FD, &fd, &option_len);
616
- return fd;
617
- # endif
457
+ int rc = zmq_setsockopt (zocket, ZMQ_ZAP_DOMAIN, zap_domain, strlen (zap_domain));
458
+ assert (rc == 0 || zmq_errno () == ETERM);
618
459
  }
619
460
 
620
461
 
621
462
  // --------------------------------------------------------------------------
622
- // Return socket ZMQ_EVENTS value
463
+ // Return socket ZMQ_ZAP_DOMAIN value
623
464
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
624
465
 
625
- int
626
- zsocket_events (void *zocket)
466
+ char *
467
+ zsocket_zap_domain (void *zocket)
627
468
  {
628
- # if defined (ZMQ_EVENTS)
629
- uint32_t events;
630
- size_t option_len = sizeof (uint32_t);
631
- zmq_getsockopt (zocket, ZMQ_EVENTS, &events, &option_len);
632
- return (int) events;
633
- # endif
469
+ size_t option_len = 255;
470
+ char *zap_domain = (char *) zmalloc (option_len);
471
+ zmq_getsockopt (zocket, ZMQ_ZAP_DOMAIN, zap_domain, &option_len);
472
+ return (char *) zap_domain;
634
473
  }
635
474
 
636
475
 
637
- #endif
638
-
639
- #if (ZMQ_VERSION_MAJOR == 3)
640
476
  // --------------------------------------------------------------------------
641
477
  // Return socket ZMQ_TYPE value
642
478
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
@@ -644,12 +480,10 @@ zsocket_events (void *zocket)
644
480
  int
645
481
  zsocket_type (void *zocket)
646
482
  {
647
- # if defined (ZMQ_TYPE)
648
483
  int type;
649
484
  size_t option_len = sizeof (int);
650
485
  zmq_getsockopt (zocket, ZMQ_TYPE, &type, &option_len);
651
486
  return type;
652
- # endif
653
487
  }
654
488
 
655
489
 
@@ -660,10 +494,8 @@ zsocket_type (void *zocket)
660
494
  void
661
495
  zsocket_set_sndhwm (void *zocket, int sndhwm)
662
496
  {
663
- # if defined (ZMQ_SNDHWM)
664
497
  int rc = zmq_setsockopt (zocket, ZMQ_SNDHWM, &sndhwm, sizeof (int));
665
- assert (rc == 0 || errno == ETERM);
666
- # endif
498
+ assert (rc == 0 || zmq_errno () == ETERM);
667
499
  }
668
500
 
669
501
 
@@ -674,12 +506,10 @@ zsocket_set_sndhwm (void *zocket, int sndhwm)
674
506
  int
675
507
  zsocket_sndhwm (void *zocket)
676
508
  {
677
- # if defined (ZMQ_SNDHWM)
678
509
  int sndhwm;
679
510
  size_t option_len = sizeof (int);
680
511
  zmq_getsockopt (zocket, ZMQ_SNDHWM, &sndhwm, &option_len);
681
512
  return sndhwm;
682
- # endif
683
513
  }
684
514
 
685
515
 
@@ -690,10 +520,8 @@ zsocket_sndhwm (void *zocket)
690
520
  void
691
521
  zsocket_set_rcvhwm (void *zocket, int rcvhwm)
692
522
  {
693
- # if defined (ZMQ_RCVHWM)
694
523
  int rc = zmq_setsockopt (zocket, ZMQ_RCVHWM, &rcvhwm, sizeof (int));
695
- assert (rc == 0 || errno == ETERM);
696
- # endif
524
+ assert (rc == 0 || zmq_errno () == ETERM);
697
525
  }
698
526
 
699
527
 
@@ -704,12 +532,10 @@ zsocket_set_rcvhwm (void *zocket, int rcvhwm)
704
532
  int
705
533
  zsocket_rcvhwm (void *zocket)
706
534
  {
707
- # if defined (ZMQ_RCVHWM)
708
535
  int rcvhwm;
709
536
  size_t option_len = sizeof (int);
710
537
  zmq_getsockopt (zocket, ZMQ_RCVHWM, &rcvhwm, &option_len);
711
538
  return rcvhwm;
712
- # endif
713
539
  }
714
540
 
715
541
 
@@ -720,11 +546,9 @@ zsocket_rcvhwm (void *zocket)
720
546
  void
721
547
  zsocket_set_affinity (void *zocket, int affinity)
722
548
  {
723
- # if defined (ZMQ_AFFINITY)
724
549
  uint64_t value = affinity;
725
550
  int rc = zmq_setsockopt (zocket, ZMQ_AFFINITY, &value, sizeof (uint64_t));
726
- assert (rc == 0 || errno == ETERM);
727
- # endif
551
+ assert (rc == 0 || zmq_errno () == ETERM);
728
552
  }
729
553
 
730
554
 
@@ -735,12 +559,10 @@ zsocket_set_affinity (void *zocket, int affinity)
735
559
  int
736
560
  zsocket_affinity (void *zocket)
737
561
  {
738
- # if defined (ZMQ_AFFINITY)
739
562
  uint64_t affinity;
740
563
  size_t option_len = sizeof (uint64_t);
741
564
  zmq_getsockopt (zocket, ZMQ_AFFINITY, &affinity, &option_len);
742
565
  return (int) affinity;
743
- # endif
744
566
  }
745
567
 
746
568
 
@@ -751,14 +573,12 @@ zsocket_affinity (void *zocket)
751
573
  void
752
574
  zsocket_set_subscribe (void *zocket, const char * subscribe)
753
575
  {
754
- # if defined (ZMQ_SUBSCRIBE)
755
- if (zsockopt_type (zocket) != ZMQ_SUB) {
576
+ if (zsocket_type (zocket) != ZMQ_SUB) {
756
577
  printf ("ZMQ_SUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
757
578
  assert (false);
758
579
  }
759
580
  int rc = zmq_setsockopt (zocket, ZMQ_SUBSCRIBE, subscribe, strlen (subscribe));
760
- assert (rc == 0 || errno == ETERM);
761
- # endif
581
+ assert (rc == 0 || zmq_errno () == ETERM);
762
582
  }
763
583
 
764
584
 
@@ -769,14 +589,12 @@ zsocket_set_subscribe (void *zocket, const char * subscribe)
769
589
  void
770
590
  zsocket_set_unsubscribe (void *zocket, const char * unsubscribe)
771
591
  {
772
- # if defined (ZMQ_UNSUBSCRIBE)
773
- if (zsockopt_type (zocket) != ZMQ_SUB) {
592
+ if (zsocket_type (zocket) != ZMQ_SUB) {
774
593
  printf ("ZMQ_UNSUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
775
594
  assert (false);
776
595
  }
777
596
  int rc = zmq_setsockopt (zocket, ZMQ_UNSUBSCRIBE, unsubscribe, strlen (unsubscribe));
778
- assert (rc == 0 || errno == ETERM);
779
- # endif
597
+ assert (rc == 0 || zmq_errno () == ETERM);
780
598
  }
781
599
 
782
600
 
@@ -787,17 +605,16 @@ zsocket_set_unsubscribe (void *zocket, const char * unsubscribe)
787
605
  void
788
606
  zsocket_set_identity (void *zocket, const char * identity)
789
607
  {
790
- # if defined (ZMQ_IDENTITY)
791
- if (zsockopt_type (zocket) != ZMQ_REQ
792
- && zsockopt_type (zocket) != ZMQ_REP
793
- && zsockopt_type (zocket) != ZMQ_DEALER
794
- && zsockopt_type (zocket) != ZMQ_ROUTER) {
608
+ if (zsocket_type (zocket) != ZMQ_REQ
609
+ && zsocket_type (zocket) != ZMQ_REP
610
+ && zsocket_type (zocket) != ZMQ_DEALER
611
+ && zsocket_type (zocket) != ZMQ_ROUTER
612
+ && zsocket_type (zocket) != ZMQ_STREAM) {
795
613
  printf ("ZMQ_IDENTITY is not valid on %s sockets\n", zsocket_type_str (zocket));
796
614
  assert (false);
797
615
  }
798
616
  int rc = zmq_setsockopt (zocket, ZMQ_IDENTITY, identity, strlen (identity));
799
- assert (rc == 0 || errno == ETERM);
800
- # endif
617
+ assert (rc == 0 || zmq_errno () == ETERM);
801
618
  }
802
619
 
803
620
 
@@ -808,12 +625,10 @@ zsocket_set_identity (void *zocket, const char * identity)
808
625
  char *
809
626
  zsocket_identity (void *zocket)
810
627
  {
811
- # if defined (ZMQ_IDENTITY)
812
628
  size_t option_len = 255;
813
629
  char *identity = (char *) zmalloc (option_len);
814
630
  zmq_getsockopt (zocket, ZMQ_IDENTITY, identity, &option_len);
815
631
  return (char *) identity;
816
- # endif
817
632
  }
818
633
 
819
634
 
@@ -824,10 +639,8 @@ zsocket_identity (void *zocket)
824
639
  void
825
640
  zsocket_set_rate (void *zocket, int rate)
826
641
  {
827
- # if defined (ZMQ_RATE)
828
642
  int rc = zmq_setsockopt (zocket, ZMQ_RATE, &rate, sizeof (int));
829
- assert (rc == 0 || errno == ETERM);
830
- # endif
643
+ assert (rc == 0 || zmq_errno () == ETERM);
831
644
  }
832
645
 
833
646
 
@@ -838,12 +651,10 @@ zsocket_set_rate (void *zocket, int rate)
838
651
  int
839
652
  zsocket_rate (void *zocket)
840
653
  {
841
- # if defined (ZMQ_RATE)
842
654
  int rate;
843
655
  size_t option_len = sizeof (int);
844
656
  zmq_getsockopt (zocket, ZMQ_RATE, &rate, &option_len);
845
657
  return rate;
846
- # endif
847
658
  }
848
659
 
849
660
 
@@ -854,10 +665,8 @@ zsocket_rate (void *zocket)
854
665
  void
855
666
  zsocket_set_recovery_ivl (void *zocket, int recovery_ivl)
856
667
  {
857
- # if defined (ZMQ_RECOVERY_IVL)
858
668
  int rc = zmq_setsockopt (zocket, ZMQ_RECOVERY_IVL, &recovery_ivl, sizeof (int));
859
- assert (rc == 0 || errno == ETERM);
860
- # endif
669
+ assert (rc == 0 || zmq_errno () == ETERM);
861
670
  }
862
671
 
863
672
 
@@ -868,12 +677,10 @@ zsocket_set_recovery_ivl (void *zocket, int recovery_ivl)
868
677
  int
869
678
  zsocket_recovery_ivl (void *zocket)
870
679
  {
871
- # if defined (ZMQ_RECOVERY_IVL)
872
680
  int recovery_ivl;
873
681
  size_t option_len = sizeof (int);
874
682
  zmq_getsockopt (zocket, ZMQ_RECOVERY_IVL, &recovery_ivl, &option_len);
875
683
  return recovery_ivl;
876
- # endif
877
684
  }
878
685
 
879
686
 
@@ -884,10 +691,8 @@ zsocket_recovery_ivl (void *zocket)
884
691
  void
885
692
  zsocket_set_sndbuf (void *zocket, int sndbuf)
886
693
  {
887
- # if defined (ZMQ_SNDBUF)
888
694
  int rc = zmq_setsockopt (zocket, ZMQ_SNDBUF, &sndbuf, sizeof (int));
889
- assert (rc == 0 || errno == ETERM);
890
- # endif
695
+ assert (rc == 0 || zmq_errno () == ETERM);
891
696
  }
892
697
 
893
698
 
@@ -898,12 +703,10 @@ zsocket_set_sndbuf (void *zocket, int sndbuf)
898
703
  int
899
704
  zsocket_sndbuf (void *zocket)
900
705
  {
901
- # if defined (ZMQ_SNDBUF)
902
706
  int sndbuf;
903
707
  size_t option_len = sizeof (int);
904
708
  zmq_getsockopt (zocket, ZMQ_SNDBUF, &sndbuf, &option_len);
905
709
  return sndbuf;
906
- # endif
907
710
  }
908
711
 
909
712
 
@@ -914,10 +717,8 @@ zsocket_sndbuf (void *zocket)
914
717
  void
915
718
  zsocket_set_rcvbuf (void *zocket, int rcvbuf)
916
719
  {
917
- # if defined (ZMQ_RCVBUF)
918
720
  int rc = zmq_setsockopt (zocket, ZMQ_RCVBUF, &rcvbuf, sizeof (int));
919
- assert (rc == 0 || errno == ETERM);
920
- # endif
721
+ assert (rc == 0 || zmq_errno () == ETERM);
921
722
  }
922
723
 
923
724
 
@@ -928,12 +729,10 @@ zsocket_set_rcvbuf (void *zocket, int rcvbuf)
928
729
  int
929
730
  zsocket_rcvbuf (void *zocket)
930
731
  {
931
- # if defined (ZMQ_RCVBUF)
932
732
  int rcvbuf;
933
733
  size_t option_len = sizeof (int);
934
734
  zmq_getsockopt (zocket, ZMQ_RCVBUF, &rcvbuf, &option_len);
935
735
  return rcvbuf;
936
- # endif
937
736
  }
938
737
 
939
738
 
@@ -944,10 +743,8 @@ zsocket_rcvbuf (void *zocket)
944
743
  void
945
744
  zsocket_set_linger (void *zocket, int linger)
946
745
  {
947
- # if defined (ZMQ_LINGER)
948
746
  int rc = zmq_setsockopt (zocket, ZMQ_LINGER, &linger, sizeof (int));
949
- assert (rc == 0 || errno == ETERM);
950
- # endif
747
+ assert (rc == 0 || zmq_errno () == ETERM);
951
748
  }
952
749
 
953
750
 
@@ -958,12 +755,10 @@ zsocket_set_linger (void *zocket, int linger)
958
755
  int
959
756
  zsocket_linger (void *zocket)
960
757
  {
961
- # if defined (ZMQ_LINGER)
962
758
  int linger;
963
759
  size_t option_len = sizeof (int);
964
760
  zmq_getsockopt (zocket, ZMQ_LINGER, &linger, &option_len);
965
761
  return linger;
966
- # endif
967
762
  }
968
763
 
969
764
 
@@ -974,10 +769,8 @@ zsocket_linger (void *zocket)
974
769
  void
975
770
  zsocket_set_reconnect_ivl (void *zocket, int reconnect_ivl)
976
771
  {
977
- # if defined (ZMQ_RECONNECT_IVL)
978
772
  int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, sizeof (int));
979
- assert (rc == 0 || errno == ETERM);
980
- # endif
773
+ assert (rc == 0 || zmq_errno () == ETERM);
981
774
  }
982
775
 
983
776
 
@@ -988,12 +781,10 @@ zsocket_set_reconnect_ivl (void *zocket, int reconnect_ivl)
988
781
  int
989
782
  zsocket_reconnect_ivl (void *zocket)
990
783
  {
991
- # if defined (ZMQ_RECONNECT_IVL)
992
784
  int reconnect_ivl;
993
785
  size_t option_len = sizeof (int);
994
786
  zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, &option_len);
995
787
  return reconnect_ivl;
996
- # endif
997
788
  }
998
789
 
999
790
 
@@ -1004,10 +795,8 @@ zsocket_reconnect_ivl (void *zocket)
1004
795
  void
1005
796
  zsocket_set_reconnect_ivl_max (void *zocket, int reconnect_ivl_max)
1006
797
  {
1007
- # if defined (ZMQ_RECONNECT_IVL_MAX)
1008
798
  int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, sizeof (int));
1009
- assert (rc == 0 || errno == ETERM);
1010
- # endif
799
+ assert (rc == 0 || zmq_errno () == ETERM);
1011
800
  }
1012
801
 
1013
802
 
@@ -1018,12 +807,10 @@ zsocket_set_reconnect_ivl_max (void *zocket, int reconnect_ivl_max)
1018
807
  int
1019
808
  zsocket_reconnect_ivl_max (void *zocket)
1020
809
  {
1021
- # if defined (ZMQ_RECONNECT_IVL_MAX)
1022
810
  int reconnect_ivl_max;
1023
811
  size_t option_len = sizeof (int);
1024
812
  zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, &option_len);
1025
813
  return reconnect_ivl_max;
1026
- # endif
1027
814
  }
1028
815
 
1029
816
 
@@ -1034,10 +821,8 @@ zsocket_reconnect_ivl_max (void *zocket)
1034
821
  void
1035
822
  zsocket_set_backlog (void *zocket, int backlog)
1036
823
  {
1037
- # if defined (ZMQ_BACKLOG)
1038
824
  int rc = zmq_setsockopt (zocket, ZMQ_BACKLOG, &backlog, sizeof (int));
1039
- assert (rc == 0 || errno == ETERM);
1040
- # endif
825
+ assert (rc == 0 || zmq_errno () == ETERM);
1041
826
  }
1042
827
 
1043
828
 
@@ -1048,12 +833,10 @@ zsocket_set_backlog (void *zocket, int backlog)
1048
833
  int
1049
834
  zsocket_backlog (void *zocket)
1050
835
  {
1051
- # if defined (ZMQ_BACKLOG)
1052
836
  int backlog;
1053
837
  size_t option_len = sizeof (int);
1054
838
  zmq_getsockopt (zocket, ZMQ_BACKLOG, &backlog, &option_len);
1055
839
  return backlog;
1056
- # endif
1057
840
  }
1058
841
 
1059
842
 
@@ -1064,11 +847,9 @@ zsocket_backlog (void *zocket)
1064
847
  void
1065
848
  zsocket_set_maxmsgsize (void *zocket, int maxmsgsize)
1066
849
  {
1067
- # if defined (ZMQ_MAXMSGSIZE)
1068
850
  int64_t value = maxmsgsize;
1069
851
  int rc = zmq_setsockopt (zocket, ZMQ_MAXMSGSIZE, &value, sizeof (int64_t));
1070
- assert (rc == 0 || errno == ETERM);
1071
- # endif
852
+ assert (rc == 0 || zmq_errno () == ETERM);
1072
853
  }
1073
854
 
1074
855
 
@@ -1079,12 +860,10 @@ zsocket_set_maxmsgsize (void *zocket, int maxmsgsize)
1079
860
  int
1080
861
  zsocket_maxmsgsize (void *zocket)
1081
862
  {
1082
- # if defined (ZMQ_MAXMSGSIZE)
1083
863
  int64_t maxmsgsize;
1084
864
  size_t option_len = sizeof (int64_t);
1085
865
  zmq_getsockopt (zocket, ZMQ_MAXMSGSIZE, &maxmsgsize, &option_len);
1086
866
  return (int) maxmsgsize;
1087
- # endif
1088
867
  }
1089
868
 
1090
869
 
@@ -1095,10 +874,8 @@ zsocket_maxmsgsize (void *zocket)
1095
874
  void
1096
875
  zsocket_set_multicast_hops (void *zocket, int multicast_hops)
1097
876
  {
1098
- # if defined (ZMQ_MULTICAST_HOPS)
1099
877
  int rc = zmq_setsockopt (zocket, ZMQ_MULTICAST_HOPS, &multicast_hops, sizeof (int));
1100
- assert (rc == 0 || errno == ETERM);
1101
- # endif
878
+ assert (rc == 0 || zmq_errno () == ETERM);
1102
879
  }
1103
880
 
1104
881
 
@@ -1109,12 +886,10 @@ zsocket_set_multicast_hops (void *zocket, int multicast_hops)
1109
886
  int
1110
887
  zsocket_multicast_hops (void *zocket)
1111
888
  {
1112
- # if defined (ZMQ_MULTICAST_HOPS)
1113
889
  int multicast_hops;
1114
890
  size_t option_len = sizeof (int);
1115
891
  zmq_getsockopt (zocket, ZMQ_MULTICAST_HOPS, &multicast_hops, &option_len);
1116
892
  return multicast_hops;
1117
- # endif
1118
893
  }
1119
894
 
1120
895
 
@@ -1125,10 +900,8 @@ zsocket_multicast_hops (void *zocket)
1125
900
  void
1126
901
  zsocket_set_rcvtimeo (void *zocket, int rcvtimeo)
1127
902
  {
1128
- # if defined (ZMQ_RCVTIMEO)
1129
903
  int rc = zmq_setsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, sizeof (int));
1130
- assert (rc == 0 || errno == ETERM);
1131
- # endif
904
+ assert (rc == 0 || zmq_errno () == ETERM);
1132
905
  }
1133
906
 
1134
907
 
@@ -1139,12 +912,10 @@ zsocket_set_rcvtimeo (void *zocket, int rcvtimeo)
1139
912
  int
1140
913
  zsocket_rcvtimeo (void *zocket)
1141
914
  {
1142
- # if defined (ZMQ_RCVTIMEO)
1143
915
  int rcvtimeo;
1144
916
  size_t option_len = sizeof (int);
1145
917
  zmq_getsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, &option_len);
1146
918
  return rcvtimeo;
1147
- # endif
1148
919
  }
1149
920
 
1150
921
 
@@ -1155,10 +926,8 @@ zsocket_rcvtimeo (void *zocket)
1155
926
  void
1156
927
  zsocket_set_sndtimeo (void *zocket, int sndtimeo)
1157
928
  {
1158
- # if defined (ZMQ_SNDTIMEO)
1159
929
  int rc = zmq_setsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, sizeof (int));
1160
- assert (rc == 0 || errno == ETERM);
1161
- # endif
930
+ assert (rc == 0 || zmq_errno () == ETERM);
1162
931
  }
1163
932
 
1164
933
 
@@ -1169,109 +938,1706 @@ zsocket_set_sndtimeo (void *zocket, int sndtimeo)
1169
938
  int
1170
939
  zsocket_sndtimeo (void *zocket)
1171
940
  {
1172
- # if defined (ZMQ_SNDTIMEO)
1173
941
  int sndtimeo;
1174
942
  size_t option_len = sizeof (int);
1175
943
  zmq_getsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, &option_len);
1176
944
  return sndtimeo;
1177
- # endif
1178
945
  }
1179
946
 
1180
947
 
1181
948
  // --------------------------------------------------------------------------
1182
- // Set socket ZMQ_IPV4ONLY value
949
+ // Set socket ZMQ_XPUB_VERBOSE value
1183
950
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1184
951
 
1185
952
  void
1186
- zsocket_set_ipv4only (void *zocket, int ipv4only)
953
+ zsocket_set_xpub_verbose (void *zocket, int xpub_verbose)
1187
954
  {
1188
- # if defined (ZMQ_IPV4ONLY)
1189
- int rc = zmq_setsockopt (zocket, ZMQ_IPV4ONLY, &ipv4only, sizeof (int));
1190
- assert (rc == 0 || errno == ETERM);
1191
- # endif
955
+ if (zsocket_type (zocket) != ZMQ_XPUB) {
956
+ printf ("ZMQ_XPUB_VERBOSE is not valid on %s sockets\n", zsocket_type_str (zocket));
957
+ assert (false);
958
+ }
959
+ int rc = zmq_setsockopt (zocket, ZMQ_XPUB_VERBOSE, &xpub_verbose, sizeof (int));
960
+ assert (rc == 0 || zmq_errno () == ETERM);
1192
961
  }
1193
962
 
1194
963
 
1195
964
  // --------------------------------------------------------------------------
1196
- // Return socket ZMQ_IPV4ONLY value
965
+ // Set socket ZMQ_TCP_KEEPALIVE value
966
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
967
+
968
+ void
969
+ zsocket_set_tcp_keepalive (void *zocket, int tcp_keepalive)
970
+ {
971
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE, &tcp_keepalive, sizeof (int));
972
+ assert (rc == 0 || zmq_errno () == ETERM);
973
+ }
974
+
975
+
976
+ // --------------------------------------------------------------------------
977
+ // Return socket ZMQ_TCP_KEEPALIVE value
1197
978
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1198
979
 
1199
980
  int
1200
- zsocket_ipv4only (void *zocket)
981
+ zsocket_tcp_keepalive (void *zocket)
1201
982
  {
1202
- # if defined (ZMQ_IPV4ONLY)
1203
- int ipv4only;
983
+ int tcp_keepalive;
1204
984
  size_t option_len = sizeof (int);
1205
- zmq_getsockopt (zocket, ZMQ_IPV4ONLY, &ipv4only, &option_len);
1206
- return ipv4only;
1207
- # endif
985
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE, &tcp_keepalive, &option_len);
986
+ return tcp_keepalive;
1208
987
  }
1209
988
 
1210
989
 
1211
990
  // --------------------------------------------------------------------------
1212
- // Set socket ZMQ_DELAY_ATTACH_ON_CONNECT value
991
+ // Set socket ZMQ_TCP_KEEPALIVE_IDLE value
1213
992
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1214
993
 
1215
994
  void
1216
- zsocket_set_delay_attach_on_connect (void *zocket, int delay_attach_on_connect)
995
+ zsocket_set_tcp_keepalive_idle (void *zocket, int tcp_keepalive_idle)
1217
996
  {
1218
- # if defined (ZMQ_DELAY_ATTACH_ON_CONNECT)
1219
- int rc = zmq_setsockopt (zocket, ZMQ_DELAY_ATTACH_ON_CONNECT, &delay_attach_on_connect, sizeof (int));
1220
- assert (rc == 0 || errno == ETERM);
1221
- # endif
997
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE_IDLE, &tcp_keepalive_idle, sizeof (int));
998
+ assert (rc == 0 || zmq_errno () == ETERM);
1222
999
  }
1223
1000
 
1224
1001
 
1225
1002
  // --------------------------------------------------------------------------
1226
- // Set socket ZMQ_ROUTER_MANDATORY value
1003
+ // Return socket ZMQ_TCP_KEEPALIVE_IDLE value
1227
1004
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1228
1005
 
1229
- void
1230
- zsocket_set_router_mandatory (void *zocket, int router_mandatory)
1006
+ int
1007
+ zsocket_tcp_keepalive_idle (void *zocket)
1231
1008
  {
1232
- # if defined (ZMQ_ROUTER_MANDATORY)
1233
- if (zsockopt_type (zocket) != ZMQ_ROUTER) {
1234
- printf ("ZMQ_ROUTER_MANDATORY is not valid on %s sockets\n", zsocket_type_str (zocket));
1235
- assert (false);
1236
- }
1237
- int rc = zmq_setsockopt (zocket, ZMQ_ROUTER_MANDATORY, &router_mandatory, sizeof (int));
1238
- assert (rc == 0 || errno == ETERM);
1239
- # endif
1009
+ int tcp_keepalive_idle;
1010
+ size_t option_len = sizeof (int);
1011
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE_IDLE, &tcp_keepalive_idle, &option_len);
1012
+ return tcp_keepalive_idle;
1240
1013
  }
1241
1014
 
1242
1015
 
1243
1016
  // --------------------------------------------------------------------------
1244
- // Set socket ZMQ_ROUTER_RAW value
1017
+ // Set socket ZMQ_TCP_KEEPALIVE_CNT value
1245
1018
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1246
1019
 
1247
1020
  void
1248
- zsocket_set_router_raw (void *zocket, int router_raw)
1021
+ zsocket_set_tcp_keepalive_cnt (void *zocket, int tcp_keepalive_cnt)
1249
1022
  {
1250
- # if defined (ZMQ_ROUTER_RAW)
1251
- if (zsockopt_type (zocket) != ZMQ_ROUTER) {
1252
- printf ("ZMQ_ROUTER_RAW is not valid on %s sockets\n", zsocket_type_str (zocket));
1253
- assert (false);
1023
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE_CNT, &tcp_keepalive_cnt, sizeof (int));
1024
+ assert (rc == 0 || zmq_errno () == ETERM);
1025
+ }
1026
+
1027
+
1028
+ // --------------------------------------------------------------------------
1029
+ // Return socket ZMQ_TCP_KEEPALIVE_CNT value
1030
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1031
+
1032
+ int
1033
+ zsocket_tcp_keepalive_cnt (void *zocket)
1034
+ {
1035
+ int tcp_keepalive_cnt;
1036
+ size_t option_len = sizeof (int);
1037
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE_CNT, &tcp_keepalive_cnt, &option_len);
1038
+ return tcp_keepalive_cnt;
1039
+ }
1040
+
1041
+
1042
+ // --------------------------------------------------------------------------
1043
+ // Set socket ZMQ_TCP_KEEPALIVE_INTVL value
1044
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1045
+
1046
+ void
1047
+ zsocket_set_tcp_keepalive_intvl (void *zocket, int tcp_keepalive_intvl)
1048
+ {
1049
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE_INTVL, &tcp_keepalive_intvl, sizeof (int));
1050
+ assert (rc == 0 || zmq_errno () == ETERM);
1051
+ }
1052
+
1053
+
1054
+ // --------------------------------------------------------------------------
1055
+ // Return socket ZMQ_TCP_KEEPALIVE_INTVL value
1056
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1057
+
1058
+ int
1059
+ zsocket_tcp_keepalive_intvl (void *zocket)
1060
+ {
1061
+ int tcp_keepalive_intvl;
1062
+ size_t option_len = sizeof (int);
1063
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE_INTVL, &tcp_keepalive_intvl, &option_len);
1064
+ return tcp_keepalive_intvl;
1065
+ }
1066
+
1067
+
1068
+ // --------------------------------------------------------------------------
1069
+ // Set socket ZMQ_TCP_ACCEPT_FILTER value
1070
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1071
+
1072
+ void
1073
+ zsocket_set_tcp_accept_filter (void *zocket, const char * tcp_accept_filter)
1074
+ {
1075
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_ACCEPT_FILTER, tcp_accept_filter, strlen (tcp_accept_filter));
1076
+ assert (rc == 0 || zmq_errno () == ETERM);
1077
+ }
1078
+
1079
+
1080
+ // --------------------------------------------------------------------------
1081
+ // Return socket ZMQ_TCP_ACCEPT_FILTER value
1082
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1083
+
1084
+ char *
1085
+ zsocket_tcp_accept_filter (void *zocket)
1086
+ {
1087
+ size_t option_len = 255;
1088
+ char *tcp_accept_filter = (char *) zmalloc (option_len);
1089
+ zmq_getsockopt (zocket, ZMQ_TCP_ACCEPT_FILTER, tcp_accept_filter, &option_len);
1090
+ return (char *) tcp_accept_filter;
1091
+ }
1092
+
1093
+
1094
+ // --------------------------------------------------------------------------
1095
+ // Return socket ZMQ_RCVMORE value
1096
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1097
+
1098
+ int
1099
+ zsocket_rcvmore (void *zocket)
1100
+ {
1101
+ int rcvmore;
1102
+ size_t option_len = sizeof (int);
1103
+ zmq_getsockopt (zocket, ZMQ_RCVMORE, &rcvmore, &option_len);
1104
+ return rcvmore;
1105
+ }
1106
+
1107
+
1108
+ // --------------------------------------------------------------------------
1109
+ // Return socket ZMQ_FD value
1110
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1111
+
1112
+ int
1113
+ zsocket_fd (void *zocket)
1114
+ {
1115
+ int fd;
1116
+ size_t option_len = sizeof (int);
1117
+ zmq_getsockopt (zocket, ZMQ_FD, &fd, &option_len);
1118
+ return fd;
1119
+ }
1120
+
1121
+
1122
+ // --------------------------------------------------------------------------
1123
+ // Return socket ZMQ_EVENTS value
1124
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1125
+
1126
+ int
1127
+ zsocket_events (void *zocket)
1128
+ {
1129
+ int events;
1130
+ size_t option_len = sizeof (int);
1131
+ zmq_getsockopt (zocket, ZMQ_EVENTS, &events, &option_len);
1132
+ return events;
1133
+ }
1134
+
1135
+
1136
+ // --------------------------------------------------------------------------
1137
+ // Return socket ZMQ_LAST_ENDPOINT value
1138
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1139
+
1140
+ char *
1141
+ zsocket_last_endpoint (void *zocket)
1142
+ {
1143
+ size_t option_len = 255;
1144
+ char *last_endpoint = (char *) zmalloc (option_len);
1145
+ zmq_getsockopt (zocket, ZMQ_LAST_ENDPOINT, last_endpoint, &option_len);
1146
+ return (char *) last_endpoint;
1147
+ }
1148
+
1149
+
1150
+ // --------------------------------------------------------------------------
1151
+ // Set socket high-water mark, emulating 2.x API
1152
+
1153
+ void
1154
+ zsocket_set_hwm (void *zocket, int hwm)
1155
+ {
1156
+ zsocket_set_sndhwm (zocket, hwm);
1157
+ zsocket_set_rcvhwm (zocket, hwm);
1158
+ }
1159
+
1160
+ #endif
1161
+
1162
+ #if (ZMQ_VERSION_MAJOR == 3)
1163
+ // --------------------------------------------------------------------------
1164
+ // Set socket ZMQ_ROUTER_RAW value
1165
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1166
+
1167
+ void
1168
+ zsocket_set_router_raw (void *zocket, int router_raw)
1169
+ {
1170
+ # if defined (ZMQ_ROUTER_RAW)
1171
+ if (zsocket_type (zocket) != ZMQ_ROUTER) {
1172
+ printf ("ZMQ_ROUTER_RAW is not valid on %s sockets\n", zsocket_type_str (zocket));
1173
+ assert (false);
1174
+ }
1175
+ int rc = zmq_setsockopt (zocket, ZMQ_ROUTER_RAW, &router_raw, sizeof (int));
1176
+ assert (rc == 0 || zmq_errno () == ETERM);
1177
+ # endif
1178
+ }
1179
+
1180
+
1181
+ // --------------------------------------------------------------------------
1182
+ // Set socket ZMQ_IPV4ONLY value
1183
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1184
+
1185
+ void
1186
+ zsocket_set_ipv4only (void *zocket, int ipv4only)
1187
+ {
1188
+ # if defined (ZMQ_IPV4ONLY)
1189
+ int rc = zmq_setsockopt (zocket, ZMQ_IPV4ONLY, &ipv4only, sizeof (int));
1190
+ assert (rc == 0 || zmq_errno () == ETERM);
1191
+ # endif
1192
+ }
1193
+
1194
+
1195
+ // --------------------------------------------------------------------------
1196
+ // Return socket ZMQ_IPV4ONLY value
1197
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1198
+
1199
+ int
1200
+ zsocket_ipv4only (void *zocket)
1201
+ {
1202
+ # if defined (ZMQ_IPV4ONLY)
1203
+ int ipv4only;
1204
+ size_t option_len = sizeof (int);
1205
+ zmq_getsockopt (zocket, ZMQ_IPV4ONLY, &ipv4only, &option_len);
1206
+ return ipv4only;
1207
+ # else
1208
+ return 0;
1209
+ # endif
1210
+ }
1211
+
1212
+
1213
+ // --------------------------------------------------------------------------
1214
+ // Set socket ZMQ_DELAY_ATTACH_ON_CONNECT value
1215
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1216
+
1217
+ void
1218
+ zsocket_set_delay_attach_on_connect (void *zocket, int delay_attach_on_connect)
1219
+ {
1220
+ # if defined (ZMQ_DELAY_ATTACH_ON_CONNECT)
1221
+ int rc = zmq_setsockopt (zocket, ZMQ_DELAY_ATTACH_ON_CONNECT, &delay_attach_on_connect, sizeof (int));
1222
+ assert (rc == 0 || zmq_errno () == ETERM);
1223
+ # endif
1224
+ }
1225
+
1226
+
1227
+ // --------------------------------------------------------------------------
1228
+ // Return socket ZMQ_TYPE value
1229
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1230
+
1231
+ int
1232
+ zsocket_type (void *zocket)
1233
+ {
1234
+ # if defined (ZMQ_TYPE)
1235
+ int type;
1236
+ size_t option_len = sizeof (int);
1237
+ zmq_getsockopt (zocket, ZMQ_TYPE, &type, &option_len);
1238
+ return type;
1239
+ # else
1240
+ return 0;
1241
+ # endif
1242
+ }
1243
+
1244
+
1245
+ // --------------------------------------------------------------------------
1246
+ // Set socket ZMQ_SNDHWM value
1247
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1248
+
1249
+ void
1250
+ zsocket_set_sndhwm (void *zocket, int sndhwm)
1251
+ {
1252
+ # if defined (ZMQ_SNDHWM)
1253
+ int rc = zmq_setsockopt (zocket, ZMQ_SNDHWM, &sndhwm, sizeof (int));
1254
+ assert (rc == 0 || zmq_errno () == ETERM);
1255
+ # endif
1256
+ }
1257
+
1258
+
1259
+ // --------------------------------------------------------------------------
1260
+ // Return socket ZMQ_SNDHWM value
1261
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1262
+
1263
+ int
1264
+ zsocket_sndhwm (void *zocket)
1265
+ {
1266
+ # if defined (ZMQ_SNDHWM)
1267
+ int sndhwm;
1268
+ size_t option_len = sizeof (int);
1269
+ zmq_getsockopt (zocket, ZMQ_SNDHWM, &sndhwm, &option_len);
1270
+ return sndhwm;
1271
+ # else
1272
+ return 0;
1273
+ # endif
1274
+ }
1275
+
1276
+
1277
+ // --------------------------------------------------------------------------
1278
+ // Set socket ZMQ_RCVHWM value
1279
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1280
+
1281
+ void
1282
+ zsocket_set_rcvhwm (void *zocket, int rcvhwm)
1283
+ {
1284
+ # if defined (ZMQ_RCVHWM)
1285
+ int rc = zmq_setsockopt (zocket, ZMQ_RCVHWM, &rcvhwm, sizeof (int));
1286
+ assert (rc == 0 || zmq_errno () == ETERM);
1287
+ # endif
1288
+ }
1289
+
1290
+
1291
+ // --------------------------------------------------------------------------
1292
+ // Return socket ZMQ_RCVHWM value
1293
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1294
+
1295
+ int
1296
+ zsocket_rcvhwm (void *zocket)
1297
+ {
1298
+ # if defined (ZMQ_RCVHWM)
1299
+ int rcvhwm;
1300
+ size_t option_len = sizeof (int);
1301
+ zmq_getsockopt (zocket, ZMQ_RCVHWM, &rcvhwm, &option_len);
1302
+ return rcvhwm;
1303
+ # else
1304
+ return 0;
1305
+ # endif
1306
+ }
1307
+
1308
+
1309
+ // --------------------------------------------------------------------------
1310
+ // Set socket ZMQ_AFFINITY value
1311
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1312
+
1313
+ void
1314
+ zsocket_set_affinity (void *zocket, int affinity)
1315
+ {
1316
+ # if defined (ZMQ_AFFINITY)
1317
+ uint64_t value = affinity;
1318
+ int rc = zmq_setsockopt (zocket, ZMQ_AFFINITY, &value, sizeof (uint64_t));
1319
+ assert (rc == 0 || zmq_errno () == ETERM);
1320
+ # endif
1321
+ }
1322
+
1323
+
1324
+ // --------------------------------------------------------------------------
1325
+ // Return socket ZMQ_AFFINITY value
1326
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1327
+
1328
+ int
1329
+ zsocket_affinity (void *zocket)
1330
+ {
1331
+ # if defined (ZMQ_AFFINITY)
1332
+ uint64_t affinity;
1333
+ size_t option_len = sizeof (uint64_t);
1334
+ zmq_getsockopt (zocket, ZMQ_AFFINITY, &affinity, &option_len);
1335
+ return (int) affinity;
1336
+ # else
1337
+ return 0;
1338
+ # endif
1339
+ }
1340
+
1341
+
1342
+ // --------------------------------------------------------------------------
1343
+ // Set socket ZMQ_SUBSCRIBE value
1344
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1345
+
1346
+ void
1347
+ zsocket_set_subscribe (void *zocket, const char * subscribe)
1348
+ {
1349
+ # if defined (ZMQ_SUBSCRIBE)
1350
+ if (zsocket_type (zocket) != ZMQ_SUB) {
1351
+ printf ("ZMQ_SUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
1352
+ assert (false);
1353
+ }
1354
+ int rc = zmq_setsockopt (zocket, ZMQ_SUBSCRIBE, subscribe, strlen (subscribe));
1355
+ assert (rc == 0 || zmq_errno () == ETERM);
1356
+ # endif
1357
+ }
1358
+
1359
+
1360
+ // --------------------------------------------------------------------------
1361
+ // Set socket ZMQ_UNSUBSCRIBE value
1362
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1363
+
1364
+ void
1365
+ zsocket_set_unsubscribe (void *zocket, const char * unsubscribe)
1366
+ {
1367
+ # if defined (ZMQ_UNSUBSCRIBE)
1368
+ if (zsocket_type (zocket) != ZMQ_SUB) {
1369
+ printf ("ZMQ_UNSUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
1370
+ assert (false);
1371
+ }
1372
+ int rc = zmq_setsockopt (zocket, ZMQ_UNSUBSCRIBE, unsubscribe, strlen (unsubscribe));
1373
+ assert (rc == 0 || zmq_errno () == ETERM);
1374
+ # endif
1375
+ }
1376
+
1377
+
1378
+ // --------------------------------------------------------------------------
1379
+ // Set socket ZMQ_IDENTITY value
1380
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1381
+
1382
+ void
1383
+ zsocket_set_identity (void *zocket, const char * identity)
1384
+ {
1385
+ # if defined (ZMQ_IDENTITY)
1386
+ if (zsocket_type (zocket) != ZMQ_REQ
1387
+ && zsocket_type (zocket) != ZMQ_REP
1388
+ && zsocket_type (zocket) != ZMQ_DEALER
1389
+ && zsocket_type (zocket) != ZMQ_ROUTER
1390
+ && zsocket_type (zocket) != ZMQ_STREAM) {
1391
+ printf ("ZMQ_IDENTITY is not valid on %s sockets\n", zsocket_type_str (zocket));
1392
+ assert (false);
1393
+ }
1394
+ int rc = zmq_setsockopt (zocket, ZMQ_IDENTITY, identity, strlen (identity));
1395
+ assert (rc == 0 || zmq_errno () == ETERM);
1396
+ # endif
1397
+ }
1398
+
1399
+
1400
+ // --------------------------------------------------------------------------
1401
+ // Return socket ZMQ_IDENTITY value
1402
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1403
+
1404
+ char *
1405
+ zsocket_identity (void *zocket)
1406
+ {
1407
+ # if defined (ZMQ_IDENTITY)
1408
+ size_t option_len = 255;
1409
+ char *identity = (char *) zmalloc (option_len);
1410
+ zmq_getsockopt (zocket, ZMQ_IDENTITY, identity, &option_len);
1411
+ return (char *) identity;
1412
+ # else
1413
+ return NULL;
1414
+ # endif
1415
+ }
1416
+
1417
+
1418
+ // --------------------------------------------------------------------------
1419
+ // Set socket ZMQ_RATE value
1420
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1421
+
1422
+ void
1423
+ zsocket_set_rate (void *zocket, int rate)
1424
+ {
1425
+ # if defined (ZMQ_RATE)
1426
+ int rc = zmq_setsockopt (zocket, ZMQ_RATE, &rate, sizeof (int));
1427
+ assert (rc == 0 || zmq_errno () == ETERM);
1428
+ # endif
1429
+ }
1430
+
1431
+
1432
+ // --------------------------------------------------------------------------
1433
+ // Return socket ZMQ_RATE value
1434
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1435
+
1436
+ int
1437
+ zsocket_rate (void *zocket)
1438
+ {
1439
+ # if defined (ZMQ_RATE)
1440
+ int rate;
1441
+ size_t option_len = sizeof (int);
1442
+ zmq_getsockopt (zocket, ZMQ_RATE, &rate, &option_len);
1443
+ return rate;
1444
+ # else
1445
+ return 0;
1446
+ # endif
1447
+ }
1448
+
1449
+
1450
+ // --------------------------------------------------------------------------
1451
+ // Set socket ZMQ_RECOVERY_IVL value
1452
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1453
+
1454
+ void
1455
+ zsocket_set_recovery_ivl (void *zocket, int recovery_ivl)
1456
+ {
1457
+ # if defined (ZMQ_RECOVERY_IVL)
1458
+ int rc = zmq_setsockopt (zocket, ZMQ_RECOVERY_IVL, &recovery_ivl, sizeof (int));
1459
+ assert (rc == 0 || zmq_errno () == ETERM);
1460
+ # endif
1461
+ }
1462
+
1463
+
1464
+ // --------------------------------------------------------------------------
1465
+ // Return socket ZMQ_RECOVERY_IVL value
1466
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1467
+
1468
+ int
1469
+ zsocket_recovery_ivl (void *zocket)
1470
+ {
1471
+ # if defined (ZMQ_RECOVERY_IVL)
1472
+ int recovery_ivl;
1473
+ size_t option_len = sizeof (int);
1474
+ zmq_getsockopt (zocket, ZMQ_RECOVERY_IVL, &recovery_ivl, &option_len);
1475
+ return recovery_ivl;
1476
+ # else
1477
+ return 0;
1478
+ # endif
1479
+ }
1480
+
1481
+
1482
+ // --------------------------------------------------------------------------
1483
+ // Set socket ZMQ_SNDBUF value
1484
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1485
+
1486
+ void
1487
+ zsocket_set_sndbuf (void *zocket, int sndbuf)
1488
+ {
1489
+ # if defined (ZMQ_SNDBUF)
1490
+ int rc = zmq_setsockopt (zocket, ZMQ_SNDBUF, &sndbuf, sizeof (int));
1491
+ assert (rc == 0 || zmq_errno () == ETERM);
1492
+ # endif
1493
+ }
1494
+
1495
+
1496
+ // --------------------------------------------------------------------------
1497
+ // Return socket ZMQ_SNDBUF value
1498
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1499
+
1500
+ int
1501
+ zsocket_sndbuf (void *zocket)
1502
+ {
1503
+ # if defined (ZMQ_SNDBUF)
1504
+ int sndbuf;
1505
+ size_t option_len = sizeof (int);
1506
+ zmq_getsockopt (zocket, ZMQ_SNDBUF, &sndbuf, &option_len);
1507
+ return sndbuf;
1508
+ # else
1509
+ return 0;
1510
+ # endif
1511
+ }
1512
+
1513
+
1514
+ // --------------------------------------------------------------------------
1515
+ // Set socket ZMQ_RCVBUF value
1516
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1517
+
1518
+ void
1519
+ zsocket_set_rcvbuf (void *zocket, int rcvbuf)
1520
+ {
1521
+ # if defined (ZMQ_RCVBUF)
1522
+ int rc = zmq_setsockopt (zocket, ZMQ_RCVBUF, &rcvbuf, sizeof (int));
1523
+ assert (rc == 0 || zmq_errno () == ETERM);
1524
+ # endif
1525
+ }
1526
+
1527
+
1528
+ // --------------------------------------------------------------------------
1529
+ // Return socket ZMQ_RCVBUF value
1530
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1531
+
1532
+ int
1533
+ zsocket_rcvbuf (void *zocket)
1534
+ {
1535
+ # if defined (ZMQ_RCVBUF)
1536
+ int rcvbuf;
1537
+ size_t option_len = sizeof (int);
1538
+ zmq_getsockopt (zocket, ZMQ_RCVBUF, &rcvbuf, &option_len);
1539
+ return rcvbuf;
1540
+ # else
1541
+ return 0;
1542
+ # endif
1543
+ }
1544
+
1545
+
1546
+ // --------------------------------------------------------------------------
1547
+ // Set socket ZMQ_LINGER value
1548
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1549
+
1550
+ void
1551
+ zsocket_set_linger (void *zocket, int linger)
1552
+ {
1553
+ # if defined (ZMQ_LINGER)
1554
+ int rc = zmq_setsockopt (zocket, ZMQ_LINGER, &linger, sizeof (int));
1555
+ assert (rc == 0 || zmq_errno () == ETERM);
1556
+ # endif
1557
+ }
1558
+
1559
+
1560
+ // --------------------------------------------------------------------------
1561
+ // Return socket ZMQ_LINGER value
1562
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1563
+
1564
+ int
1565
+ zsocket_linger (void *zocket)
1566
+ {
1567
+ # if defined (ZMQ_LINGER)
1568
+ int linger;
1569
+ size_t option_len = sizeof (int);
1570
+ zmq_getsockopt (zocket, ZMQ_LINGER, &linger, &option_len);
1571
+ return linger;
1572
+ # else
1573
+ return 0;
1574
+ # endif
1575
+ }
1576
+
1577
+
1578
+ // --------------------------------------------------------------------------
1579
+ // Set socket ZMQ_RECONNECT_IVL value
1580
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1581
+
1582
+ void
1583
+ zsocket_set_reconnect_ivl (void *zocket, int reconnect_ivl)
1584
+ {
1585
+ # if defined (ZMQ_RECONNECT_IVL)
1586
+ int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, sizeof (int));
1587
+ assert (rc == 0 || zmq_errno () == ETERM);
1588
+ # endif
1589
+ }
1590
+
1591
+
1592
+ // --------------------------------------------------------------------------
1593
+ // Return socket ZMQ_RECONNECT_IVL value
1594
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1595
+
1596
+ int
1597
+ zsocket_reconnect_ivl (void *zocket)
1598
+ {
1599
+ # if defined (ZMQ_RECONNECT_IVL)
1600
+ int reconnect_ivl;
1601
+ size_t option_len = sizeof (int);
1602
+ zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, &option_len);
1603
+ return reconnect_ivl;
1604
+ # else
1605
+ return 0;
1606
+ # endif
1607
+ }
1608
+
1609
+
1610
+ // --------------------------------------------------------------------------
1611
+ // Set socket ZMQ_RECONNECT_IVL_MAX value
1612
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1613
+
1614
+ void
1615
+ zsocket_set_reconnect_ivl_max (void *zocket, int reconnect_ivl_max)
1616
+ {
1617
+ # if defined (ZMQ_RECONNECT_IVL_MAX)
1618
+ int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, sizeof (int));
1619
+ assert (rc == 0 || zmq_errno () == ETERM);
1620
+ # endif
1621
+ }
1622
+
1623
+
1624
+ // --------------------------------------------------------------------------
1625
+ // Return socket ZMQ_RECONNECT_IVL_MAX value
1626
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1627
+
1628
+ int
1629
+ zsocket_reconnect_ivl_max (void *zocket)
1630
+ {
1631
+ # if defined (ZMQ_RECONNECT_IVL_MAX)
1632
+ int reconnect_ivl_max;
1633
+ size_t option_len = sizeof (int);
1634
+ zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, &option_len);
1635
+ return reconnect_ivl_max;
1636
+ # else
1637
+ return 0;
1638
+ # endif
1639
+ }
1640
+
1641
+
1642
+ // --------------------------------------------------------------------------
1643
+ // Set socket ZMQ_BACKLOG value
1644
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1645
+
1646
+ void
1647
+ zsocket_set_backlog (void *zocket, int backlog)
1648
+ {
1649
+ # if defined (ZMQ_BACKLOG)
1650
+ int rc = zmq_setsockopt (zocket, ZMQ_BACKLOG, &backlog, sizeof (int));
1651
+ assert (rc == 0 || zmq_errno () == ETERM);
1652
+ # endif
1653
+ }
1654
+
1655
+
1656
+ // --------------------------------------------------------------------------
1657
+ // Return socket ZMQ_BACKLOG value
1658
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1659
+
1660
+ int
1661
+ zsocket_backlog (void *zocket)
1662
+ {
1663
+ # if defined (ZMQ_BACKLOG)
1664
+ int backlog;
1665
+ size_t option_len = sizeof (int);
1666
+ zmq_getsockopt (zocket, ZMQ_BACKLOG, &backlog, &option_len);
1667
+ return backlog;
1668
+ # else
1669
+ return 0;
1670
+ # endif
1671
+ }
1672
+
1673
+
1674
+ // --------------------------------------------------------------------------
1675
+ // Set socket ZMQ_MAXMSGSIZE value
1676
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1677
+
1678
+ void
1679
+ zsocket_set_maxmsgsize (void *zocket, int maxmsgsize)
1680
+ {
1681
+ # if defined (ZMQ_MAXMSGSIZE)
1682
+ int64_t value = maxmsgsize;
1683
+ int rc = zmq_setsockopt (zocket, ZMQ_MAXMSGSIZE, &value, sizeof (int64_t));
1684
+ assert (rc == 0 || zmq_errno () == ETERM);
1685
+ # endif
1686
+ }
1687
+
1688
+
1689
+ // --------------------------------------------------------------------------
1690
+ // Return socket ZMQ_MAXMSGSIZE value
1691
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1692
+
1693
+ int
1694
+ zsocket_maxmsgsize (void *zocket)
1695
+ {
1696
+ # if defined (ZMQ_MAXMSGSIZE)
1697
+ int64_t maxmsgsize;
1698
+ size_t option_len = sizeof (int64_t);
1699
+ zmq_getsockopt (zocket, ZMQ_MAXMSGSIZE, &maxmsgsize, &option_len);
1700
+ return (int) maxmsgsize;
1701
+ # else
1702
+ return 0;
1703
+ # endif
1704
+ }
1705
+
1706
+
1707
+ // --------------------------------------------------------------------------
1708
+ // Set socket ZMQ_MULTICAST_HOPS value
1709
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1710
+
1711
+ void
1712
+ zsocket_set_multicast_hops (void *zocket, int multicast_hops)
1713
+ {
1714
+ # if defined (ZMQ_MULTICAST_HOPS)
1715
+ int rc = zmq_setsockopt (zocket, ZMQ_MULTICAST_HOPS, &multicast_hops, sizeof (int));
1716
+ assert (rc == 0 || zmq_errno () == ETERM);
1717
+ # endif
1718
+ }
1719
+
1720
+
1721
+ // --------------------------------------------------------------------------
1722
+ // Return socket ZMQ_MULTICAST_HOPS value
1723
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1724
+
1725
+ int
1726
+ zsocket_multicast_hops (void *zocket)
1727
+ {
1728
+ # if defined (ZMQ_MULTICAST_HOPS)
1729
+ int multicast_hops;
1730
+ size_t option_len = sizeof (int);
1731
+ zmq_getsockopt (zocket, ZMQ_MULTICAST_HOPS, &multicast_hops, &option_len);
1732
+ return multicast_hops;
1733
+ # else
1734
+ return 0;
1735
+ # endif
1736
+ }
1737
+
1738
+
1739
+ // --------------------------------------------------------------------------
1740
+ // Set socket ZMQ_RCVTIMEO value
1741
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1742
+
1743
+ void
1744
+ zsocket_set_rcvtimeo (void *zocket, int rcvtimeo)
1745
+ {
1746
+ # if defined (ZMQ_RCVTIMEO)
1747
+ int rc = zmq_setsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, sizeof (int));
1748
+ assert (rc == 0 || zmq_errno () == ETERM);
1749
+ # endif
1750
+ }
1751
+
1752
+
1753
+ // --------------------------------------------------------------------------
1754
+ // Return socket ZMQ_RCVTIMEO value
1755
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1756
+
1757
+ int
1758
+ zsocket_rcvtimeo (void *zocket)
1759
+ {
1760
+ # if defined (ZMQ_RCVTIMEO)
1761
+ int rcvtimeo;
1762
+ size_t option_len = sizeof (int);
1763
+ zmq_getsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, &option_len);
1764
+ return rcvtimeo;
1765
+ # else
1766
+ return 0;
1767
+ # endif
1768
+ }
1769
+
1770
+
1771
+ // --------------------------------------------------------------------------
1772
+ // Set socket ZMQ_SNDTIMEO value
1773
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1774
+
1775
+ void
1776
+ zsocket_set_sndtimeo (void *zocket, int sndtimeo)
1777
+ {
1778
+ # if defined (ZMQ_SNDTIMEO)
1779
+ int rc = zmq_setsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, sizeof (int));
1780
+ assert (rc == 0 || zmq_errno () == ETERM);
1781
+ # endif
1782
+ }
1783
+
1784
+
1785
+ // --------------------------------------------------------------------------
1786
+ // Return socket ZMQ_SNDTIMEO value
1787
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1788
+
1789
+ int
1790
+ zsocket_sndtimeo (void *zocket)
1791
+ {
1792
+ # if defined (ZMQ_SNDTIMEO)
1793
+ int sndtimeo;
1794
+ size_t option_len = sizeof (int);
1795
+ zmq_getsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, &option_len);
1796
+ return sndtimeo;
1797
+ # else
1798
+ return 0;
1799
+ # endif
1800
+ }
1801
+
1802
+
1803
+ // --------------------------------------------------------------------------
1804
+ // Set socket ZMQ_XPUB_VERBOSE value
1805
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1806
+
1807
+ void
1808
+ zsocket_set_xpub_verbose (void *zocket, int xpub_verbose)
1809
+ {
1810
+ # if defined (ZMQ_XPUB_VERBOSE)
1811
+ if (zsocket_type (zocket) != ZMQ_XPUB) {
1812
+ printf ("ZMQ_XPUB_VERBOSE is not valid on %s sockets\n", zsocket_type_str (zocket));
1813
+ assert (false);
1814
+ }
1815
+ int rc = zmq_setsockopt (zocket, ZMQ_XPUB_VERBOSE, &xpub_verbose, sizeof (int));
1816
+ assert (rc == 0 || zmq_errno () == ETERM);
1817
+ # endif
1818
+ }
1819
+
1820
+
1821
+ // --------------------------------------------------------------------------
1822
+ // Set socket ZMQ_TCP_KEEPALIVE value
1823
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1824
+
1825
+ void
1826
+ zsocket_set_tcp_keepalive (void *zocket, int tcp_keepalive)
1827
+ {
1828
+ # if defined (ZMQ_TCP_KEEPALIVE)
1829
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE, &tcp_keepalive, sizeof (int));
1830
+ assert (rc == 0 || zmq_errno () == ETERM);
1831
+ # endif
1832
+ }
1833
+
1834
+
1835
+ // --------------------------------------------------------------------------
1836
+ // Return socket ZMQ_TCP_KEEPALIVE value
1837
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1838
+
1839
+ int
1840
+ zsocket_tcp_keepalive (void *zocket)
1841
+ {
1842
+ # if defined (ZMQ_TCP_KEEPALIVE)
1843
+ int tcp_keepalive;
1844
+ size_t option_len = sizeof (int);
1845
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE, &tcp_keepalive, &option_len);
1846
+ return tcp_keepalive;
1847
+ # else
1848
+ return 0;
1849
+ # endif
1850
+ }
1851
+
1852
+
1853
+ // --------------------------------------------------------------------------
1854
+ // Set socket ZMQ_TCP_KEEPALIVE_IDLE value
1855
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1856
+
1857
+ void
1858
+ zsocket_set_tcp_keepalive_idle (void *zocket, int tcp_keepalive_idle)
1859
+ {
1860
+ # if defined (ZMQ_TCP_KEEPALIVE_IDLE)
1861
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE_IDLE, &tcp_keepalive_idle, sizeof (int));
1862
+ assert (rc == 0 || zmq_errno () == ETERM);
1863
+ # endif
1864
+ }
1865
+
1866
+
1867
+ // --------------------------------------------------------------------------
1868
+ // Return socket ZMQ_TCP_KEEPALIVE_IDLE value
1869
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1870
+
1871
+ int
1872
+ zsocket_tcp_keepalive_idle (void *zocket)
1873
+ {
1874
+ # if defined (ZMQ_TCP_KEEPALIVE_IDLE)
1875
+ int tcp_keepalive_idle;
1876
+ size_t option_len = sizeof (int);
1877
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE_IDLE, &tcp_keepalive_idle, &option_len);
1878
+ return tcp_keepalive_idle;
1879
+ # else
1880
+ return 0;
1881
+ # endif
1882
+ }
1883
+
1884
+
1885
+ // --------------------------------------------------------------------------
1886
+ // Set socket ZMQ_TCP_KEEPALIVE_CNT value
1887
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1888
+
1889
+ void
1890
+ zsocket_set_tcp_keepalive_cnt (void *zocket, int tcp_keepalive_cnt)
1891
+ {
1892
+ # if defined (ZMQ_TCP_KEEPALIVE_CNT)
1893
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE_CNT, &tcp_keepalive_cnt, sizeof (int));
1894
+ assert (rc == 0 || zmq_errno () == ETERM);
1895
+ # endif
1896
+ }
1897
+
1898
+
1899
+ // --------------------------------------------------------------------------
1900
+ // Return socket ZMQ_TCP_KEEPALIVE_CNT value
1901
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1902
+
1903
+ int
1904
+ zsocket_tcp_keepalive_cnt (void *zocket)
1905
+ {
1906
+ # if defined (ZMQ_TCP_KEEPALIVE_CNT)
1907
+ int tcp_keepalive_cnt;
1908
+ size_t option_len = sizeof (int);
1909
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE_CNT, &tcp_keepalive_cnt, &option_len);
1910
+ return tcp_keepalive_cnt;
1911
+ # else
1912
+ return 0;
1913
+ # endif
1914
+ }
1915
+
1916
+
1917
+ // --------------------------------------------------------------------------
1918
+ // Set socket ZMQ_TCP_KEEPALIVE_INTVL value
1919
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1920
+
1921
+ void
1922
+ zsocket_set_tcp_keepalive_intvl (void *zocket, int tcp_keepalive_intvl)
1923
+ {
1924
+ # if defined (ZMQ_TCP_KEEPALIVE_INTVL)
1925
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_KEEPALIVE_INTVL, &tcp_keepalive_intvl, sizeof (int));
1926
+ assert (rc == 0 || zmq_errno () == ETERM);
1927
+ # endif
1928
+ }
1929
+
1930
+
1931
+ // --------------------------------------------------------------------------
1932
+ // Return socket ZMQ_TCP_KEEPALIVE_INTVL value
1933
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1934
+
1935
+ int
1936
+ zsocket_tcp_keepalive_intvl (void *zocket)
1937
+ {
1938
+ # if defined (ZMQ_TCP_KEEPALIVE_INTVL)
1939
+ int tcp_keepalive_intvl;
1940
+ size_t option_len = sizeof (int);
1941
+ zmq_getsockopt (zocket, ZMQ_TCP_KEEPALIVE_INTVL, &tcp_keepalive_intvl, &option_len);
1942
+ return tcp_keepalive_intvl;
1943
+ # else
1944
+ return 0;
1945
+ # endif
1946
+ }
1947
+
1948
+
1949
+ // --------------------------------------------------------------------------
1950
+ // Set socket ZMQ_TCP_ACCEPT_FILTER value
1951
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1952
+
1953
+ void
1954
+ zsocket_set_tcp_accept_filter (void *zocket, const char * tcp_accept_filter)
1955
+ {
1956
+ # if defined (ZMQ_TCP_ACCEPT_FILTER)
1957
+ int rc = zmq_setsockopt (zocket, ZMQ_TCP_ACCEPT_FILTER, tcp_accept_filter, strlen (tcp_accept_filter));
1958
+ assert (rc == 0 || zmq_errno () == ETERM);
1959
+ # endif
1960
+ }
1961
+
1962
+
1963
+ // --------------------------------------------------------------------------
1964
+ // Return socket ZMQ_TCP_ACCEPT_FILTER value
1965
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1966
+
1967
+ char *
1968
+ zsocket_tcp_accept_filter (void *zocket)
1969
+ {
1970
+ # if defined (ZMQ_TCP_ACCEPT_FILTER)
1971
+ size_t option_len = 255;
1972
+ char *tcp_accept_filter = (char *) zmalloc (option_len);
1973
+ zmq_getsockopt (zocket, ZMQ_TCP_ACCEPT_FILTER, tcp_accept_filter, &option_len);
1974
+ return (char *) tcp_accept_filter;
1975
+ # else
1976
+ return NULL;
1977
+ # endif
1978
+ }
1979
+
1980
+
1981
+ // --------------------------------------------------------------------------
1982
+ // Return socket ZMQ_RCVMORE value
1983
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1984
+
1985
+ int
1986
+ zsocket_rcvmore (void *zocket)
1987
+ {
1988
+ # if defined (ZMQ_RCVMORE)
1989
+ int rcvmore;
1990
+ size_t option_len = sizeof (int);
1991
+ zmq_getsockopt (zocket, ZMQ_RCVMORE, &rcvmore, &option_len);
1992
+ return rcvmore;
1993
+ # else
1994
+ return 0;
1995
+ # endif
1996
+ }
1997
+
1998
+
1999
+ // --------------------------------------------------------------------------
2000
+ // Return socket ZMQ_FD value
2001
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2002
+
2003
+ int
2004
+ zsocket_fd (void *zocket)
2005
+ {
2006
+ # if defined (ZMQ_FD)
2007
+ int fd;
2008
+ size_t option_len = sizeof (int);
2009
+ zmq_getsockopt (zocket, ZMQ_FD, &fd, &option_len);
2010
+ return fd;
2011
+ # else
2012
+ return 0;
2013
+ # endif
2014
+ }
2015
+
2016
+
2017
+ // --------------------------------------------------------------------------
2018
+ // Return socket ZMQ_EVENTS value
2019
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2020
+
2021
+ int
2022
+ zsocket_events (void *zocket)
2023
+ {
2024
+ # if defined (ZMQ_EVENTS)
2025
+ int events;
2026
+ size_t option_len = sizeof (int);
2027
+ zmq_getsockopt (zocket, ZMQ_EVENTS, &events, &option_len);
2028
+ return events;
2029
+ # else
2030
+ return 0;
2031
+ # endif
2032
+ }
2033
+
2034
+
2035
+ // --------------------------------------------------------------------------
2036
+ // Return socket ZMQ_LAST_ENDPOINT value
2037
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2038
+
2039
+ char *
2040
+ zsocket_last_endpoint (void *zocket)
2041
+ {
2042
+ # if defined (ZMQ_LAST_ENDPOINT)
2043
+ size_t option_len = 255;
2044
+ char *last_endpoint = (char *) zmalloc (option_len);
2045
+ zmq_getsockopt (zocket, ZMQ_LAST_ENDPOINT, last_endpoint, &option_len);
2046
+ return (char *) last_endpoint;
2047
+ # else
2048
+ return NULL;
2049
+ # endif
2050
+ }
2051
+
2052
+
2053
+ // --------------------------------------------------------------------------
2054
+ // Set socket high-water mark, emulating 2.x API
2055
+
2056
+ void
2057
+ zsocket_set_hwm (void *zocket, int hwm)
2058
+ {
2059
+ zsocket_set_sndhwm (zocket, hwm);
2060
+ zsocket_set_rcvhwm (zocket, hwm);
2061
+ }
2062
+
2063
+ #endif
2064
+
2065
+ #if (ZMQ_VERSION_MAJOR == 2)
2066
+ // --------------------------------------------------------------------------
2067
+ // Set socket ZMQ_HWM value
2068
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2069
+
2070
+ void
2071
+ zsocket_set_hwm (void *zocket, int hwm)
2072
+ {
2073
+ # if defined (ZMQ_HWM)
2074
+ uint64_t value = hwm;
2075
+ int rc = zmq_setsockopt (zocket, ZMQ_HWM, &value, sizeof (uint64_t));
2076
+ assert (rc == 0 || zmq_errno () == ETERM);
2077
+ # endif
2078
+ }
2079
+
2080
+
2081
+ // --------------------------------------------------------------------------
2082
+ // Return socket ZMQ_HWM value
2083
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2084
+
2085
+ int
2086
+ zsocket_hwm (void *zocket)
2087
+ {
2088
+ # if defined (ZMQ_HWM)
2089
+ uint64_t hwm;
2090
+ size_t option_len = sizeof (uint64_t);
2091
+ zmq_getsockopt (zocket, ZMQ_HWM, &hwm, &option_len);
2092
+ return (int) hwm;
2093
+ # else
2094
+ return 0;
2095
+ # endif
2096
+ }
2097
+
2098
+
2099
+ // --------------------------------------------------------------------------
2100
+ // Set socket ZMQ_SWAP value
2101
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2102
+
2103
+ void
2104
+ zsocket_set_swap (void *zocket, int swap)
2105
+ {
2106
+ # if defined (ZMQ_SWAP)
2107
+ int64_t value = swap;
2108
+ int rc = zmq_setsockopt (zocket, ZMQ_SWAP, &value, sizeof (int64_t));
2109
+ assert (rc == 0 || zmq_errno () == ETERM);
2110
+ # endif
2111
+ }
2112
+
2113
+
2114
+ // --------------------------------------------------------------------------
2115
+ // Return socket ZMQ_SWAP value
2116
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2117
+
2118
+ int
2119
+ zsocket_swap (void *zocket)
2120
+ {
2121
+ # if defined (ZMQ_SWAP)
2122
+ int64_t swap;
2123
+ size_t option_len = sizeof (int64_t);
2124
+ zmq_getsockopt (zocket, ZMQ_SWAP, &swap, &option_len);
2125
+ return (int) swap;
2126
+ # else
2127
+ return 0;
2128
+ # endif
2129
+ }
2130
+
2131
+
2132
+ // --------------------------------------------------------------------------
2133
+ // Set socket ZMQ_AFFINITY value
2134
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2135
+
2136
+ void
2137
+ zsocket_set_affinity (void *zocket, int affinity)
2138
+ {
2139
+ # if defined (ZMQ_AFFINITY)
2140
+ uint64_t value = affinity;
2141
+ int rc = zmq_setsockopt (zocket, ZMQ_AFFINITY, &value, sizeof (uint64_t));
2142
+ assert (rc == 0 || zmq_errno () == ETERM);
2143
+ # endif
2144
+ }
2145
+
2146
+
2147
+ // --------------------------------------------------------------------------
2148
+ // Return socket ZMQ_AFFINITY value
2149
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2150
+
2151
+ int
2152
+ zsocket_affinity (void *zocket)
2153
+ {
2154
+ # if defined (ZMQ_AFFINITY)
2155
+ uint64_t affinity;
2156
+ size_t option_len = sizeof (uint64_t);
2157
+ zmq_getsockopt (zocket, ZMQ_AFFINITY, &affinity, &option_len);
2158
+ return (int) affinity;
2159
+ # else
2160
+ return 0;
2161
+ # endif
2162
+ }
2163
+
2164
+
2165
+ // --------------------------------------------------------------------------
2166
+ // Set socket ZMQ_IDENTITY value
2167
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2168
+
2169
+ void
2170
+ zsocket_set_identity (void *zocket, const char * identity)
2171
+ {
2172
+ # if defined (ZMQ_IDENTITY)
2173
+ int rc = zmq_setsockopt (zocket, ZMQ_IDENTITY, identity, strlen (identity));
2174
+ assert (rc == 0 || zmq_errno () == ETERM);
2175
+ # endif
2176
+ }
2177
+
2178
+
2179
+ // --------------------------------------------------------------------------
2180
+ // Return socket ZMQ_IDENTITY value
2181
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2182
+
2183
+ char *
2184
+ zsocket_identity (void *zocket)
2185
+ {
2186
+ # if defined (ZMQ_IDENTITY)
2187
+ size_t option_len = 255;
2188
+ char *identity = (char *) zmalloc (option_len);
2189
+ zmq_getsockopt (zocket, ZMQ_IDENTITY, identity, &option_len);
2190
+ return (char *) identity;
2191
+ # else
2192
+ return NULL;
2193
+ # endif
2194
+ }
2195
+
2196
+
2197
+ // --------------------------------------------------------------------------
2198
+ // Set socket ZMQ_RATE value
2199
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2200
+
2201
+ void
2202
+ zsocket_set_rate (void *zocket, int rate)
2203
+ {
2204
+ # if defined (ZMQ_RATE)
2205
+ int64_t value = rate;
2206
+ int rc = zmq_setsockopt (zocket, ZMQ_RATE, &value, sizeof (int64_t));
2207
+ assert (rc == 0 || zmq_errno () == ETERM);
2208
+ # endif
2209
+ }
2210
+
2211
+
2212
+ // --------------------------------------------------------------------------
2213
+ // Return socket ZMQ_RATE value
2214
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2215
+
2216
+ int
2217
+ zsocket_rate (void *zocket)
2218
+ {
2219
+ # if defined (ZMQ_RATE)
2220
+ int64_t rate;
2221
+ size_t option_len = sizeof (int64_t);
2222
+ zmq_getsockopt (zocket, ZMQ_RATE, &rate, &option_len);
2223
+ return (int) rate;
2224
+ # else
2225
+ return 0;
2226
+ # endif
2227
+ }
2228
+
2229
+
2230
+ // --------------------------------------------------------------------------
2231
+ // Set socket ZMQ_RECOVERY_IVL value
2232
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2233
+
2234
+ void
2235
+ zsocket_set_recovery_ivl (void *zocket, int recovery_ivl)
2236
+ {
2237
+ # if defined (ZMQ_RECOVERY_IVL)
2238
+ int64_t value = recovery_ivl;
2239
+ int rc = zmq_setsockopt (zocket, ZMQ_RECOVERY_IVL, &value, sizeof (int64_t));
2240
+ assert (rc == 0 || zmq_errno () == ETERM);
2241
+ # endif
2242
+ }
2243
+
2244
+
2245
+ // --------------------------------------------------------------------------
2246
+ // Return socket ZMQ_RECOVERY_IVL value
2247
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2248
+
2249
+ int
2250
+ zsocket_recovery_ivl (void *zocket)
2251
+ {
2252
+ # if defined (ZMQ_RECOVERY_IVL)
2253
+ int64_t recovery_ivl;
2254
+ size_t option_len = sizeof (int64_t);
2255
+ zmq_getsockopt (zocket, ZMQ_RECOVERY_IVL, &recovery_ivl, &option_len);
2256
+ return (int) recovery_ivl;
2257
+ # else
2258
+ return 0;
2259
+ # endif
2260
+ }
2261
+
2262
+
2263
+ // --------------------------------------------------------------------------
2264
+ // Set socket ZMQ_RECOVERY_IVL_MSEC value
2265
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2266
+
2267
+ void
2268
+ zsocket_set_recovery_ivl_msec (void *zocket, int recovery_ivl_msec)
2269
+ {
2270
+ # if defined (ZMQ_RECOVERY_IVL_MSEC)
2271
+ int64_t value = recovery_ivl_msec;
2272
+ int rc = zmq_setsockopt (zocket, ZMQ_RECOVERY_IVL_MSEC, &value, sizeof (int64_t));
2273
+ assert (rc == 0 || zmq_errno () == ETERM);
2274
+ # endif
2275
+ }
2276
+
2277
+
2278
+ // --------------------------------------------------------------------------
2279
+ // Return socket ZMQ_RECOVERY_IVL_MSEC value
2280
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2281
+
2282
+ int
2283
+ zsocket_recovery_ivl_msec (void *zocket)
2284
+ {
2285
+ # if defined (ZMQ_RECOVERY_IVL_MSEC)
2286
+ int64_t recovery_ivl_msec;
2287
+ size_t option_len = sizeof (int64_t);
2288
+ zmq_getsockopt (zocket, ZMQ_RECOVERY_IVL_MSEC, &recovery_ivl_msec, &option_len);
2289
+ return (int) recovery_ivl_msec;
2290
+ # else
2291
+ return 0;
2292
+ # endif
2293
+ }
2294
+
2295
+
2296
+ // --------------------------------------------------------------------------
2297
+ // Set socket ZMQ_MCAST_LOOP value
2298
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2299
+
2300
+ void
2301
+ zsocket_set_mcast_loop (void *zocket, int mcast_loop)
2302
+ {
2303
+ # if defined (ZMQ_MCAST_LOOP)
2304
+ int64_t value = mcast_loop;
2305
+ int rc = zmq_setsockopt (zocket, ZMQ_MCAST_LOOP, &value, sizeof (int64_t));
2306
+ assert (rc == 0 || zmq_errno () == ETERM);
2307
+ # endif
2308
+ }
2309
+
2310
+
2311
+ // --------------------------------------------------------------------------
2312
+ // Return socket ZMQ_MCAST_LOOP value
2313
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2314
+
2315
+ int
2316
+ zsocket_mcast_loop (void *zocket)
2317
+ {
2318
+ # if defined (ZMQ_MCAST_LOOP)
2319
+ int64_t mcast_loop;
2320
+ size_t option_len = sizeof (int64_t);
2321
+ zmq_getsockopt (zocket, ZMQ_MCAST_LOOP, &mcast_loop, &option_len);
2322
+ return (int) mcast_loop;
2323
+ # else
2324
+ return 0;
2325
+ # endif
2326
+ }
2327
+
2328
+
2329
+ # if (ZMQ_VERSION_MINOR == 2)
2330
+ // --------------------------------------------------------------------------
2331
+ // Set socket ZMQ_RCVTIMEO value
2332
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2333
+
2334
+ void
2335
+ zsocket_set_rcvtimeo (void *zocket, int rcvtimeo)
2336
+ {
2337
+ # if defined (ZMQ_RCVTIMEO)
2338
+ int rc = zmq_setsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, sizeof (int));
2339
+ assert (rc == 0 || zmq_errno () == ETERM);
2340
+ # endif
2341
+ }
2342
+
2343
+
2344
+ // --------------------------------------------------------------------------
2345
+ // Return socket ZMQ_RCVTIMEO value
2346
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2347
+
2348
+ int
2349
+ zsocket_rcvtimeo (void *zocket)
2350
+ {
2351
+ # if defined (ZMQ_RCVTIMEO)
2352
+ int rcvtimeo;
2353
+ size_t option_len = sizeof (int);
2354
+ zmq_getsockopt (zocket, ZMQ_RCVTIMEO, &rcvtimeo, &option_len);
2355
+ return rcvtimeo;
2356
+ # else
2357
+ return 0;
2358
+ # endif
2359
+ }
2360
+
2361
+
2362
+ # endif
2363
+ # if (ZMQ_VERSION_MINOR == 2)
2364
+ // --------------------------------------------------------------------------
2365
+ // Set socket ZMQ_SNDTIMEO value
2366
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2367
+
2368
+ void
2369
+ zsocket_set_sndtimeo (void *zocket, int sndtimeo)
2370
+ {
2371
+ # if defined (ZMQ_SNDTIMEO)
2372
+ int rc = zmq_setsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, sizeof (int));
2373
+ assert (rc == 0 || zmq_errno () == ETERM);
2374
+ # endif
2375
+ }
2376
+
2377
+
2378
+ // --------------------------------------------------------------------------
2379
+ // Return socket ZMQ_SNDTIMEO value
2380
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2381
+
2382
+ int
2383
+ zsocket_sndtimeo (void *zocket)
2384
+ {
2385
+ # if defined (ZMQ_SNDTIMEO)
2386
+ int sndtimeo;
2387
+ size_t option_len = sizeof (int);
2388
+ zmq_getsockopt (zocket, ZMQ_SNDTIMEO, &sndtimeo, &option_len);
2389
+ return sndtimeo;
2390
+ # else
2391
+ return 0;
2392
+ # endif
2393
+ }
2394
+
2395
+
2396
+ # endif
2397
+ // --------------------------------------------------------------------------
2398
+ // Set socket ZMQ_SNDBUF value
2399
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2400
+
2401
+ void
2402
+ zsocket_set_sndbuf (void *zocket, int sndbuf)
2403
+ {
2404
+ # if defined (ZMQ_SNDBUF)
2405
+ uint64_t value = sndbuf;
2406
+ int rc = zmq_setsockopt (zocket, ZMQ_SNDBUF, &value, sizeof (uint64_t));
2407
+ assert (rc == 0 || zmq_errno () == ETERM);
2408
+ # endif
2409
+ }
2410
+
2411
+
2412
+ // --------------------------------------------------------------------------
2413
+ // Return socket ZMQ_SNDBUF value
2414
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2415
+
2416
+ int
2417
+ zsocket_sndbuf (void *zocket)
2418
+ {
2419
+ # if defined (ZMQ_SNDBUF)
2420
+ uint64_t sndbuf;
2421
+ size_t option_len = sizeof (uint64_t);
2422
+ zmq_getsockopt (zocket, ZMQ_SNDBUF, &sndbuf, &option_len);
2423
+ return (int) sndbuf;
2424
+ # else
2425
+ return 0;
2426
+ # endif
2427
+ }
2428
+
2429
+
2430
+ // --------------------------------------------------------------------------
2431
+ // Set socket ZMQ_RCVBUF value
2432
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2433
+
2434
+ void
2435
+ zsocket_set_rcvbuf (void *zocket, int rcvbuf)
2436
+ {
2437
+ # if defined (ZMQ_RCVBUF)
2438
+ uint64_t value = rcvbuf;
2439
+ int rc = zmq_setsockopt (zocket, ZMQ_RCVBUF, &value, sizeof (uint64_t));
2440
+ assert (rc == 0 || zmq_errno () == ETERM);
2441
+ # endif
2442
+ }
2443
+
2444
+
2445
+ // --------------------------------------------------------------------------
2446
+ // Return socket ZMQ_RCVBUF value
2447
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2448
+
2449
+ int
2450
+ zsocket_rcvbuf (void *zocket)
2451
+ {
2452
+ # if defined (ZMQ_RCVBUF)
2453
+ uint64_t rcvbuf;
2454
+ size_t option_len = sizeof (uint64_t);
2455
+ zmq_getsockopt (zocket, ZMQ_RCVBUF, &rcvbuf, &option_len);
2456
+ return (int) rcvbuf;
2457
+ # else
2458
+ return 0;
2459
+ # endif
2460
+ }
2461
+
2462
+
2463
+ // --------------------------------------------------------------------------
2464
+ // Set socket ZMQ_LINGER value
2465
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2466
+
2467
+ void
2468
+ zsocket_set_linger (void *zocket, int linger)
2469
+ {
2470
+ # if defined (ZMQ_LINGER)
2471
+ int rc = zmq_setsockopt (zocket, ZMQ_LINGER, &linger, sizeof (int));
2472
+ assert (rc == 0 || zmq_errno () == ETERM);
2473
+ # endif
2474
+ }
2475
+
2476
+
2477
+ // --------------------------------------------------------------------------
2478
+ // Return socket ZMQ_LINGER value
2479
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2480
+
2481
+ int
2482
+ zsocket_linger (void *zocket)
2483
+ {
2484
+ # if defined (ZMQ_LINGER)
2485
+ int linger;
2486
+ size_t option_len = sizeof (int);
2487
+ zmq_getsockopt (zocket, ZMQ_LINGER, &linger, &option_len);
2488
+ return linger;
2489
+ # else
2490
+ return 0;
2491
+ # endif
2492
+ }
2493
+
2494
+
2495
+ // --------------------------------------------------------------------------
2496
+ // Set socket ZMQ_RECONNECT_IVL value
2497
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2498
+
2499
+ void
2500
+ zsocket_set_reconnect_ivl (void *zocket, int reconnect_ivl)
2501
+ {
2502
+ # if defined (ZMQ_RECONNECT_IVL)
2503
+ int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, sizeof (int));
2504
+ assert (rc == 0 || zmq_errno () == ETERM);
2505
+ # endif
2506
+ }
2507
+
2508
+
2509
+ // --------------------------------------------------------------------------
2510
+ // Return socket ZMQ_RECONNECT_IVL value
2511
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2512
+
2513
+ int
2514
+ zsocket_reconnect_ivl (void *zocket)
2515
+ {
2516
+ # if defined (ZMQ_RECONNECT_IVL)
2517
+ int reconnect_ivl;
2518
+ size_t option_len = sizeof (int);
2519
+ zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL, &reconnect_ivl, &option_len);
2520
+ return reconnect_ivl;
2521
+ # else
2522
+ return 0;
2523
+ # endif
2524
+ }
2525
+
2526
+
2527
+ // --------------------------------------------------------------------------
2528
+ // Set socket ZMQ_RECONNECT_IVL_MAX value
2529
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2530
+
2531
+ void
2532
+ zsocket_set_reconnect_ivl_max (void *zocket, int reconnect_ivl_max)
2533
+ {
2534
+ # if defined (ZMQ_RECONNECT_IVL_MAX)
2535
+ int rc = zmq_setsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, sizeof (int));
2536
+ assert (rc == 0 || zmq_errno () == ETERM);
2537
+ # endif
2538
+ }
2539
+
2540
+
2541
+ // --------------------------------------------------------------------------
2542
+ // Return socket ZMQ_RECONNECT_IVL_MAX value
2543
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2544
+
2545
+ int
2546
+ zsocket_reconnect_ivl_max (void *zocket)
2547
+ {
2548
+ # if defined (ZMQ_RECONNECT_IVL_MAX)
2549
+ int reconnect_ivl_max;
2550
+ size_t option_len = sizeof (int);
2551
+ zmq_getsockopt (zocket, ZMQ_RECONNECT_IVL_MAX, &reconnect_ivl_max, &option_len);
2552
+ return reconnect_ivl_max;
2553
+ # else
2554
+ return 0;
2555
+ # endif
2556
+ }
2557
+
2558
+
2559
+ // --------------------------------------------------------------------------
2560
+ // Set socket ZMQ_BACKLOG value
2561
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2562
+
2563
+ void
2564
+ zsocket_set_backlog (void *zocket, int backlog)
2565
+ {
2566
+ # if defined (ZMQ_BACKLOG)
2567
+ int rc = zmq_setsockopt (zocket, ZMQ_BACKLOG, &backlog, sizeof (int));
2568
+ assert (rc == 0 || zmq_errno () == ETERM);
2569
+ # endif
2570
+ }
2571
+
2572
+
2573
+ // --------------------------------------------------------------------------
2574
+ // Return socket ZMQ_BACKLOG value
2575
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2576
+
2577
+ int
2578
+ zsocket_backlog (void *zocket)
2579
+ {
2580
+ # if defined (ZMQ_BACKLOG)
2581
+ int backlog;
2582
+ size_t option_len = sizeof (int);
2583
+ zmq_getsockopt (zocket, ZMQ_BACKLOG, &backlog, &option_len);
2584
+ return backlog;
2585
+ # else
2586
+ return 0;
2587
+ # endif
2588
+ }
2589
+
2590
+
2591
+ // --------------------------------------------------------------------------
2592
+ // Set socket ZMQ_SUBSCRIBE value
2593
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2594
+
2595
+ void
2596
+ zsocket_set_subscribe (void *zocket, const char * subscribe)
2597
+ {
2598
+ # if defined (ZMQ_SUBSCRIBE)
2599
+ if (zsocket_type (zocket) != ZMQ_SUB) {
2600
+ printf ("ZMQ_SUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
2601
+ assert (false);
1254
2602
  }
1255
- int rc = zmq_setsockopt (zocket, ZMQ_ROUTER_RAW, &router_raw, sizeof (int));
1256
- assert (rc == 0 || errno == ETERM);
2603
+ int rc = zmq_setsockopt (zocket, ZMQ_SUBSCRIBE, subscribe, strlen (subscribe));
2604
+ assert (rc == 0 || zmq_errno () == ETERM);
1257
2605
  # endif
1258
2606
  }
1259
2607
 
1260
2608
 
1261
2609
  // --------------------------------------------------------------------------
1262
- // Set socket ZMQ_XPUB_VERBOSE value
2610
+ // Set socket ZMQ_UNSUBSCRIBE value
1263
2611
  // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1264
2612
 
1265
2613
  void
1266
- zsocket_set_xpub_verbose (void *zocket, int xpub_verbose)
2614
+ zsocket_set_unsubscribe (void *zocket, const char * unsubscribe)
1267
2615
  {
1268
- # if defined (ZMQ_XPUB_VERBOSE)
1269
- if (zsockopt_type (zocket) != ZMQ_XPUB) {
1270
- printf ("ZMQ_XPUB_VERBOSE is not valid on %s sockets\n", zsocket_type_str (zocket));
2616
+ # if defined (ZMQ_UNSUBSCRIBE)
2617
+ if (zsocket_type (zocket) != ZMQ_SUB) {
2618
+ printf ("ZMQ_UNSUBSCRIBE is not valid on %s sockets\n", zsocket_type_str (zocket));
1271
2619
  assert (false);
1272
2620
  }
1273
- int rc = zmq_setsockopt (zocket, ZMQ_XPUB_VERBOSE, &xpub_verbose, sizeof (int));
1274
- assert (rc == 0 || errno == ETERM);
2621
+ int rc = zmq_setsockopt (zocket, ZMQ_UNSUBSCRIBE, unsubscribe, strlen (unsubscribe));
2622
+ assert (rc == 0 || zmq_errno () == ETERM);
2623
+ # endif
2624
+ }
2625
+
2626
+
2627
+ // --------------------------------------------------------------------------
2628
+ // Return socket ZMQ_TYPE value
2629
+ // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
2630
+
2631
+ int
2632
+ zsocket_type (void *zocket)
2633
+ {
2634
+ # if defined (ZMQ_TYPE)
2635
+ int type;
2636
+ size_t option_len = sizeof (int);
2637
+ zmq_getsockopt (zocket, ZMQ_TYPE, &type, &option_len);
2638
+ return type;
2639
+ # else
2640
+ return 0;
1275
2641
  # endif
1276
2642
  }
1277
2643
 
@@ -1284,10 +2650,12 @@ int
1284
2650
  zsocket_rcvmore (void *zocket)
1285
2651
  {
1286
2652
  # if defined (ZMQ_RCVMORE)
1287
- int rcvmore;
1288
- size_t option_len = sizeof (int);
2653
+ int64_t rcvmore;
2654
+ size_t option_len = sizeof (int64_t);
1289
2655
  zmq_getsockopt (zocket, ZMQ_RCVMORE, &rcvmore, &option_len);
1290
- return rcvmore;
2656
+ return (int) rcvmore;
2657
+ # else
2658
+ return 0;
1291
2659
  # endif
1292
2660
  }
1293
2661
 
@@ -1304,6 +2672,8 @@ zsocket_fd (void *zocket)
1304
2672
  size_t option_len = sizeof (int);
1305
2673
  zmq_getsockopt (zocket, ZMQ_FD, &fd, &option_len);
1306
2674
  return fd;
2675
+ # else
2676
+ return 0;
1307
2677
  # endif
1308
2678
  }
1309
2679
 
@@ -1316,40 +2686,16 @@ int
1316
2686
  zsocket_events (void *zocket)
1317
2687
  {
1318
2688
  # if defined (ZMQ_EVENTS)
1319
- int events;
1320
- size_t option_len = sizeof (int);
2689
+ uint32_t events;
2690
+ size_t option_len = sizeof (uint32_t);
1321
2691
  zmq_getsockopt (zocket, ZMQ_EVENTS, &events, &option_len);
1322
- return events;
1323
- # endif
1324
- }
1325
-
1326
-
1327
- // --------------------------------------------------------------------------
1328
- // Return socket ZMQ_LAST_ENDPOINT value
1329
- // *** GENERATED SOURCE CODE, DO NOT EDIT, SEE INSTRUCTIONS AT START ***
1330
-
1331
- char *
1332
- zsocket_last_endpoint (void *zocket)
1333
- {
1334
- # if defined (ZMQ_LAST_ENDPOINT)
1335
- size_t option_len = 255;
1336
- char *last_endpoint = (char *) zmalloc (option_len);
1337
- zmq_getsockopt (zocket, ZMQ_LAST_ENDPOINT, last_endpoint, &option_len);
1338
- return (char *) last_endpoint;
2692
+ return (int) events;
2693
+ # else
2694
+ return 0;
1339
2695
  # endif
1340
2696
  }
1341
2697
 
1342
2698
 
1343
- // --------------------------------------------------------------------------
1344
- // Set socket high-water mark, emulating 2.x API
1345
-
1346
- void
1347
- zsocket_set_hwm (void *zocket, int hwm)
1348
- {
1349
- zsocket_set_sndhwm (zocket, hwm);
1350
- zsocket_set_rcvhwm (zocket, hwm);
1351
- }
1352
-
1353
2699
  #endif
1354
2700
 
1355
2701
  // --------------------------------------------------------------------------
@@ -1365,222 +2711,344 @@ zsockopt_test (bool verbose)
1365
2711
  zctx_t *ctx = zctx_new ();
1366
2712
  assert (ctx);
1367
2713
  void *zocket;
1368
- #if (ZMQ_VERSION_MAJOR == 2)
1369
- # if defined (ZMQ_HWM)
2714
+ #if (ZMQ_VERSION_MAJOR == 4)
1370
2715
  zocket = zsocket_new (ctx, ZMQ_SUB);
1371
2716
  assert (zocket);
1372
- zsocket_set_hwm (zocket, 1);
1373
- assert (zsocket_hwm (zocket) == 1);
1374
- zsocket_hwm (zocket);
2717
+ zsocket_set_ipv6 (zocket, 1);
2718
+ assert (zsocket_ipv6 (zocket) == 1);
2719
+ zsocket_ipv6 (zocket);
2720
+ zsocket_destroy (ctx, zocket);
2721
+ zocket = zsocket_new (ctx, ZMQ_DEALER);
2722
+ assert (zocket);
2723
+ zsocket_set_immediate (zocket, 1);
2724
+ zsocket_destroy (ctx, zocket);
2725
+ zocket = zsocket_new (ctx, ZMQ_ROUTER);
2726
+ assert (zocket);
2727
+ zsocket_set_router_raw (zocket, 1);
1375
2728
  zsocket_destroy (ctx, zocket);
1376
- # endif
1377
- # if defined (ZMQ_SWAP)
1378
2729
  zocket = zsocket_new (ctx, ZMQ_SUB);
1379
2730
  assert (zocket);
1380
- zsocket_set_swap (zocket, 1);
1381
- assert (zsocket_swap (zocket) == 1);
1382
- zsocket_swap (zocket);
2731
+ zsocket_set_ipv4only (zocket, 1);
2732
+ assert (zsocket_ipv4only (zocket) == 1);
2733
+ zsocket_ipv4only (zocket);
2734
+ zsocket_destroy (ctx, zocket);
2735
+ zocket = zsocket_new (ctx, ZMQ_PUB);
2736
+ assert (zocket);
2737
+ zsocket_set_delay_attach_on_connect (zocket, 1);
2738
+ zsocket_destroy (ctx, zocket);
2739
+ zocket = zsocket_new (ctx, ZMQ_ROUTER);
2740
+ assert (zocket);
2741
+ zsocket_set_router_mandatory (zocket, 1);
2742
+ zsocket_destroy (ctx, zocket);
2743
+ zocket = zsocket_new (ctx, ZMQ_DEALER);
2744
+ assert (zocket);
2745
+ zsocket_probe_router (zocket);
2746
+ zsocket_destroy (ctx, zocket);
2747
+ zocket = zsocket_new (ctx, ZMQ_REQ);
2748
+ assert (zocket);
2749
+ zsocket_set_req_relaxed (zocket, 1);
2750
+ zsocket_destroy (ctx, zocket);
2751
+ zocket = zsocket_new (ctx, ZMQ_REQ);
2752
+ assert (zocket);
2753
+ zsocket_set_req_correlate (zocket, 1);
2754
+ zsocket_destroy (ctx, zocket);
2755
+ zocket = zsocket_new (ctx, ZMQ_PUSH);
2756
+ assert (zocket);
2757
+ zsocket_set_conflate (zocket, 1);
2758
+ zsocket_destroy (ctx, zocket);
2759
+ zocket = zsocket_new (ctx, ZMQ_PUB);
2760
+ assert (zocket);
2761
+ zsocket_set_plain_server (zocket, 1);
2762
+ assert (zsocket_plain_server (zocket) == 1);
2763
+ zsocket_plain_server (zocket);
1383
2764
  zsocket_destroy (ctx, zocket);
1384
- # endif
1385
- # if defined (ZMQ_AFFINITY)
1386
2765
  zocket = zsocket_new (ctx, ZMQ_SUB);
1387
2766
  assert (zocket);
1388
- zsocket_set_affinity (zocket, 1);
1389
- assert (zsocket_affinity (zocket) == 1);
1390
- zsocket_affinity (zocket);
2767
+ zsocket_set_plain_username (zocket, "test");
2768
+ char *plain_username = zsocket_plain_username (zocket);
2769
+ assert (plain_username);
2770
+ free (plain_username);
1391
2771
  zsocket_destroy (ctx, zocket);
1392
- # endif
1393
- # if defined (ZMQ_IDENTITY)
1394
2772
  zocket = zsocket_new (ctx, ZMQ_SUB);
1395
2773
  assert (zocket);
1396
- zsocket_set_identity (zocket, "test");
1397
- char *identity = zsocket_identity (zocket);
1398
- assert (identity);
1399
- free (identity);
2774
+ zsocket_set_plain_password (zocket, "test");
2775
+ char *plain_password = zsocket_plain_password (zocket);
2776
+ assert (plain_password);
2777
+ free (plain_password);
2778
+ zsocket_destroy (ctx, zocket);
2779
+ # if defined (HAVE_LIBSODIUM)
2780
+ zocket = zsocket_new (ctx, ZMQ_PUB);
2781
+ assert (zocket);
2782
+ zsocket_set_curve_server (zocket, 1);
2783
+ assert (zsocket_curve_server (zocket) == 1);
2784
+ zsocket_curve_server (zocket);
1400
2785
  zsocket_destroy (ctx, zocket);
1401
2786
  # endif
1402
- # if defined (ZMQ_RATE)
1403
- zocket = zsocket_new (ctx, ZMQ_SUB);
2787
+ # if defined (HAVE_LIBSODIUM)
2788
+ zocket = zsocket_new (ctx, ZMQ_PUB);
1404
2789
  assert (zocket);
1405
- zsocket_set_rate (zocket, 1);
1406
- assert (zsocket_rate (zocket) == 1);
1407
- zsocket_rate (zocket);
2790
+ zsocket_set_curve_publickey (zocket, "Yne@$w-vo<fVvi]a<NY6T1ed:M$fCG*[IaLV{hID");
2791
+ char *curve_publickey = zsocket_curve_publickey (zocket);
2792
+ assert (curve_publickey);
2793
+ free (curve_publickey);
1408
2794
  zsocket_destroy (ctx, zocket);
1409
2795
  # endif
1410
- # if defined (ZMQ_RECOVERY_IVL)
1411
- zocket = zsocket_new (ctx, ZMQ_SUB);
2796
+ # if defined (HAVE_LIBSODIUM)
2797
+ zocket = zsocket_new (ctx, ZMQ_PUB);
1412
2798
  assert (zocket);
1413
- zsocket_set_recovery_ivl (zocket, 1);
1414
- assert (zsocket_recovery_ivl (zocket) == 1);
1415
- zsocket_recovery_ivl (zocket);
2799
+ zsocket_set_curve_secretkey (zocket, "D:)Q[IlAW!ahhC2ac:9*A}h:p?([4%wOTJ%JR%cs");
2800
+ char *curve_secretkey = zsocket_curve_secretkey (zocket);
2801
+ assert (curve_secretkey);
2802
+ free (curve_secretkey);
1416
2803
  zsocket_destroy (ctx, zocket);
1417
2804
  # endif
1418
- # if defined (ZMQ_RECOVERY_IVL_MSEC)
2805
+ # if defined (HAVE_LIBSODIUM)
1419
2806
  zocket = zsocket_new (ctx, ZMQ_SUB);
1420
2807
  assert (zocket);
1421
- zsocket_set_recovery_ivl_msec (zocket, 1);
1422
- assert (zsocket_recovery_ivl_msec (zocket) == 1);
1423
- zsocket_recovery_ivl_msec (zocket);
2808
+ zsocket_set_curve_serverkey (zocket, "rq:rM>}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7");
2809
+ char *curve_serverkey = zsocket_curve_serverkey (zocket);
2810
+ assert (curve_serverkey);
2811
+ free (curve_serverkey);
1424
2812
  zsocket_destroy (ctx, zocket);
1425
2813
  # endif
1426
- # if defined (ZMQ_MCAST_LOOP)
1427
2814
  zocket = zsocket_new (ctx, ZMQ_SUB);
1428
2815
  assert (zocket);
1429
- zsocket_set_mcast_loop (zocket, 1);
1430
- assert (zsocket_mcast_loop (zocket) == 1);
1431
- zsocket_mcast_loop (zocket);
2816
+ zsocket_set_zap_domain (zocket, "test");
2817
+ char *zap_domain = zsocket_zap_domain (zocket);
2818
+ assert (zap_domain);
2819
+ free (zap_domain);
1432
2820
  zsocket_destroy (ctx, zocket);
1433
- # endif
1434
- # if (ZMQ_VERSION_MINOR == 2)
1435
- # if defined (ZMQ_RCVTIMEO)
1436
2821
  zocket = zsocket_new (ctx, ZMQ_SUB);
1437
2822
  assert (zocket);
1438
- zsocket_set_rcvtimeo (zocket, 1);
1439
- assert (zsocket_rcvtimeo (zocket) == 1);
1440
- zsocket_rcvtimeo (zocket);
2823
+ zsocket_type (zocket);
2824
+ zsocket_destroy (ctx, zocket);
2825
+ zocket = zsocket_new (ctx, ZMQ_PUB);
2826
+ assert (zocket);
2827
+ zsocket_set_sndhwm (zocket, 1);
2828
+ assert (zsocket_sndhwm (zocket) == 1);
2829
+ zsocket_sndhwm (zocket);
1441
2830
  zsocket_destroy (ctx, zocket);
1442
- # endif
1443
- # endif
1444
- # if (ZMQ_VERSION_MINOR == 2)
1445
- # if defined (ZMQ_SNDTIMEO)
1446
2831
  zocket = zsocket_new (ctx, ZMQ_SUB);
1447
2832
  assert (zocket);
1448
- zsocket_set_sndtimeo (zocket, 1);
1449
- assert (zsocket_sndtimeo (zocket) == 1);
1450
- zsocket_sndtimeo (zocket);
2833
+ zsocket_set_rcvhwm (zocket, 1);
2834
+ assert (zsocket_rcvhwm (zocket) == 1);
2835
+ zsocket_rcvhwm (zocket);
2836
+ zsocket_destroy (ctx, zocket);
2837
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2838
+ assert (zocket);
2839
+ zsocket_set_affinity (zocket, 1);
2840
+ assert (zsocket_affinity (zocket) == 1);
2841
+ zsocket_affinity (zocket);
2842
+ zsocket_destroy (ctx, zocket);
2843
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2844
+ assert (zocket);
2845
+ zsocket_set_subscribe (zocket, "test");
2846
+ zsocket_destroy (ctx, zocket);
2847
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2848
+ assert (zocket);
2849
+ zsocket_set_unsubscribe (zocket, "test");
2850
+ zsocket_destroy (ctx, zocket);
2851
+ zocket = zsocket_new (ctx, ZMQ_DEALER);
2852
+ assert (zocket);
2853
+ zsocket_set_identity (zocket, "test");
2854
+ char *identity = zsocket_identity (zocket);
2855
+ assert (identity);
2856
+ free (identity);
2857
+ zsocket_destroy (ctx, zocket);
2858
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2859
+ assert (zocket);
2860
+ zsocket_set_rate (zocket, 1);
2861
+ assert (zsocket_rate (zocket) == 1);
2862
+ zsocket_rate (zocket);
1451
2863
  zsocket_destroy (ctx, zocket);
1452
- # endif
1453
- # endif
1454
- # if defined (ZMQ_SNDBUF)
1455
2864
  zocket = zsocket_new (ctx, ZMQ_SUB);
1456
2865
  assert (zocket);
2866
+ zsocket_set_recovery_ivl (zocket, 1);
2867
+ assert (zsocket_recovery_ivl (zocket) == 1);
2868
+ zsocket_recovery_ivl (zocket);
2869
+ zsocket_destroy (ctx, zocket);
2870
+ zocket = zsocket_new (ctx, ZMQ_PUB);
2871
+ assert (zocket);
1457
2872
  zsocket_set_sndbuf (zocket, 1);
1458
2873
  assert (zsocket_sndbuf (zocket) == 1);
1459
2874
  zsocket_sndbuf (zocket);
1460
2875
  zsocket_destroy (ctx, zocket);
1461
- # endif
1462
- # if defined (ZMQ_RCVBUF)
1463
2876
  zocket = zsocket_new (ctx, ZMQ_SUB);
1464
2877
  assert (zocket);
1465
2878
  zsocket_set_rcvbuf (zocket, 1);
1466
2879
  assert (zsocket_rcvbuf (zocket) == 1);
1467
2880
  zsocket_rcvbuf (zocket);
1468
2881
  zsocket_destroy (ctx, zocket);
1469
- # endif
1470
- # if defined (ZMQ_LINGER)
1471
2882
  zocket = zsocket_new (ctx, ZMQ_SUB);
1472
2883
  assert (zocket);
1473
2884
  zsocket_set_linger (zocket, 1);
1474
2885
  assert (zsocket_linger (zocket) == 1);
1475
2886
  zsocket_linger (zocket);
1476
2887
  zsocket_destroy (ctx, zocket);
1477
- # endif
1478
- # if defined (ZMQ_RECONNECT_IVL)
1479
2888
  zocket = zsocket_new (ctx, ZMQ_SUB);
1480
2889
  assert (zocket);
1481
2890
  zsocket_set_reconnect_ivl (zocket, 1);
1482
2891
  assert (zsocket_reconnect_ivl (zocket) == 1);
1483
2892
  zsocket_reconnect_ivl (zocket);
1484
2893
  zsocket_destroy (ctx, zocket);
1485
- # endif
1486
- # if defined (ZMQ_RECONNECT_IVL_MAX)
1487
2894
  zocket = zsocket_new (ctx, ZMQ_SUB);
1488
2895
  assert (zocket);
1489
2896
  zsocket_set_reconnect_ivl_max (zocket, 1);
1490
2897
  assert (zsocket_reconnect_ivl_max (zocket) == 1);
1491
2898
  zsocket_reconnect_ivl_max (zocket);
1492
2899
  zsocket_destroy (ctx, zocket);
1493
- # endif
1494
- # if defined (ZMQ_BACKLOG)
1495
2900
  zocket = zsocket_new (ctx, ZMQ_SUB);
1496
2901
  assert (zocket);
1497
2902
  zsocket_set_backlog (zocket, 1);
1498
2903
  assert (zsocket_backlog (zocket) == 1);
1499
2904
  zsocket_backlog (zocket);
1500
2905
  zsocket_destroy (ctx, zocket);
1501
- # endif
1502
- # if defined (ZMQ_SUBSCRIBE)
1503
2906
  zocket = zsocket_new (ctx, ZMQ_SUB);
1504
2907
  assert (zocket);
1505
- zsocket_set_subscribe (zocket, "test");
2908
+ zsocket_set_maxmsgsize (zocket, 1);
2909
+ assert (zsocket_maxmsgsize (zocket) == 1);
2910
+ zsocket_maxmsgsize (zocket);
1506
2911
  zsocket_destroy (ctx, zocket);
1507
- # endif
1508
- # if defined (ZMQ_UNSUBSCRIBE)
1509
2912
  zocket = zsocket_new (ctx, ZMQ_SUB);
1510
2913
  assert (zocket);
1511
- zsocket_set_unsubscribe (zocket, "test");
2914
+ zsocket_set_multicast_hops (zocket, 1);
2915
+ assert (zsocket_multicast_hops (zocket) == 1);
2916
+ zsocket_multicast_hops (zocket);
1512
2917
  zsocket_destroy (ctx, zocket);
1513
- # endif
1514
- # if defined (ZMQ_TYPE)
1515
2918
  zocket = zsocket_new (ctx, ZMQ_SUB);
1516
2919
  assert (zocket);
1517
- zsocket_type (zocket);
2920
+ zsocket_set_rcvtimeo (zocket, 1);
2921
+ assert (zsocket_rcvtimeo (zocket) == 1);
2922
+ zsocket_rcvtimeo (zocket);
2923
+ zsocket_destroy (ctx, zocket);
2924
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2925
+ assert (zocket);
2926
+ zsocket_set_sndtimeo (zocket, 1);
2927
+ assert (zsocket_sndtimeo (zocket) == 1);
2928
+ zsocket_sndtimeo (zocket);
2929
+ zsocket_destroy (ctx, zocket);
2930
+ zocket = zsocket_new (ctx, ZMQ_XPUB);
2931
+ assert (zocket);
2932
+ zsocket_set_xpub_verbose (zocket, 1);
2933
+ zsocket_destroy (ctx, zocket);
2934
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2935
+ assert (zocket);
2936
+ zsocket_set_tcp_keepalive (zocket, 1);
2937
+ assert (zsocket_tcp_keepalive (zocket) == 1);
2938
+ zsocket_tcp_keepalive (zocket);
2939
+ zsocket_destroy (ctx, zocket);
2940
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2941
+ assert (zocket);
2942
+ zsocket_set_tcp_keepalive_idle (zocket, 1);
2943
+ assert (zsocket_tcp_keepalive_idle (zocket) == 1);
2944
+ zsocket_tcp_keepalive_idle (zocket);
2945
+ zsocket_destroy (ctx, zocket);
2946
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2947
+ assert (zocket);
2948
+ zsocket_set_tcp_keepalive_cnt (zocket, 1);
2949
+ assert (zsocket_tcp_keepalive_cnt (zocket) == 1);
2950
+ zsocket_tcp_keepalive_cnt (zocket);
2951
+ zsocket_destroy (ctx, zocket);
2952
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2953
+ assert (zocket);
2954
+ zsocket_set_tcp_keepalive_intvl (zocket, 1);
2955
+ assert (zsocket_tcp_keepalive_intvl (zocket) == 1);
2956
+ zsocket_tcp_keepalive_intvl (zocket);
2957
+ zsocket_destroy (ctx, zocket);
2958
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2959
+ assert (zocket);
2960
+ zsocket_set_tcp_accept_filter (zocket, "127.0.0.1");
2961
+ char *tcp_accept_filter = zsocket_tcp_accept_filter (zocket);
2962
+ assert (tcp_accept_filter);
2963
+ free (tcp_accept_filter);
1518
2964
  zsocket_destroy (ctx, zocket);
1519
- # endif
1520
- # if defined (ZMQ_RCVMORE)
1521
2965
  zocket = zsocket_new (ctx, ZMQ_SUB);
1522
2966
  assert (zocket);
1523
2967
  zsocket_rcvmore (zocket);
1524
2968
  zsocket_destroy (ctx, zocket);
1525
- # endif
1526
- # if defined (ZMQ_FD)
1527
2969
  zocket = zsocket_new (ctx, ZMQ_SUB);
1528
2970
  assert (zocket);
1529
2971
  zsocket_fd (zocket);
1530
2972
  zsocket_destroy (ctx, zocket);
1531
- # endif
1532
- # if defined (ZMQ_EVENTS)
1533
2973
  zocket = zsocket_new (ctx, ZMQ_SUB);
1534
2974
  assert (zocket);
1535
2975
  zsocket_events (zocket);
1536
2976
  zsocket_destroy (ctx, zocket);
1537
- # endif
2977
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2978
+ assert (zocket);
2979
+ char *last_endpoint = zsocket_last_endpoint (zocket);
2980
+ assert (last_endpoint);
2981
+ free (last_endpoint);
2982
+ zsocket_destroy (ctx, zocket);
2983
+
2984
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2985
+ zsocket_set_hwm (zocket, 1);
1538
2986
  #endif
1539
2987
 
1540
2988
  #if (ZMQ_VERSION_MAJOR == 3)
1541
- # if defined (ZMQ_TYPE)
2989
+ # if defined (ZMQ_ROUTER_RAW)
2990
+ zocket = zsocket_new (ctx, ZMQ_ROUTER);
2991
+ assert (zocket);
2992
+ zsocket_set_router_raw (zocket, 1);
2993
+ zsocket_destroy (ctx, zocket);
2994
+ # endif
2995
+ # if defined (ZMQ_IPV4ONLY)
2996
+ zocket = zsocket_new (ctx, ZMQ_SUB);
2997
+ assert (zocket);
2998
+ zsocket_set_ipv4only (zocket, 1);
2999
+ assert (zsocket_ipv4only (zocket) == 1);
3000
+ zsocket_ipv4only (zocket);
3001
+ zsocket_destroy (ctx, zocket);
3002
+ # endif
3003
+ # if defined (ZMQ_DELAY_ATTACH_ON_CONNECT)
3004
+ zocket = zsocket_new (ctx, ZMQ_PUB);
3005
+ assert (zocket);
3006
+ zsocket_set_delay_attach_on_connect (zocket, 1);
3007
+ zsocket_destroy (ctx, zocket);
3008
+ # endif
3009
+ # if defined (ZMQ_TYPE)
1542
3010
  zocket = zsocket_new (ctx, ZMQ_SUB);
1543
3011
  assert (zocket);
1544
3012
  zsocket_type (zocket);
1545
3013
  zsocket_destroy (ctx, zocket);
1546
- # endif
1547
- # if defined (ZMQ_SNDHWM)
3014
+ # endif
3015
+ # if defined (ZMQ_SNDHWM)
1548
3016
  zocket = zsocket_new (ctx, ZMQ_PUB);
1549
3017
  assert (zocket);
1550
3018
  zsocket_set_sndhwm (zocket, 1);
1551
3019
  assert (zsocket_sndhwm (zocket) == 1);
1552
3020
  zsocket_sndhwm (zocket);
1553
3021
  zsocket_destroy (ctx, zocket);
1554
- # endif
1555
- # if defined (ZMQ_RCVHWM)
3022
+ # endif
3023
+ # if defined (ZMQ_RCVHWM)
1556
3024
  zocket = zsocket_new (ctx, ZMQ_SUB);
1557
3025
  assert (zocket);
1558
3026
  zsocket_set_rcvhwm (zocket, 1);
1559
3027
  assert (zsocket_rcvhwm (zocket) == 1);
1560
3028
  zsocket_rcvhwm (zocket);
1561
3029
  zsocket_destroy (ctx, zocket);
1562
- # endif
1563
- # if defined (ZMQ_AFFINITY)
3030
+ # endif
3031
+ # if defined (ZMQ_AFFINITY)
1564
3032
  zocket = zsocket_new (ctx, ZMQ_SUB);
1565
3033
  assert (zocket);
1566
3034
  zsocket_set_affinity (zocket, 1);
1567
3035
  assert (zsocket_affinity (zocket) == 1);
1568
3036
  zsocket_affinity (zocket);
1569
3037
  zsocket_destroy (ctx, zocket);
1570
- # endif
1571
- # if defined (ZMQ_SUBSCRIBE)
3038
+ # endif
3039
+ # if defined (ZMQ_SUBSCRIBE)
1572
3040
  zocket = zsocket_new (ctx, ZMQ_SUB);
1573
3041
  assert (zocket);
1574
3042
  zsocket_set_subscribe (zocket, "test");
1575
3043
  zsocket_destroy (ctx, zocket);
1576
- # endif
1577
- # if defined (ZMQ_UNSUBSCRIBE)
3044
+ # endif
3045
+ # if defined (ZMQ_UNSUBSCRIBE)
1578
3046
  zocket = zsocket_new (ctx, ZMQ_SUB);
1579
3047
  assert (zocket);
1580
3048
  zsocket_set_unsubscribe (zocket, "test");
1581
3049
  zsocket_destroy (ctx, zocket);
1582
- # endif
1583
- # if defined (ZMQ_IDENTITY)
3050
+ # endif
3051
+ # if defined (ZMQ_IDENTITY)
1584
3052
  zocket = zsocket_new (ctx, ZMQ_DEALER);
1585
3053
  assert (zocket);
1586
3054
  zsocket_set_identity (zocket, "test");
@@ -1588,166 +3056,353 @@ zsockopt_test (bool verbose)
1588
3056
  assert (identity);
1589
3057
  free (identity);
1590
3058
  zsocket_destroy (ctx, zocket);
1591
- # endif
1592
- # if defined (ZMQ_RATE)
3059
+ # endif
3060
+ # if defined (ZMQ_RATE)
1593
3061
  zocket = zsocket_new (ctx, ZMQ_SUB);
1594
3062
  assert (zocket);
1595
3063
  zsocket_set_rate (zocket, 1);
1596
3064
  assert (zsocket_rate (zocket) == 1);
1597
3065
  zsocket_rate (zocket);
1598
3066
  zsocket_destroy (ctx, zocket);
1599
- # endif
1600
- # if defined (ZMQ_RECOVERY_IVL)
3067
+ # endif
3068
+ # if defined (ZMQ_RECOVERY_IVL)
1601
3069
  zocket = zsocket_new (ctx, ZMQ_SUB);
1602
3070
  assert (zocket);
1603
3071
  zsocket_set_recovery_ivl (zocket, 1);
1604
3072
  assert (zsocket_recovery_ivl (zocket) == 1);
1605
3073
  zsocket_recovery_ivl (zocket);
1606
3074
  zsocket_destroy (ctx, zocket);
1607
- # endif
1608
- # if defined (ZMQ_SNDBUF)
3075
+ # endif
3076
+ # if defined (ZMQ_SNDBUF)
1609
3077
  zocket = zsocket_new (ctx, ZMQ_PUB);
1610
3078
  assert (zocket);
1611
3079
  zsocket_set_sndbuf (zocket, 1);
1612
3080
  assert (zsocket_sndbuf (zocket) == 1);
1613
3081
  zsocket_sndbuf (zocket);
1614
3082
  zsocket_destroy (ctx, zocket);
1615
- # endif
1616
- # if defined (ZMQ_RCVBUF)
3083
+ # endif
3084
+ # if defined (ZMQ_RCVBUF)
1617
3085
  zocket = zsocket_new (ctx, ZMQ_SUB);
1618
3086
  assert (zocket);
1619
3087
  zsocket_set_rcvbuf (zocket, 1);
1620
3088
  assert (zsocket_rcvbuf (zocket) == 1);
1621
3089
  zsocket_rcvbuf (zocket);
1622
3090
  zsocket_destroy (ctx, zocket);
1623
- # endif
1624
- # if defined (ZMQ_LINGER)
3091
+ # endif
3092
+ # if defined (ZMQ_LINGER)
1625
3093
  zocket = zsocket_new (ctx, ZMQ_SUB);
1626
3094
  assert (zocket);
1627
3095
  zsocket_set_linger (zocket, 1);
1628
3096
  assert (zsocket_linger (zocket) == 1);
1629
3097
  zsocket_linger (zocket);
1630
3098
  zsocket_destroy (ctx, zocket);
1631
- # endif
1632
- # if defined (ZMQ_RECONNECT_IVL)
3099
+ # endif
3100
+ # if defined (ZMQ_RECONNECT_IVL)
1633
3101
  zocket = zsocket_new (ctx, ZMQ_SUB);
1634
3102
  assert (zocket);
1635
3103
  zsocket_set_reconnect_ivl (zocket, 1);
1636
3104
  assert (zsocket_reconnect_ivl (zocket) == 1);
1637
3105
  zsocket_reconnect_ivl (zocket);
1638
3106
  zsocket_destroy (ctx, zocket);
1639
- # endif
1640
- # if defined (ZMQ_RECONNECT_IVL_MAX)
3107
+ # endif
3108
+ # if defined (ZMQ_RECONNECT_IVL_MAX)
1641
3109
  zocket = zsocket_new (ctx, ZMQ_SUB);
1642
3110
  assert (zocket);
1643
3111
  zsocket_set_reconnect_ivl_max (zocket, 1);
1644
3112
  assert (zsocket_reconnect_ivl_max (zocket) == 1);
1645
3113
  zsocket_reconnect_ivl_max (zocket);
1646
3114
  zsocket_destroy (ctx, zocket);
1647
- # endif
1648
- # if defined (ZMQ_BACKLOG)
3115
+ # endif
3116
+ # if defined (ZMQ_BACKLOG)
1649
3117
  zocket = zsocket_new (ctx, ZMQ_SUB);
1650
3118
  assert (zocket);
1651
3119
  zsocket_set_backlog (zocket, 1);
1652
3120
  assert (zsocket_backlog (zocket) == 1);
1653
3121
  zsocket_backlog (zocket);
1654
3122
  zsocket_destroy (ctx, zocket);
1655
- # endif
1656
- # if defined (ZMQ_MAXMSGSIZE)
3123
+ # endif
3124
+ # if defined (ZMQ_MAXMSGSIZE)
1657
3125
  zocket = zsocket_new (ctx, ZMQ_SUB);
1658
3126
  assert (zocket);
1659
3127
  zsocket_set_maxmsgsize (zocket, 1);
1660
3128
  assert (zsocket_maxmsgsize (zocket) == 1);
1661
3129
  zsocket_maxmsgsize (zocket);
1662
3130
  zsocket_destroy (ctx, zocket);
1663
- # endif
1664
- # if defined (ZMQ_MULTICAST_HOPS)
3131
+ # endif
3132
+ # if defined (ZMQ_MULTICAST_HOPS)
1665
3133
  zocket = zsocket_new (ctx, ZMQ_SUB);
1666
3134
  assert (zocket);
1667
3135
  zsocket_set_multicast_hops (zocket, 1);
1668
3136
  assert (zsocket_multicast_hops (zocket) == 1);
1669
3137
  zsocket_multicast_hops (zocket);
1670
3138
  zsocket_destroy (ctx, zocket);
1671
- # endif
1672
- # if defined (ZMQ_RCVTIMEO)
3139
+ # endif
3140
+ # if defined (ZMQ_RCVTIMEO)
1673
3141
  zocket = zsocket_new (ctx, ZMQ_SUB);
1674
3142
  assert (zocket);
1675
3143
  zsocket_set_rcvtimeo (zocket, 1);
1676
3144
  assert (zsocket_rcvtimeo (zocket) == 1);
1677
3145
  zsocket_rcvtimeo (zocket);
1678
3146
  zsocket_destroy (ctx, zocket);
1679
- # endif
1680
- # if defined (ZMQ_SNDTIMEO)
3147
+ # endif
3148
+ # if defined (ZMQ_SNDTIMEO)
1681
3149
  zocket = zsocket_new (ctx, ZMQ_SUB);
1682
3150
  assert (zocket);
1683
3151
  zsocket_set_sndtimeo (zocket, 1);
1684
3152
  assert (zsocket_sndtimeo (zocket) == 1);
1685
3153
  zsocket_sndtimeo (zocket);
1686
3154
  zsocket_destroy (ctx, zocket);
1687
- # endif
1688
- # if defined (ZMQ_IPV4ONLY)
3155
+ # endif
3156
+ # if defined (ZMQ_XPUB_VERBOSE)
3157
+ zocket = zsocket_new (ctx, ZMQ_XPUB);
3158
+ assert (zocket);
3159
+ zsocket_set_xpub_verbose (zocket, 1);
3160
+ zsocket_destroy (ctx, zocket);
3161
+ # endif
3162
+ # if defined (ZMQ_TCP_KEEPALIVE)
1689
3163
  zocket = zsocket_new (ctx, ZMQ_SUB);
1690
3164
  assert (zocket);
1691
- zsocket_set_ipv4only (zocket, 1);
1692
- assert (zsocket_ipv4only (zocket) == 1);
1693
- zsocket_ipv4only (zocket);
3165
+ zsocket_set_tcp_keepalive (zocket, 1);
3166
+ assert (zsocket_tcp_keepalive (zocket) == 1);
3167
+ zsocket_tcp_keepalive (zocket);
1694
3168
  zsocket_destroy (ctx, zocket);
1695
- # endif
1696
- # if defined (ZMQ_DELAY_ATTACH_ON_CONNECT)
1697
- zocket = zsocket_new (ctx, ZMQ_PUB);
3169
+ # endif
3170
+ # if defined (ZMQ_TCP_KEEPALIVE_IDLE)
3171
+ zocket = zsocket_new (ctx, ZMQ_SUB);
1698
3172
  assert (zocket);
1699
- zsocket_set_delay_attach_on_connect (zocket, 1);
3173
+ zsocket_set_tcp_keepalive_idle (zocket, 1);
3174
+ assert (zsocket_tcp_keepalive_idle (zocket) == 1);
3175
+ zsocket_tcp_keepalive_idle (zocket);
1700
3176
  zsocket_destroy (ctx, zocket);
1701
- # endif
1702
- # if defined (ZMQ_ROUTER_MANDATORY)
1703
- zocket = zsocket_new (ctx, ZMQ_ROUTER);
3177
+ # endif
3178
+ # if defined (ZMQ_TCP_KEEPALIVE_CNT)
3179
+ zocket = zsocket_new (ctx, ZMQ_SUB);
1704
3180
  assert (zocket);
1705
- zsocket_set_router_mandatory (zocket, 1);
3181
+ zsocket_set_tcp_keepalive_cnt (zocket, 1);
3182
+ assert (zsocket_tcp_keepalive_cnt (zocket) == 1);
3183
+ zsocket_tcp_keepalive_cnt (zocket);
1706
3184
  zsocket_destroy (ctx, zocket);
1707
- # endif
1708
- # if defined (ZMQ_ROUTER_RAW)
1709
- zocket = zsocket_new (ctx, ZMQ_ROUTER);
3185
+ # endif
3186
+ # if defined (ZMQ_TCP_KEEPALIVE_INTVL)
3187
+ zocket = zsocket_new (ctx, ZMQ_SUB);
1710
3188
  assert (zocket);
1711
- zsocket_set_router_raw (zocket, 1);
3189
+ zsocket_set_tcp_keepalive_intvl (zocket, 1);
3190
+ assert (zsocket_tcp_keepalive_intvl (zocket) == 1);
3191
+ zsocket_tcp_keepalive_intvl (zocket);
1712
3192
  zsocket_destroy (ctx, zocket);
1713
- # endif
1714
- # if defined (ZMQ_XPUB_VERBOSE)
1715
- zocket = zsocket_new (ctx, ZMQ_XPUB);
3193
+ # endif
3194
+ # if defined (ZMQ_TCP_ACCEPT_FILTER)
3195
+ zocket = zsocket_new (ctx, ZMQ_SUB);
1716
3196
  assert (zocket);
1717
- zsocket_set_xpub_verbose (zocket, 1);
3197
+ zsocket_set_tcp_accept_filter (zocket, "127.0.0.1");
3198
+ char *tcp_accept_filter = zsocket_tcp_accept_filter (zocket);
3199
+ assert (tcp_accept_filter);
3200
+ free (tcp_accept_filter);
1718
3201
  zsocket_destroy (ctx, zocket);
1719
- # endif
1720
- # if defined (ZMQ_RCVMORE)
3202
+ # endif
3203
+ # if defined (ZMQ_RCVMORE)
1721
3204
  zocket = zsocket_new (ctx, ZMQ_SUB);
1722
3205
  assert (zocket);
1723
3206
  zsocket_rcvmore (zocket);
1724
3207
  zsocket_destroy (ctx, zocket);
1725
- # endif
1726
- # if defined (ZMQ_FD)
3208
+ # endif
3209
+ # if defined (ZMQ_FD)
1727
3210
  zocket = zsocket_new (ctx, ZMQ_SUB);
1728
3211
  assert (zocket);
1729
3212
  zsocket_fd (zocket);
1730
3213
  zsocket_destroy (ctx, zocket);
1731
- # endif
1732
- # if defined (ZMQ_EVENTS)
3214
+ # endif
3215
+ # if defined (ZMQ_EVENTS)
1733
3216
  zocket = zsocket_new (ctx, ZMQ_SUB);
1734
3217
  assert (zocket);
1735
3218
  zsocket_events (zocket);
1736
3219
  zsocket_destroy (ctx, zocket);
1737
- # endif
1738
- # if defined (ZMQ_LAST_ENDPOINT)
3220
+ # endif
3221
+ # if defined (ZMQ_LAST_ENDPOINT)
1739
3222
  zocket = zsocket_new (ctx, ZMQ_SUB);
1740
3223
  assert (zocket);
1741
3224
  char *last_endpoint = zsocket_last_endpoint (zocket);
1742
3225
  assert (last_endpoint);
1743
3226
  free (last_endpoint);
1744
3227
  zsocket_destroy (ctx, zocket);
1745
- # endif
3228
+ # endif
1746
3229
 
1747
3230
  zocket = zsocket_new (ctx, ZMQ_SUB);
1748
3231
  zsocket_set_hwm (zocket, 1);
1749
3232
  #endif
1750
3233
 
3234
+ #if (ZMQ_VERSION_MAJOR == 2)
3235
+ # if defined (ZMQ_HWM)
3236
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3237
+ assert (zocket);
3238
+ zsocket_set_hwm (zocket, 1);
3239
+ assert (zsocket_hwm (zocket) == 1);
3240
+ zsocket_hwm (zocket);
3241
+ zsocket_destroy (ctx, zocket);
3242
+ # endif
3243
+ # if defined (ZMQ_SWAP)
3244
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3245
+ assert (zocket);
3246
+ zsocket_set_swap (zocket, 1);
3247
+ assert (zsocket_swap (zocket) == 1);
3248
+ zsocket_swap (zocket);
3249
+ zsocket_destroy (ctx, zocket);
3250
+ # endif
3251
+ # if defined (ZMQ_AFFINITY)
3252
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3253
+ assert (zocket);
3254
+ zsocket_set_affinity (zocket, 1);
3255
+ assert (zsocket_affinity (zocket) == 1);
3256
+ zsocket_affinity (zocket);
3257
+ zsocket_destroy (ctx, zocket);
3258
+ # endif
3259
+ # if defined (ZMQ_IDENTITY)
3260
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3261
+ assert (zocket);
3262
+ zsocket_set_identity (zocket, "test");
3263
+ char *identity = zsocket_identity (zocket);
3264
+ assert (identity);
3265
+ free (identity);
3266
+ zsocket_destroy (ctx, zocket);
3267
+ # endif
3268
+ # if defined (ZMQ_RATE)
3269
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3270
+ assert (zocket);
3271
+ zsocket_set_rate (zocket, 1);
3272
+ assert (zsocket_rate (zocket) == 1);
3273
+ zsocket_rate (zocket);
3274
+ zsocket_destroy (ctx, zocket);
3275
+ # endif
3276
+ # if defined (ZMQ_RECOVERY_IVL)
3277
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3278
+ assert (zocket);
3279
+ zsocket_set_recovery_ivl (zocket, 1);
3280
+ assert (zsocket_recovery_ivl (zocket) == 1);
3281
+ zsocket_recovery_ivl (zocket);
3282
+ zsocket_destroy (ctx, zocket);
3283
+ # endif
3284
+ # if defined (ZMQ_RECOVERY_IVL_MSEC)
3285
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3286
+ assert (zocket);
3287
+ zsocket_set_recovery_ivl_msec (zocket, 1);
3288
+ assert (zsocket_recovery_ivl_msec (zocket) == 1);
3289
+ zsocket_recovery_ivl_msec (zocket);
3290
+ zsocket_destroy (ctx, zocket);
3291
+ # endif
3292
+ # if defined (ZMQ_MCAST_LOOP)
3293
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3294
+ assert (zocket);
3295
+ zsocket_set_mcast_loop (zocket, 1);
3296
+ assert (zsocket_mcast_loop (zocket) == 1);
3297
+ zsocket_mcast_loop (zocket);
3298
+ zsocket_destroy (ctx, zocket);
3299
+ # endif
3300
+ # if (ZMQ_VERSION_MINOR == 2)
3301
+ # if defined (ZMQ_RCVTIMEO)
3302
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3303
+ assert (zocket);
3304
+ zsocket_set_rcvtimeo (zocket, 1);
3305
+ assert (zsocket_rcvtimeo (zocket) == 1);
3306
+ zsocket_rcvtimeo (zocket);
3307
+ zsocket_destroy (ctx, zocket);
3308
+ # endif
3309
+ # endif
3310
+ # if (ZMQ_VERSION_MINOR == 2)
3311
+ # if defined (ZMQ_SNDTIMEO)
3312
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3313
+ assert (zocket);
3314
+ zsocket_set_sndtimeo (zocket, 1);
3315
+ assert (zsocket_sndtimeo (zocket) == 1);
3316
+ zsocket_sndtimeo (zocket);
3317
+ zsocket_destroy (ctx, zocket);
3318
+ # endif
3319
+ # endif
3320
+ # if defined (ZMQ_SNDBUF)
3321
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3322
+ assert (zocket);
3323
+ zsocket_set_sndbuf (zocket, 1);
3324
+ assert (zsocket_sndbuf (zocket) == 1);
3325
+ zsocket_sndbuf (zocket);
3326
+ zsocket_destroy (ctx, zocket);
3327
+ # endif
3328
+ # if defined (ZMQ_RCVBUF)
3329
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3330
+ assert (zocket);
3331
+ zsocket_set_rcvbuf (zocket, 1);
3332
+ assert (zsocket_rcvbuf (zocket) == 1);
3333
+ zsocket_rcvbuf (zocket);
3334
+ zsocket_destroy (ctx, zocket);
3335
+ # endif
3336
+ # if defined (ZMQ_LINGER)
3337
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3338
+ assert (zocket);
3339
+ zsocket_set_linger (zocket, 1);
3340
+ assert (zsocket_linger (zocket) == 1);
3341
+ zsocket_linger (zocket);
3342
+ zsocket_destroy (ctx, zocket);
3343
+ # endif
3344
+ # if defined (ZMQ_RECONNECT_IVL)
3345
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3346
+ assert (zocket);
3347
+ zsocket_set_reconnect_ivl (zocket, 1);
3348
+ assert (zsocket_reconnect_ivl (zocket) == 1);
3349
+ zsocket_reconnect_ivl (zocket);
3350
+ zsocket_destroy (ctx, zocket);
3351
+ # endif
3352
+ # if defined (ZMQ_RECONNECT_IVL_MAX)
3353
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3354
+ assert (zocket);
3355
+ zsocket_set_reconnect_ivl_max (zocket, 1);
3356
+ assert (zsocket_reconnect_ivl_max (zocket) == 1);
3357
+ zsocket_reconnect_ivl_max (zocket);
3358
+ zsocket_destroy (ctx, zocket);
3359
+ # endif
3360
+ # if defined (ZMQ_BACKLOG)
3361
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3362
+ assert (zocket);
3363
+ zsocket_set_backlog (zocket, 1);
3364
+ assert (zsocket_backlog (zocket) == 1);
3365
+ zsocket_backlog (zocket);
3366
+ zsocket_destroy (ctx, zocket);
3367
+ # endif
3368
+ # if defined (ZMQ_SUBSCRIBE)
3369
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3370
+ assert (zocket);
3371
+ zsocket_set_subscribe (zocket, "test");
3372
+ zsocket_destroy (ctx, zocket);
3373
+ # endif
3374
+ # if defined (ZMQ_UNSUBSCRIBE)
3375
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3376
+ assert (zocket);
3377
+ zsocket_set_unsubscribe (zocket, "test");
3378
+ zsocket_destroy (ctx, zocket);
3379
+ # endif
3380
+ # if defined (ZMQ_TYPE)
3381
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3382
+ assert (zocket);
3383
+ zsocket_type (zocket);
3384
+ zsocket_destroy (ctx, zocket);
3385
+ # endif
3386
+ # if defined (ZMQ_RCVMORE)
3387
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3388
+ assert (zocket);
3389
+ zsocket_rcvmore (zocket);
3390
+ zsocket_destroy (ctx, zocket);
3391
+ # endif
3392
+ # if defined (ZMQ_FD)
3393
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3394
+ assert (zocket);
3395
+ zsocket_fd (zocket);
3396
+ zsocket_destroy (ctx, zocket);
3397
+ # endif
3398
+ # if defined (ZMQ_EVENTS)
3399
+ zocket = zsocket_new (ctx, ZMQ_SUB);
3400
+ assert (zocket);
3401
+ zsocket_events (zocket);
3402
+ zsocket_destroy (ctx, zocket);
3403
+ # endif
3404
+ #endif
3405
+
1751
3406
  zctx_destroy (&ctx);
1752
3407
  // @end
1753
3408