laag-libczmq 4.1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +373 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libczmq/extconf.rb +24 -0
  6. data/laag-libczmq.gemspec +21 -0
  7. data/lib/laag/libczmq.rb +30 -0
  8. data/vendor/github.com/zeromq/czmq/.editorconfig +19 -0
  9. data/vendor/github.com/zeromq/czmq/.gitattributes +5 -0
  10. data/vendor/github.com/zeromq/czmq/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  11. data/vendor/github.com/zeromq/czmq/.gitignore +137 -0
  12. data/vendor/github.com/zeromq/czmq/.travis.yml +126 -0
  13. data/vendor/github.com/zeromq/czmq/AUTHORS +69 -0
  14. data/vendor/github.com/zeromq/czmq/CMakeLists.txt +653 -0
  15. data/vendor/github.com/zeromq/czmq/CONTRIBUTING.md +19 -0
  16. data/vendor/github.com/zeromq/czmq/Dockerfile +29 -0
  17. data/vendor/github.com/zeromq/czmq/Findlibsodium.cmake +47 -0
  18. data/vendor/github.com/zeromq/czmq/Findlibzmq.cmake +49 -0
  19. data/vendor/github.com/zeromq/czmq/Findlz4.cmake +49 -0
  20. data/vendor/github.com/zeromq/czmq/Findsystemd.cmake +49 -0
  21. data/vendor/github.com/zeromq/czmq/Finduuid.cmake +49 -0
  22. data/vendor/github.com/zeromq/czmq/INSTALL.cygwin +13 -0
  23. data/vendor/github.com/zeromq/czmq/ISSUES.cygwin +6 -0
  24. data/vendor/github.com/zeromq/czmq/Jenkinsfile +439 -0
  25. data/vendor/github.com/zeromq/czmq/LICENSE +373 -0
  26. data/vendor/github.com/zeromq/czmq/Makefile.am +70 -0
  27. data/vendor/github.com/zeromq/czmq/NEWS +823 -0
  28. data/vendor/github.com/zeromq/czmq/README.cygwin +23 -0
  29. data/vendor/github.com/zeromq/czmq/README.md +9345 -0
  30. data/vendor/github.com/zeromq/czmq/README.txt +512 -0
  31. data/vendor/github.com/zeromq/czmq/Vagrantfile +49 -0
  32. data/vendor/github.com/zeromq/czmq/acinclude.m4 +7 -0
  33. data/vendor/github.com/zeromq/czmq/api/zactor.api +77 -0
  34. data/vendor/github.com/zeromq/czmq/api/zargs.api +110 -0
  35. data/vendor/github.com/zeromq/czmq/api/zarmour.api +103 -0
  36. data/vendor/github.com/zeromq/czmq/api/zcert.api +128 -0
  37. data/vendor/github.com/zeromq/czmq/api/zcertstore.api +80 -0
  38. data/vendor/github.com/zeromq/czmq/api/zchunk.api +171 -0
  39. data/vendor/github.com/zeromq/czmq/api/zclock.api +43 -0
  40. data/vendor/github.com/zeromq/czmq/api/zconfig.api +205 -0
  41. data/vendor/github.com/zeromq/czmq/api/zdigest.api +45 -0
  42. data/vendor/github.com/zeromq/czmq/api/zdir.api +124 -0
  43. data/vendor/github.com/zeromq/czmq/api/zdir_patch.api +62 -0
  44. data/vendor/github.com/zeromq/czmq/api/zfile.api +157 -0
  45. data/vendor/github.com/zeromq/czmq/api/zframe.api +157 -0
  46. data/vendor/github.com/zeromq/czmq/api/zgossip_msg.api +104 -0
  47. data/vendor/github.com/zeromq/czmq/api/zhash.api +184 -0
  48. data/vendor/github.com/zeromq/czmq/api/zhashx.api +295 -0
  49. data/vendor/github.com/zeromq/czmq/api/ziflist.api +73 -0
  50. data/vendor/github.com/zeromq/czmq/api/zlist.api +158 -0
  51. data/vendor/github.com/zeromq/czmq/api/zlistx.api +220 -0
  52. data/vendor/github.com/zeromq/czmq/api/zloop.api +176 -0
  53. data/vendor/github.com/zeromq/czmq/api/zmsg.api +250 -0
  54. data/vendor/github.com/zeromq/czmq/api/zpoller.api +71 -0
  55. data/vendor/github.com/zeromq/czmq/api/zproc.api +247 -0
  56. data/vendor/github.com/zeromq/czmq/api/zsock.api +412 -0
  57. data/vendor/github.com/zeromq/czmq/api/zsock_option.api +847 -0
  58. data/vendor/github.com/zeromq/czmq/api/zstr.api +119 -0
  59. data/vendor/github.com/zeromq/czmq/api/zsys.api +490 -0
  60. data/vendor/github.com/zeromq/czmq/api/ztimerset.api +69 -0
  61. data/vendor/github.com/zeromq/czmq/api/ztrie.api +80 -0
  62. data/vendor/github.com/zeromq/czmq/api/zuuid.api +82 -0
  63. data/vendor/github.com/zeromq/czmq/appveyor.yml +73 -0
  64. data/vendor/github.com/zeromq/czmq/autogen.sh +52 -0
  65. data/vendor/github.com/zeromq/czmq/bindings/jni/.gitignore +8 -0
  66. data/vendor/github.com/zeromq/czmq/bindings/jni/CMakeLists.txt +79 -0
  67. data/vendor/github.com/zeromq/czmq/bindings/jni/Findczmq.cmake +47 -0
  68. data/vendor/github.com/zeromq/czmq/bindings/jni/README.md +130 -0
  69. data/vendor/github.com/zeromq/czmq/bindings/jni/android/CMakeLists.txt +79 -0
  70. data/vendor/github.com/zeromq/czmq/bindings/jni/android/android_toolchain.cmake +52 -0
  71. data/vendor/github.com/zeromq/czmq/bindings/jni/android/build.sh +68 -0
  72. data/vendor/github.com/zeromq/czmq/bindings/jni/build.gradle +151 -0
  73. data/vendor/github.com/zeromq/czmq/bindings/jni/ci_build.sh +96 -0
  74. data/vendor/github.com/zeromq/czmq/bindings/jni/gradle/wrapper/gradle-wrapper.jar +0 -0
  75. data/vendor/github.com/zeromq/czmq/bindings/jni/gradle/wrapper/gradle-wrapper.properties +6 -0
  76. data/vendor/github.com/zeromq/czmq/bindings/jni/gradlew +164 -0
  77. data/vendor/github.com/zeromq/czmq/bindings/jni/gradlew.bat +90 -0
  78. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/.gitignore +8 -0
  79. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/configure.bat +93 -0
  80. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/platform.h +1 -0
  81. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Common.props +21 -0
  82. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DLL.props +16 -0
  83. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Debug.props +29 -0
  84. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugDEXE.props +21 -0
  85. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugDLL.props +20 -0
  86. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugLEXE.props +20 -0
  87. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugLIB.props +21 -0
  88. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugLTCG.props +20 -0
  89. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugSEXE.props +21 -0
  90. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/EXE.props +17 -0
  91. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/LIB.props +16 -0
  92. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/LTCG.props +13 -0
  93. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Link.props +21 -0
  94. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Messages.props +15 -0
  95. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Output.props +30 -0
  96. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Release.props +41 -0
  97. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseDEXE.props +20 -0
  98. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseDLL.props +19 -0
  99. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseLEXE.props +20 -0
  100. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseLIB.props +19 -0
  101. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseLTCG.props +19 -0
  102. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseSEXE.props +20 -0
  103. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Win32.props +20 -0
  104. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/x64.props +23 -0
  105. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/resource.h +14 -0
  106. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/resource.rc +94 -0
  107. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/build.bat +48 -0
  108. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/call_javah.bat +84 -0
  109. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/czmq.sln +25 -0
  110. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/libczmqjni/libczmqjni.props +69 -0
  111. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/libczmqjni/libczmqjni.vcxproj +165 -0
  112. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  113. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/build.bat +48 -0
  114. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/call_javah.bat +84 -0
  115. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/czmq.sln +25 -0
  116. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/libczmqjni/libczmqjni.props +69 -0
  117. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/libczmqjni/libczmqjni.vcxproj +165 -0
  118. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  119. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/build.bat +48 -0
  120. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/call_javah.bat +84 -0
  121. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/czmq.sln +25 -0
  122. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/libczmqjni/libczmqjni.props +69 -0
  123. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/libczmqjni/libczmqjni.vcxproj +165 -0
  124. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  125. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/build.bat +48 -0
  126. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/call_javah.bat +84 -0
  127. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/czmq.sln +25 -0
  128. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/libczmqjni/libczmqjni.props +69 -0
  129. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/libczmqjni/libczmqjni.vcxproj +165 -0
  130. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  131. data/vendor/github.com/zeromq/czmq/bindings/jni/settings.gradle +1 -0
  132. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zarmour.c +132 -0
  133. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zcert.c +188 -0
  134. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zcertstore.c +69 -0
  135. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zchunk.c +191 -0
  136. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zclock.c +54 -0
  137. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zconfig.c +252 -0
  138. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zdigest.c +66 -0
  139. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zdir.c +116 -0
  140. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_ZdirPatch.c +88 -0
  141. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zfile.c +186 -0
  142. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zframe.c +199 -0
  143. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zhash.c +174 -0
  144. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zhashx.c +175 -0
  145. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Ziflist.c +112 -0
  146. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zlist.c +135 -0
  147. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zlistx.c +189 -0
  148. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zloop.c +95 -0
  149. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zmsg.c +261 -0
  150. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zpoller.c +74 -0
  151. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zproc.c +278 -0
  152. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zsock.c +1310 -0
  153. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zstr.c +108 -0
  154. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zsys.c +445 -0
  155. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Ztimerset.c +68 -0
  156. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Ztrie.c +86 -0
  157. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zuuid.c +125 -0
  158. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zarmour.java +148 -0
  159. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zcert.java +178 -0
  160. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zcertstore.java +94 -0
  161. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zchunk.java +204 -0
  162. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zclock.java +67 -0
  163. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zconfig.java +253 -0
  164. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zdigest.java +78 -0
  165. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zdir.java +159 -0
  166. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/ZdirPatch.java +96 -0
  167. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zfile.java +217 -0
  168. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zframe.java +212 -0
  169. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zhash.java +223 -0
  170. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zhashx.java +248 -0
  171. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Ziflist.java +124 -0
  172. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zlist.java +171 -0
  173. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zlistx.java +247 -0
  174. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zloop.java +134 -0
  175. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zmsg.java +308 -0
  176. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zpoller.java +105 -0
  177. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zproc.java +331 -0
  178. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zsock.java +1556 -0
  179. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zstr.java +117 -0
  180. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zsys.java +534 -0
  181. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Ztimerset.java +87 -0
  182. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Ztrie.java +102 -0
  183. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zuuid.java +127 -0
  184. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZarmourTest.java +25 -0
  185. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZcertTest.java +25 -0
  186. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZcertstoreTest.java +25 -0
  187. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZchunkTest.java +25 -0
  188. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZclockTest.java +25 -0
  189. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZconfigTest.java +25 -0
  190. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZdigestTest.java +25 -0
  191. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZdirPatchTest.java +25 -0
  192. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZdirTest.java +25 -0
  193. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZfileTest.java +25 -0
  194. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZframeTest.java +25 -0
  195. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZhashTest.java +25 -0
  196. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZhashxTest.java +25 -0
  197. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZiflistTest.java +25 -0
  198. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZlistTest.java +25 -0
  199. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZlistxTest.java +25 -0
  200. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZloopTest.java +25 -0
  201. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZmsgTest.java +25 -0
  202. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZpollerTest.java +25 -0
  203. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZprocTest.java +25 -0
  204. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZsockTest.java +25 -0
  205. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZstrTest.java +25 -0
  206. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZsysTest.java +25 -0
  207. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZtimersetTest.java +25 -0
  208. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZtrieTest.java +25 -0
  209. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZuuidTest.java +25 -0
  210. data/vendor/github.com/zeromq/czmq/bindings/lua_ffi/czmq_ffi.lua +4079 -0
  211. data/vendor/github.com/zeromq/czmq/bindings/nodejs/.gitignore +10 -0
  212. data/vendor/github.com/zeromq/czmq/bindings/nodejs/.prebuildrc +2 -0
  213. data/vendor/github.com/zeromq/czmq/bindings/nodejs/README.md +4373 -0
  214. data/vendor/github.com/zeromq/czmq/bindings/nodejs/binding.cc +8324 -0
  215. data/vendor/github.com/zeromq/czmq/bindings/nodejs/binding.gyp +49 -0
  216. data/vendor/github.com/zeromq/czmq/bindings/nodejs/binding.h +952 -0
  217. data/vendor/github.com/zeromq/czmq/bindings/nodejs/build.sh +79 -0
  218. data/vendor/github.com/zeromq/czmq/bindings/nodejs/index.js +39 -0
  219. data/vendor/github.com/zeromq/czmq/bindings/nodejs/package.json +26 -0
  220. data/vendor/github.com/zeromq/czmq/bindings/nodejs/test_binding.js +32 -0
  221. data/vendor/github.com/zeromq/czmq/bindings/python/ci_build.sh +59 -0
  222. data/vendor/github.com/zeromq/czmq/bindings/python/czmq/__init__.py +3 -0
  223. data/vendor/github.com/zeromq/czmq/bindings/python/czmq/_czmq_ctypes.py +8344 -0
  224. data/vendor/github.com/zeromq/czmq/bindings/python/test.py +1078 -0
  225. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/README.md +28 -0
  226. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zactor.py +78 -0
  227. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zargs.py +133 -0
  228. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zarmour.py +124 -0
  229. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zcert.py +132 -0
  230. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zcertstore.py +84 -0
  231. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zchunk.py +192 -0
  232. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zclock.py +59 -0
  233. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zconfig.py +211 -0
  234. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zdigest.py +64 -0
  235. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zdir.py +144 -0
  236. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/ZdirPatch.py +79 -0
  237. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zfile.py +185 -0
  238. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zframe.py +160 -0
  239. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zhash.py +197 -0
  240. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zhashx.py +271 -0
  241. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Ziflist.py +103 -0
  242. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zlist.py +176 -0
  243. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zlistx.py +235 -0
  244. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zloop.py +171 -0
  245. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zmsg.py +250 -0
  246. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zpoller.py +89 -0
  247. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zproc.py +287 -0
  248. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zsock.py +1283 -0
  249. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zstr.py +123 -0
  250. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zsys.py +532 -0
  251. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Ztimerset.py +78 -0
  252. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Ztrie.py +93 -0
  253. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zuuid.py +100 -0
  254. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/__init__.py +33 -0
  255. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/_cdefs.inc +4081 -0
  256. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/build.py +345 -0
  257. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/cdefs.py +4086 -0
  258. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/dlopen.py +33 -0
  259. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/utils.py +50 -0
  260. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/setup.py +23 -0
  261. data/vendor/github.com/zeromq/czmq/bindings/qml/.gitignore +1 -0
  262. data/vendor/github.com/zeromq/czmq/bindings/qml/README.md +157 -0
  263. data/vendor/github.com/zeromq/czmq/bindings/qml/Rakefile +34 -0
  264. data/vendor/github.com/zeromq/czmq/bindings/qml/qml_czmq_bindings.pro +136 -0
  265. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZactor.cpp +88 -0
  266. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZactor.h +86 -0
  267. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZargs.cpp +121 -0
  268. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZargs.h +105 -0
  269. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZarmour.cpp +135 -0
  270. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZarmour.h +108 -0
  271. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcert.cpp +166 -0
  272. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcert.h +122 -0
  273. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcertstore.cpp +95 -0
  274. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcertstore.h +93 -0
  275. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZchunk.cpp +214 -0
  276. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZchunk.h +149 -0
  277. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZclock.cpp +67 -0
  278. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZclock.h +77 -0
  279. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZconfig.cpp +255 -0
  280. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZconfig.h +165 -0
  281. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdigest.cpp +70 -0
  282. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdigest.h +78 -0
  283. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdir.cpp +158 -0
  284. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdir.h +134 -0
  285. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdirPatch.cpp +89 -0
  286. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdirPatch.h +84 -0
  287. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZfile.cpp +204 -0
  288. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZfile.h +152 -0
  289. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZframe.cpp +200 -0
  290. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZframe.h +143 -0
  291. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhash.cpp +219 -0
  292. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhash.h +174 -0
  293. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhashx.cpp +308 -0
  294. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhashx.h +225 -0
  295. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZiflist.cpp +111 -0
  296. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZiflist.h +96 -0
  297. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlist.cpp +184 -0
  298. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlist.h +148 -0
  299. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlistx.cpp +244 -0
  300. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlistx.h +184 -0
  301. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZloop.cpp +177 -0
  302. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZloop.h +149 -0
  303. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZmsg.cpp +313 -0
  304. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZmsg.h +209 -0
  305. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZpoller.cpp +95 -0
  306. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZpoller.h +97 -0
  307. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZproc.cpp +296 -0
  308. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZproc.h +211 -0
  309. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsock.cpp +1471 -0
  310. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsock.h +882 -0
  311. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZstr.cpp +137 -0
  312. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZstr.h +120 -0
  313. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsys.cpp +541 -0
  314. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsys.h +373 -0
  315. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtimerset.cpp +84 -0
  316. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtimerset.h +86 -0
  317. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtrie.cpp +101 -0
  318. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtrie.h +95 -0
  319. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZuuid.cpp +116 -0
  320. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZuuid.h +99 -0
  321. data/vendor/github.com/zeromq/czmq/bindings/qml/src/qml_czmq_plugin.h +174 -0
  322. data/vendor/github.com/zeromq/czmq/bindings/qml/src/qmldir +2 -0
  323. data/vendor/github.com/zeromq/czmq/bindings/qml/test/tst_QmlCZMQ.qml +16 -0
  324. data/vendor/github.com/zeromq/czmq/bindings/qt/README.md +87 -0
  325. data/vendor/github.com/zeromq/czmq/bindings/qt/buildlib/buildlib.pro +36 -0
  326. data/vendor/github.com/zeromq/czmq/bindings/qt/common.pri +20 -0
  327. data/vendor/github.com/zeromq/czmq/bindings/qt/config.pri +1 -0
  328. data/vendor/github.com/zeromq/czmq/bindings/qt/qczmq.pro +13 -0
  329. data/vendor/github.com/zeromq/czmq/bindings/qt/selftest/main.cpp +57 -0
  330. data/vendor/github.com/zeromq/czmq/bindings/qt/selftest/selftest.pro +19 -0
  331. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qczmq.h +96 -0
  332. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qczmq.pri +81 -0
  333. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzactor.cpp +98 -0
  334. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzactor.h +61 -0
  335. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzargs.cpp +130 -0
  336. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzargs.h +72 -0
  337. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzarmour.cpp +162 -0
  338. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzarmour.h +83 -0
  339. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcert.cpp +191 -0
  340. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcert.h +97 -0
  341. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcertstore.cpp +105 -0
  342. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcertstore.h +68 -0
  343. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzchunk.cpp +250 -0
  344. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzchunk.h +124 -0
  345. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzclock.cpp +78 -0
  346. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzclock.h +52 -0
  347. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzconfig.cpp +292 -0
  348. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzconfig.h +140 -0
  349. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdigest.cpp +80 -0
  350. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdigest.h +53 -0
  351. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdir.cpp +176 -0
  352. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdir.h +109 -0
  353. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdirpatch.cpp +101 -0
  354. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdirpatch.h +59 -0
  355. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzfile.cpp +243 -0
  356. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzfile.h +127 -0
  357. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzframe.cpp +231 -0
  358. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzframe.h +118 -0
  359. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhash.cpp +250 -0
  360. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhash.h +149 -0
  361. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhashx.cpp +350 -0
  362. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhashx.h +200 -0
  363. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qziflist.cpp +133 -0
  364. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qziflist.h +71 -0
  365. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlist.cpp +220 -0
  366. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlist.h +123 -0
  367. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlistx.cpp +296 -0
  368. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlistx.h +159 -0
  369. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzloop.cpp +211 -0
  370. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzloop.h +124 -0
  371. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzmsg.cpp +354 -0
  372. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzmsg.h +184 -0
  373. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzpoller.cpp +100 -0
  374. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzpoller.h +67 -0
  375. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzproc.cpp +365 -0
  376. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzproc.h +186 -0
  377. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsock.cpp +1719 -0
  378. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsock.h +815 -0
  379. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzstr.cpp +128 -0
  380. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzstr.h +78 -0
  381. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsys.cpp +600 -0
  382. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsys.h +321 -0
  383. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztimerset.cpp +98 -0
  384. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztimerset.h +61 -0
  385. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztrie.cpp +117 -0
  386. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztrie.h +70 -0
  387. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzuuid.cpp +135 -0
  388. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzuuid.h +74 -0
  389. data/vendor/github.com/zeromq/czmq/bindings/ruby/Rakefile +8 -0
  390. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi.rb +875 -0
  391. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/version.rb +15 -0
  392. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zactor.rb +219 -0
  393. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zargs.rb +259 -0
  394. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zarmour.rb +286 -0
  395. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zcert.rb +304 -0
  396. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zcertstore.rb +224 -0
  397. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zchunk.rb +388 -0
  398. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zclock.rb +140 -0
  399. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zconfig.rb +462 -0
  400. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zdigest.rb +156 -0
  401. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zdir.rb +283 -0
  402. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zdir_patch.rb +194 -0
  403. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zfile.rb +361 -0
  404. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zframe.rb +360 -0
  405. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zhash.rb +386 -0
  406. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zhashx.rb +617 -0
  407. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/ziflist.rb +219 -0
  408. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zlist.rb +365 -0
  409. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zlistx.rb +478 -0
  410. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zloop.rb +396 -0
  411. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zmsg.rb +515 -0
  412. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zpoller.rb +194 -0
  413. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zproc.rb +497 -0
  414. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zsock.rb +4673 -0
  415. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zstr.rb +242 -0
  416. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zsys.rb +836 -0
  417. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/ztimerset.rb +203 -0
  418. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/ztrie.rb +221 -0
  419. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zuuid.rb +227 -0
  420. data/vendor/github.com/zeromq/czmq/bindings/ruby/spec/ffi_spec.rb +15 -0
  421. data/vendor/github.com/zeromq/czmq/bindings/ruby/spec/spec_helper.rb +8 -0
  422. data/vendor/github.com/zeromq/czmq/builds/android/android_build_helper.sh +298 -0
  423. data/vendor/github.com/zeromq/czmq/builds/android/build.sh +94 -0
  424. data/vendor/github.com/zeromq/czmq/builds/android/ci_build.sh +41 -0
  425. data/vendor/github.com/zeromq/czmq/builds/check_zproject/ci_build.sh +52 -0
  426. data/vendor/github.com/zeromq/czmq/builds/check_zproto/ci_build.sh +23 -0
  427. data/vendor/github.com/zeromq/czmq/builds/cmake/ci_build.sh +93 -0
  428. data/vendor/github.com/zeromq/czmq/builds/cygwin/Makefile.cygwin +32 -0
  429. data/vendor/github.com/zeromq/czmq/builds/docs/ci_build.sh +24 -0
  430. data/vendor/github.com/zeromq/czmq/builds/gyp/.gitignore +5 -0
  431. data/vendor/github.com/zeromq/czmq/builds/gyp/README.md +33 -0
  432. data/vendor/github.com/zeromq/czmq/builds/gyp/platform.h +46 -0
  433. data/vendor/github.com/zeromq/czmq/builds/gyp/project.gyp +195 -0
  434. data/vendor/github.com/zeromq/czmq/builds/mingw32/Makefile.mingw32 +33 -0
  435. data/vendor/github.com/zeromq/czmq/builds/mingw32/platform.h +0 -0
  436. data/vendor/github.com/zeromq/czmq/builds/msvc/.gitignore +8 -0
  437. data/vendor/github.com/zeromq/czmq/builds/msvc/configure.bat +93 -0
  438. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.bat +14 -0
  439. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.nuspec +92 -0
  440. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.targets +128 -0
  441. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.xml +29 -0
  442. data/vendor/github.com/zeromq/czmq/builds/msvc/platform.h +1 -0
  443. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Common.props +21 -0
  444. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DLL.props +16 -0
  445. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Debug.props +29 -0
  446. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugDEXE.props +21 -0
  447. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugDLL.props +20 -0
  448. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugLEXE.props +20 -0
  449. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugLIB.props +21 -0
  450. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugLTCG.props +20 -0
  451. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugSEXE.props +21 -0
  452. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/EXE.props +17 -0
  453. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/LIB.props +16 -0
  454. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/LTCG.props +13 -0
  455. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Link.props +21 -0
  456. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Messages.props +15 -0
  457. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Output.props +30 -0
  458. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Release.props +41 -0
  459. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseDEXE.props +20 -0
  460. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseDLL.props +19 -0
  461. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseLEXE.props +20 -0
  462. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseLIB.props +19 -0
  463. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseLTCG.props +19 -0
  464. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseSEXE.props +20 -0
  465. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Win32.props +20 -0
  466. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/x64.props +23 -0
  467. data/vendor/github.com/zeromq/czmq/builds/msvc/resource.h +14 -0
  468. data/vendor/github.com/zeromq/czmq/builds/msvc/resource.rc +94 -0
  469. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2008/czmq/czmq.sln +65 -0
  470. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2008/czmq/czmq.vcproj +1411 -0
  471. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/.gitignore +1 -0
  472. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/build.bat +129 -0
  473. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq.import.props +59 -0
  474. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq.sln +81 -0
  475. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq_selftest/czmq_selftest.props +75 -0
  476. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq_selftest/czmq_selftest.vcxproj +146 -0
  477. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.import.xml +29 -0
  478. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.props +81 -0
  479. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.vcxproj +215 -0
  480. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.vcxproj.filters +203 -0
  481. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/test_randof/test_randof.props +75 -0
  482. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/test_randof/test_randof.vcxproj +146 -0
  483. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zmakecert/zmakecert.props +75 -0
  484. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zmakecert/zmakecert.vcxproj +146 -0
  485. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zsp/zsp.props +75 -0
  486. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zsp/zsp.vcxproj +146 -0
  487. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/.gitignore +1 -0
  488. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/build.bat +129 -0
  489. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq.import.props +59 -0
  490. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq.sln +81 -0
  491. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq_selftest/czmq_selftest.props +75 -0
  492. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq_selftest/czmq_selftest.vcxproj +146 -0
  493. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.import.xml +29 -0
  494. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.props +81 -0
  495. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.vcxproj +215 -0
  496. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.vcxproj.filters +203 -0
  497. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/test_randof/test_randof.props +75 -0
  498. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/test_randof/test_randof.vcxproj +146 -0
  499. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zmakecert/zmakecert.props +75 -0
  500. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zmakecert/zmakecert.vcxproj +146 -0
  501. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zsp/zsp.props +75 -0
  502. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zsp/zsp.vcxproj +146 -0
  503. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/build.bat +129 -0
  504. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq.import.props +59 -0
  505. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq.sln +81 -0
  506. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq_selftest/czmq_selftest.props +75 -0
  507. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq_selftest/czmq_selftest.vcxproj +146 -0
  508. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.import.xml +29 -0
  509. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.props +81 -0
  510. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.vcxproj +215 -0
  511. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.vcxproj.filters +203 -0
  512. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/test_randof/test_randof.props +75 -0
  513. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/test_randof/test_randof.vcxproj +146 -0
  514. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zmakecert/zmakecert.props +75 -0
  515. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zmakecert/zmakecert.vcxproj +146 -0
  516. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zsp/zsp.props +75 -0
  517. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zsp/zsp.vcxproj +146 -0
  518. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/build.bat +129 -0
  519. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq.import.props +59 -0
  520. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq.sln +81 -0
  521. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq_selftest/czmq_selftest.props +75 -0
  522. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq_selftest/czmq_selftest.vcxproj +146 -0
  523. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.import.xml +29 -0
  524. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.props +81 -0
  525. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.vcxproj +215 -0
  526. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.vcxproj.filters +203 -0
  527. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/test_randof/test_randof.props +75 -0
  528. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/test_randof/test_randof.vcxproj +146 -0
  529. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zmakecert/zmakecert.props +75 -0
  530. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zmakecert/zmakecert.vcxproj +146 -0
  531. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zsp/zsp.props +75 -0
  532. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zsp/zsp.vcxproj +146 -0
  533. data/vendor/github.com/zeromq/czmq/builds/nuget/czmq.autobuild +49 -0
  534. data/vendor/github.com/zeromq/czmq/builds/nuget/readme.nuget +18 -0
  535. data/vendor/github.com/zeromq/czmq/builds/rpi/.gitignore +8 -0
  536. data/vendor/github.com/zeromq/czmq/builds/rpi/README.md +62 -0
  537. data/vendor/github.com/zeromq/czmq/builds/rpi/build.sh +142 -0
  538. data/vendor/github.com/zeromq/czmq/builds/rpi/build_image.sh +32 -0
  539. data/vendor/github.com/zeromq/czmq/builds/rpi/prepare_img.sh +111 -0
  540. data/vendor/github.com/zeromq/czmq/builds/stable_zmq/ci_build.sh +62 -0
  541. data/vendor/github.com/zeromq/czmq/builds/valgrind/ci_build.sh +43 -0
  542. data/vendor/github.com/zeromq/czmq/ci_build.sh +317 -0
  543. data/vendor/github.com/zeromq/czmq/ci_deploy.sh +29 -0
  544. data/vendor/github.com/zeromq/czmq/ci_deploy_obs.sh +23 -0
  545. data/vendor/github.com/zeromq/czmq/configure.ac +856 -0
  546. data/vendor/github.com/zeromq/czmq/doc/.gitignore +91 -0
  547. data/vendor/github.com/zeromq/czmq/doc/Makefile.am +222 -0
  548. data/vendor/github.com/zeromq/czmq/doc/asciidoc.conf +64 -0
  549. data/vendor/github.com/zeromq/czmq/doc/czmq.adoc +51 -0
  550. data/vendor/github.com/zeromq/czmq/doc/czmq.txt +380 -0
  551. data/vendor/github.com/zeromq/czmq/doc/mkman +217 -0
  552. data/vendor/github.com/zeromq/czmq/doc/mkmans +15 -0
  553. data/vendor/github.com/zeromq/czmq/doc/wdput +43 -0
  554. data/vendor/github.com/zeromq/czmq/examples/security/LICENSE +18 -0
  555. data/vendor/github.com/zeromq/czmq/examples/security/README.txt +9 -0
  556. data/vendor/github.com/zeromq/czmq/examples/security/grasslands.c +32 -0
  557. data/vendor/github.com/zeromq/czmq/examples/security/hello.c +13 -0
  558. data/vendor/github.com/zeromq/czmq/examples/security/ironhouse.c +64 -0
  559. data/vendor/github.com/zeromq/czmq/examples/security/ironhouse2.c +123 -0
  560. data/vendor/github.com/zeromq/czmq/examples/security/ironhouse2_v2.c +107 -0
  561. data/vendor/github.com/zeromq/czmq/examples/security/passwords +2 -0
  562. data/vendor/github.com/zeromq/czmq/examples/security/stonehouse.c +59 -0
  563. data/vendor/github.com/zeromq/czmq/examples/security/strawhouse.c +49 -0
  564. data/vendor/github.com/zeromq/czmq/examples/security/woodhouse.c +47 -0
  565. data/vendor/github.com/zeromq/czmq/images/README_1.png +0 -0
  566. data/vendor/github.com/zeromq/czmq/include/.gitignore +1 -0
  567. data/vendor/github.com/zeromq/czmq/include/czmq.h +39 -0
  568. data/vendor/github.com/zeromq/czmq/include/czmq_library.h +190 -0
  569. data/vendor/github.com/zeromq/czmq/include/czmq_prelude.h +735 -0
  570. data/vendor/github.com/zeromq/czmq/include/test_zgossip.h +44 -0
  571. data/vendor/github.com/zeromq/czmq/include/zactor.h +94 -0
  572. data/vendor/github.com/zeromq/czmq/include/zargs.h +134 -0
  573. data/vendor/github.com/zeromq/czmq/include/zarmour.h +114 -0
  574. data/vendor/github.com/zeromq/czmq/include/zauth.h +100 -0
  575. data/vendor/github.com/zeromq/czmq/include/zbeacon.h +86 -0
  576. data/vendor/github.com/zeromq/czmq/include/zcert.h +133 -0
  577. data/vendor/github.com/zeromq/czmq/include/zcertstore.h +101 -0
  578. data/vendor/github.com/zeromq/czmq/include/zchunk.h +163 -0
  579. data/vendor/github.com/zeromq/czmq/include/zclock.h +73 -0
  580. data/vendor/github.com/zeromq/czmq/include/zconfig.h +199 -0
  581. data/vendor/github.com/zeromq/czmq/include/zdigest.h +65 -0
  582. data/vendor/github.com/zeromq/czmq/include/zdir.h +149 -0
  583. data/vendor/github.com/zeromq/czmq/include/zdir_patch.h +82 -0
  584. data/vendor/github.com/zeromq/czmq/include/zfile.h +185 -0
  585. data/vendor/github.com/zeromq/czmq/include/zframe.h +177 -0
  586. data/vendor/github.com/zeromq/czmq/include/zgossip.h +95 -0
  587. data/vendor/github.com/zeromq/czmq/include/zhash.h +183 -0
  588. data/vendor/github.com/zeromq/czmq/include/zhashx.h +279 -0
  589. data/vendor/github.com/zeromq/czmq/include/ziflist.h +98 -0
  590. data/vendor/github.com/zeromq/czmq/include/zlist.h +158 -0
  591. data/vendor/github.com/zeromq/czmq/include/zlistx.h +205 -0
  592. data/vendor/github.com/zeromq/czmq/include/zloop.h +163 -0
  593. data/vendor/github.com/zeromq/czmq/include/zmonitor.h +73 -0
  594. data/vendor/github.com/zeromq/czmq/include/zmsg.h +280 -0
  595. data/vendor/github.com/zeromq/czmq/include/zpoller.h +87 -0
  596. data/vendor/github.com/zeromq/czmq/include/zproc.h +270 -0
  597. data/vendor/github.com/zeromq/czmq/include/zproxy.h +111 -0
  598. data/vendor/github.com/zeromq/czmq/include/zrex.h +82 -0
  599. data/vendor/github.com/zeromq/czmq/include/zsock.h +1209 -0
  600. data/vendor/github.com/zeromq/czmq/include/zstr.h +135 -0
  601. data/vendor/github.com/zeromq/czmq/include/zsys.h +439 -0
  602. data/vendor/github.com/zeromq/czmq/include/ztimerset.h +90 -0
  603. data/vendor/github.com/zeromq/czmq/include/ztrie.h +106 -0
  604. data/vendor/github.com/zeromq/czmq/include/zuuid.h +96 -0
  605. data/vendor/github.com/zeromq/czmq/issues/README.md +6 -0
  606. data/vendor/github.com/zeromq/czmq/issues/c +520 -0
  607. data/vendor/github.com/zeromq/czmq/issues/issue-407.c +146 -0
  608. data/vendor/github.com/zeromq/czmq/license.xml +9 -0
  609. data/vendor/github.com/zeromq/czmq/mkdoc +7 -0
  610. data/vendor/github.com/zeromq/czmq/model/chkopts.pl +47 -0
  611. data/vendor/github.com/zeromq/czmq/model/rename_class +42 -0
  612. data/vendor/github.com/zeromq/czmq/packaging/debian/changelog +5 -0
  613. data/vendor/github.com/zeromq/czmq/packaging/debian/compat +1 -0
  614. data/vendor/github.com/zeromq/czmq/packaging/debian/control +86 -0
  615. data/vendor/github.com/zeromq/czmq/packaging/debian/copyright +13 -0
  616. data/vendor/github.com/zeromq/czmq/packaging/debian/czmq.dsc.obs +20 -0
  617. data/vendor/github.com/zeromq/czmq/packaging/debian/czmq.install +2 -0
  618. data/vendor/github.com/zeromq/czmq/packaging/debian/czmq.manpages +1 -0
  619. data/vendor/github.com/zeromq/czmq/packaging/debian/format +1 -0
  620. data/vendor/github.com/zeromq/czmq/packaging/debian/libczmq-dev.install +4 -0
  621. data/vendor/github.com/zeromq/czmq/packaging/debian/libczmq-dev.manpages +2 -0
  622. data/vendor/github.com/zeromq/czmq/packaging/debian/libczmq4.install +1 -0
  623. data/vendor/github.com/zeromq/czmq/packaging/debian/rules +96 -0
  624. data/vendor/github.com/zeromq/czmq/packaging/dist/gitlog2changelog.py +125 -0
  625. data/vendor/github.com/zeromq/czmq/packaging/obs/_service +91 -0
  626. data/vendor/github.com/zeromq/czmq/packaging/redhat/czmq.spec +202 -0
  627. data/vendor/github.com/zeromq/czmq/project.gyp +121 -0
  628. data/vendor/github.com/zeromq/czmq/project.xml +99 -0
  629. data/vendor/github.com/zeromq/czmq/setup.py +9 -0
  630. data/vendor/github.com/zeromq/czmq/src/.gitignore +20 -0
  631. data/vendor/github.com/zeromq/czmq/src/.valgrind.supp +33 -0
  632. data/vendor/github.com/zeromq/czmq/src/CMakeLists-local.txt +22 -0
  633. data/vendor/github.com/zeromq/czmq/src/Makemodule-local.am +15 -0
  634. data/vendor/github.com/zeromq/czmq/src/Makemodule.am +353 -0
  635. data/vendor/github.com/zeromq/czmq/src/czmq_classes.h +388 -0
  636. data/vendor/github.com/zeromq/czmq/src/czmq_private_selftest.c +40 -0
  637. data/vendor/github.com/zeromq/czmq/src/czmq_selftest.c +220 -0
  638. data/vendor/github.com/zeromq/czmq/src/foreign/sha1/sha1.h +76 -0
  639. data/vendor/github.com/zeromq/czmq/src/foreign/sha1/sha1.inc_c +335 -0
  640. data/vendor/github.com/zeromq/czmq/src/foreign/slre/readme.txt +83 -0
  641. data/vendor/github.com/zeromq/czmq/src/foreign/slre/slre.h +92 -0
  642. data/vendor/github.com/zeromq/czmq/src/foreign/slre/slre.inc_c +660 -0
  643. data/vendor/github.com/zeromq/czmq/src/libczmq.pc.in +24 -0
  644. data/vendor/github.com/zeromq/czmq/src/python_cffi.inc +17 -0
  645. data/vendor/github.com/zeromq/czmq/src/selftest-ro/.gitkeep +0 -0
  646. data/vendor/github.com/zeromq/czmq/src/selftest.cfg +5 -0
  647. data/vendor/github.com/zeromq/czmq/src/sockopts.gsl +36 -0
  648. data/vendor/github.com/zeromq/czmq/src/sockopts.xml +193 -0
  649. data/vendor/github.com/zeromq/czmq/src/test_randof.c +182 -0
  650. data/vendor/github.com/zeromq/czmq/src/test_zgossip.c +188 -0
  651. data/vendor/github.com/zeromq/czmq/src/valgrind.supp +14 -0
  652. data/vendor/github.com/zeromq/czmq/src/zactor.c +338 -0
  653. data/vendor/github.com/zeromq/czmq/src/zargs.c +289 -0
  654. data/vendor/github.com/zeromq/czmq/src/zarmour.c +941 -0
  655. data/vendor/github.com/zeromq/czmq/src/zauth.c +821 -0
  656. data/vendor/github.com/zeromq/czmq/src/zbeacon.c +651 -0
  657. data/vendor/github.com/zeromq/czmq/src/zcert.c +557 -0
  658. data/vendor/github.com/zeromq/czmq/src/zcertstore.c +407 -0
  659. data/vendor/github.com/zeromq/czmq/src/zchunk.c +609 -0
  660. data/vendor/github.com/zeromq/czmq/src/zclock.c +237 -0
  661. data/vendor/github.com/zeromq/czmq/src/zconfig.c +1369 -0
  662. data/vendor/github.com/zeromq/czmq/src/zdigest.c +163 -0
  663. data/vendor/github.com/zeromq/czmq/src/zdir.c +1138 -0
  664. data/vendor/github.com/zeromq/czmq/src/zdir_patch.c +227 -0
  665. data/vendor/github.com/zeromq/czmq/src/zfile.c +920 -0
  666. data/vendor/github.com/zeromq/czmq/src/zframe.c +756 -0
  667. data/vendor/github.com/zeromq/czmq/src/zgossip.c +689 -0
  668. data/vendor/github.com/zeromq/czmq/src/zgossip.xml +57 -0
  669. data/vendor/github.com/zeromq/czmq/src/zgossip_engine.inc +1008 -0
  670. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.bnf +43 -0
  671. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.c +688 -0
  672. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.h +127 -0
  673. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.xml +46 -0
  674. data/vendor/github.com/zeromq/czmq/src/zhash.c +956 -0
  675. data/vendor/github.com/zeromq/czmq/src/zhash_primes.inc +329 -0
  676. data/vendor/github.com/zeromq/czmq/src/zhashx.c +1369 -0
  677. data/vendor/github.com/zeromq/czmq/src/ziflist.c +517 -0
  678. data/vendor/github.com/zeromq/czmq/src/zlist.c +634 -0
  679. data/vendor/github.com/zeromq/czmq/src/zlistx.c +753 -0
  680. data/vendor/github.com/zeromq/czmq/src/zloop.c +1000 -0
  681. data/vendor/github.com/zeromq/czmq/src/zmakecert.c +64 -0
  682. data/vendor/github.com/zeromq/czmq/src/zmonitor.c +447 -0
  683. data/vendor/github.com/zeromq/czmq/src/zmsg.c +1258 -0
  684. data/vendor/github.com/zeromq/czmq/src/zpoller.c +397 -0
  685. data/vendor/github.com/zeromq/czmq/src/zproc.c +1160 -0
  686. data/vendor/github.com/zeromq/czmq/src/zproxy.c +791 -0
  687. data/vendor/github.com/zeromq/czmq/src/zrex.c +310 -0
  688. data/vendor/github.com/zeromq/czmq/src/zsock.c +2207 -0
  689. data/vendor/github.com/zeromq/czmq/src/zsock_option.gsl +404 -0
  690. data/vendor/github.com/zeromq/czmq/src/zsock_option.inc +3946 -0
  691. data/vendor/github.com/zeromq/czmq/src/zsp.c +118 -0
  692. data/vendor/github.com/zeromq/czmq/src/zstr.c +548 -0
  693. data/vendor/github.com/zeromq/czmq/src/zsys.c +2225 -0
  694. data/vendor/github.com/zeromq/czmq/src/ztimerset.c +227 -0
  695. data/vendor/github.com/zeromq/czmq/src/ztrie.c +809 -0
  696. data/vendor/github.com/zeromq/czmq/src/zuuid.c +344 -0
  697. metadata +780 -0
@@ -0,0 +1,1258 @@
1
+ /* =========================================================================
2
+ zmsg - working with multipart messages
3
+
4
+ Copyright (c) the Contributors as noted in the AUTHORS file.
5
+ This file is part of CZMQ, the high-level C binding for 0MQ:
6
+ http://czmq.zeromq.org.
7
+
8
+ This Source Code Form is subject to the terms of the Mozilla Public
9
+ License, v. 2.0. If a copy of the MPL was not distributed with this
10
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
+ =========================================================================
12
+ */
13
+
14
+ /*
15
+ @header
16
+ The zmsg class provides methods to send and receive multipart messages
17
+ across 0MQ sockets. This class provides a list-like container interface,
18
+ with methods to work with the overall container. zmsg_t messages are
19
+ composed of zero or more zframe_t frames.
20
+ @discuss
21
+ @end
22
+ */
23
+
24
+ #include "czmq_classes.h"
25
+
26
+ // zmsg_t instances always have this tag as the first 4 octets of
27
+ // their data, which lets us do runtime object typing & validation.
28
+ #define ZMSG_TAG 0x0003cafe
29
+
30
+ // Structure of our class
31
+
32
+ struct _zmsg_t {
33
+ uint32_t tag; // Object tag for runtime detection
34
+ zlist_t *frames; // List of frames
35
+ size_t content_size; // Total content size
36
+ uint32_t routing_id; // Routing ID back to sender, if any
37
+ };
38
+
39
+
40
+ // --------------------------------------------------------------------------
41
+ // Constructor
42
+
43
+ zmsg_t *
44
+ zmsg_new (void)
45
+ {
46
+ zmsg_t *self = (zmsg_t *) zmalloc (sizeof (zmsg_t));
47
+ assert (self);
48
+ self->tag = ZMSG_TAG;
49
+ self->frames = zlist_new ();
50
+ assert (self->frames);
51
+ return self;
52
+ }
53
+
54
+
55
+ // --------------------------------------------------------------------------
56
+ // Destructor
57
+
58
+ void
59
+ zmsg_destroy (zmsg_t **self_p)
60
+ {
61
+ assert (self_p);
62
+ if (*self_p) {
63
+ zmsg_t *self = *self_p;
64
+ assert (zmsg_is (self));
65
+ zframe_t *frame;
66
+ while ((frame = (zframe_t *) zlist_pop (self->frames)))
67
+ zframe_destroy (&frame);
68
+ zlist_destroy (&self->frames);
69
+ self->tag = 0xDeadBeef;
70
+ freen (self);
71
+ *self_p = NULL;
72
+ }
73
+ }
74
+
75
+
76
+ // --------------------------------------------------------------------------
77
+ // Receive a message from a socket. The socket may be a libzmq socket, or a
78
+ // zsock_t object. Returns a new zmsg_t object if successful, or NULL if the
79
+ // receive was interrupted. The recv call blocks: if you want a non-blocking
80
+ // call, use the zloop or zpoller class to receive only from ready sockets.
81
+ // Keeps retrying if interrupted in a middle of a multipart sequence.
82
+
83
+ zmsg_t *
84
+ zmsg_recv (void *source)
85
+ {
86
+ assert (source);
87
+ zmsg_t *self = zmsg_new ();
88
+ if (!self)
89
+ return NULL;
90
+
91
+ while (true) {
92
+ zframe_t *frame = zframe_recv (source);
93
+ if (!frame) {
94
+ if (errno == EINTR && zlist_head (self->frames))
95
+ continue;
96
+ else {
97
+ zmsg_destroy (&self);
98
+ break; // Interrupted or terminated
99
+ }
100
+ }
101
+ #if defined (ZMQ_SERVER)
102
+ // Grab routing ID if we're reading from a SERVER socket (ZMQ 4.2 and later)
103
+ if (zsock_type (source) == ZMQ_SERVER)
104
+ self->routing_id = zframe_routing_id (frame);
105
+ #endif
106
+ if (zmsg_append (self, &frame)) {
107
+ zmsg_destroy (&self);
108
+ break;
109
+ }
110
+ if (!zsock_rcvmore (source))
111
+ break; // Last message frame
112
+ }
113
+ return self;
114
+ }
115
+
116
+
117
+ // --------------------------------------------------------------------------
118
+ // Send message to destination socket, and destroy the message after sending
119
+ // it successfully. If the message has no frames, sends nothing but destroys
120
+ // the message anyhow. Nullifies the caller's reference to the message (as
121
+ // it is a destructor).
122
+ // Keeps retrying if interrupted in a middle of a multipart sequence.
123
+
124
+ int
125
+ zmsg_send (zmsg_t **self_p, void *dest)
126
+ {
127
+ assert (self_p);
128
+ assert (dest);
129
+ zmsg_t *self = *self_p;
130
+
131
+ int rc = 0;
132
+ if (self) {
133
+ assert (zmsg_is (self));
134
+ bool sent_some = false;
135
+ zframe_t *frame;
136
+ while ((frame = (zframe_t *) zlist_head (self->frames))) {
137
+ zframe_set_routing_id (frame, self->routing_id);
138
+ rc = zframe_send (&frame, dest,
139
+ zlist_size (self->frames) > 1? ZFRAME_MORE: 0);
140
+ if (rc != 0) {
141
+ if (errno == EINTR && sent_some)
142
+ continue;
143
+ else
144
+ break;
145
+ }
146
+ sent_some = true;
147
+ (void) zlist_pop (self->frames);
148
+ }
149
+ if (rc == 0)
150
+ zmsg_destroy (self_p);
151
+ }
152
+ return rc;
153
+ }
154
+
155
+ // --------------------------------------------------------------------------
156
+ // Send message to destination socket as part of a multipart sequence, and
157
+ // destroy the message after sending it successfully. Note that after a
158
+ // zmsg_sendm, you must call zmsg_send or another method that sends a final
159
+ // message part. If the message has no frames, sends nothing but destroys
160
+ // the message anyhow. Nullifies the caller's reference to the message (as
161
+ // it is a destructor).
162
+ // Keeps retrying if interrupted in a middle of a multipart sequence.
163
+
164
+ int
165
+ zmsg_sendm (zmsg_t **self_p, void *dest)
166
+ {
167
+ assert (self_p);
168
+ assert (dest);
169
+ zmsg_t *self = *self_p;
170
+
171
+ int rc = 0;
172
+ if (self) {
173
+ assert (zmsg_is (self));
174
+ bool sent_some = false;
175
+ zframe_t *frame;
176
+ while ((frame = (zframe_t *) zlist_head (self->frames))) {
177
+ zframe_set_routing_id (frame, self->routing_id);
178
+ rc = zframe_send (&frame, dest, ZFRAME_MORE);
179
+ if (rc != 0) {
180
+ if (errno == EINTR && sent_some)
181
+ continue;
182
+ else
183
+ break;
184
+ }
185
+ sent_some = true;
186
+ (void) zlist_pop (self->frames);
187
+ }
188
+ if (rc == 0)
189
+ zmsg_destroy (self_p);
190
+ }
191
+ return rc;
192
+ }
193
+
194
+ // --------------------------------------------------------------------------
195
+ // Return size of message, i.e. number of frames (0 or more).
196
+
197
+ size_t
198
+ zmsg_size (zmsg_t *self)
199
+ {
200
+ assert (self);
201
+ assert (zmsg_is (self));
202
+
203
+ return zlist_size (self->frames);
204
+ }
205
+
206
+
207
+ // --------------------------------------------------------------------------
208
+ // Return total size of all frames in message.
209
+
210
+ size_t
211
+ zmsg_content_size (zmsg_t *self)
212
+ {
213
+ assert (self);
214
+ assert (zmsg_is (self));
215
+ return self->content_size;
216
+ }
217
+
218
+
219
+ // --------------------------------------------------------------------------
220
+ // Return message routing ID, if the message came from a ZMQ_SERVER socket.
221
+ // Else returns zero.
222
+
223
+ uint32_t
224
+ zmsg_routing_id (zmsg_t *self)
225
+ {
226
+ assert (self);
227
+ assert (zmsg_is (self));
228
+ return self->routing_id;
229
+ }
230
+
231
+
232
+ // --------------------------------------------------------------------------
233
+ // Set routing ID on message. This is used if/when the message is sent to a
234
+ // ZMQ_SERVER socket.
235
+
236
+ void
237
+ zmsg_set_routing_id (zmsg_t *self, uint32_t routing_id)
238
+ {
239
+ assert (self);
240
+ assert (zmsg_is (self));
241
+ self->routing_id = routing_id;
242
+ }
243
+
244
+
245
+ // --------------------------------------------------------------------------
246
+ // Push frame to the front of the message, i.e. before all other frames.
247
+ // Message takes ownership of frame, will destroy it when message is sent.
248
+ // Returns 0 on success, -1 on error. Deprecates zmsg_push, which did not
249
+ // nullify the caller's frame reference.
250
+
251
+ int
252
+ zmsg_prepend (zmsg_t *self, zframe_t **frame_p)
253
+ {
254
+ assert (self);
255
+ assert (zmsg_is (self));
256
+ assert (frame_p);
257
+
258
+ zframe_t *frame = *frame_p;
259
+ *frame_p = NULL; // We now own frame
260
+ self->content_size += zframe_size (frame);
261
+ zlist_push (self->frames, frame);
262
+ return 0;
263
+ }
264
+
265
+
266
+ // --------------------------------------------------------------------------
267
+ // Add frame to the end of the message, i.e. after all other frames.
268
+ // Message takes ownership of frame, will destroy it when message is sent.
269
+ // Returns 0 on success. Nullifies caller's reference to frame.
270
+
271
+ int
272
+ zmsg_append (zmsg_t *self, zframe_t **frame_p)
273
+ {
274
+ assert (self);
275
+ assert (zmsg_is (self));
276
+ assert (frame_p);
277
+
278
+ zframe_t *frame = *frame_p;
279
+ *frame_p = NULL; // We now own frame
280
+ self->content_size += zframe_size (frame);
281
+ zlist_append (self->frames, frame);
282
+ return 0;
283
+ }
284
+
285
+
286
+ // --------------------------------------------------------------------------
287
+ // Remove first frame from message, if any. Returns frame, or NULL. Caller
288
+ // now owns frame and must destroy it when finished with it.
289
+
290
+ zframe_t *
291
+ zmsg_pop (zmsg_t *self)
292
+ {
293
+ assert (self);
294
+ assert (zmsg_is (self));
295
+
296
+ zframe_t *frame = (zframe_t *) zlist_pop (self->frames);
297
+ if (frame)
298
+ self->content_size -= zframe_size (frame);
299
+
300
+ return frame;
301
+ }
302
+
303
+
304
+ // --------------------------------------------------------------------------
305
+ // Push block of memory to front of message, as a new frame.
306
+ // Returns 0 on success, -1 on error.
307
+
308
+ int
309
+ zmsg_pushmem (zmsg_t *self, const void *data, size_t size)
310
+ {
311
+ assert (self);
312
+ assert (zmsg_is (self));
313
+
314
+ zframe_t *frame = zframe_new (data, size);
315
+ assert (frame);
316
+ self->content_size += size;
317
+ zlist_push (self->frames, frame);
318
+ return 0;
319
+ }
320
+
321
+ // --------------------------------------------------------------------------
322
+ // Add block of memory to the end of the message, as a new frame.
323
+ // Returns 0 on success, -1 on error.
324
+
325
+ int
326
+ zmsg_addmem (zmsg_t *self, const void *data, size_t size)
327
+ {
328
+ assert (self);
329
+ assert (zmsg_is (self));
330
+
331
+ zframe_t *frame = zframe_new (data, size);
332
+ assert (frame);
333
+ self->content_size += size;
334
+ zlist_append (self->frames, frame);
335
+ return 0;
336
+ }
337
+
338
+
339
+ // --------------------------------------------------------------------------
340
+ // Push string as new frame to front of message.
341
+ // Returns 0 on success, -1 on error.
342
+
343
+ int
344
+ zmsg_pushstr (zmsg_t *self, const char *string)
345
+ {
346
+ assert (self);
347
+ assert (zmsg_is (self));
348
+ assert (string);
349
+
350
+ size_t len = strlen (string);
351
+ zframe_t *frame = zframe_new (string, len);
352
+ assert (frame);
353
+ self->content_size += len;
354
+ zlist_push (self->frames, frame);
355
+ return 0;
356
+ }
357
+
358
+
359
+ // --------------------------------------------------------------------------
360
+ // Push string as new frame to end of message.
361
+ // Returns 0 on success, -1 on error.
362
+
363
+ int
364
+ zmsg_addstr (zmsg_t *self, const char *string)
365
+ {
366
+ assert (self);
367
+ assert (zmsg_is (self));
368
+ assert (string);
369
+
370
+ size_t len = strlen (string);
371
+ zframe_t *frame = zframe_new (string, len);
372
+ assert (frame);
373
+ self->content_size += len;
374
+ zlist_append (self->frames, frame);
375
+ return 0;
376
+ }
377
+
378
+
379
+ // --------------------------------------------------------------------------
380
+ // Push formatted string as new frame to front of message.
381
+ // Returns 0 on success, -1 on error.
382
+
383
+ int
384
+ zmsg_pushstrf (zmsg_t *self, const char *format, ...)
385
+ {
386
+ assert (self);
387
+ assert (zmsg_is (self));
388
+ assert (format);
389
+
390
+ va_list argptr;
391
+ va_start (argptr, format);
392
+ char *string = zsys_vprintf (format, argptr);
393
+ va_end (argptr);
394
+ if (!string)
395
+ return -1;
396
+
397
+ size_t len = strlen (string);
398
+ zframe_t *frame = zframe_new (string, len);
399
+ assert (frame);
400
+ self->content_size += len;
401
+ zlist_push (self->frames, frame);
402
+ zstr_free (&string);
403
+ return 0;
404
+ }
405
+
406
+
407
+ // --------------------------------------------------------------------------
408
+ // Push formatted string as new frame to end of message.
409
+ // Returns 0 on success, -1 on error.
410
+
411
+ int
412
+ zmsg_addstrf (zmsg_t *self, const char *format, ...)
413
+ {
414
+ assert (self);
415
+ assert (zmsg_is (self));
416
+ assert (format);
417
+
418
+ va_list argptr;
419
+ va_start (argptr, format);
420
+ char *string = zsys_vprintf (format, argptr);
421
+ va_end (argptr);
422
+ if (!string)
423
+ return -1;
424
+
425
+ size_t len = strlen (string);
426
+ zframe_t *frame = zframe_new (string, len);
427
+ assert (frame);
428
+ self->content_size += len;
429
+ zlist_append (self->frames, frame);
430
+ zstr_free (&string);
431
+ return 0;
432
+ }
433
+
434
+
435
+ // --------------------------------------------------------------------------
436
+ // Pop frame off front of message, return as fresh string. If there were
437
+ // no more frames in the message, returns NULL.
438
+
439
+ char *
440
+ zmsg_popstr (zmsg_t *self)
441
+ {
442
+ assert (self);
443
+ assert (zmsg_is (self));
444
+
445
+ zframe_t *frame = (zframe_t *) zlist_pop (self->frames);
446
+ char *string = NULL;
447
+ if (frame) {
448
+ self->content_size -= zframe_size (frame);
449
+ string = zframe_strdup (frame);
450
+ zframe_destroy (&frame);
451
+ }
452
+ return string;
453
+ }
454
+
455
+
456
+ // --------------------------------------------------------------------------
457
+ // Push encoded message as a new frame. Message takes ownership of
458
+ // submessage, so the original is destroyed in this call. Returns 0 on
459
+ // success, -1 on error.
460
+
461
+ int
462
+ zmsg_addmsg (zmsg_t *self, zmsg_t **msg_p)
463
+ {
464
+ assert (self);
465
+ assert (zmsg_is (self));
466
+ assert (msg_p);
467
+
468
+ zframe_t *frame = zmsg_encode (*msg_p);
469
+ zmsg_append (self, &frame);
470
+ zmsg_destroy (msg_p);
471
+ return 0;
472
+ }
473
+
474
+
475
+ // --------------------------------------------------------------------------
476
+ // Remove first submessage from message, if any. Returns zmsg_t, or NULL if
477
+ // decoding was not successful. Caller now owns message and must destroy it
478
+ // when finished with it.
479
+
480
+ zmsg_t *
481
+ zmsg_popmsg (zmsg_t *self)
482
+ {
483
+ assert (self);
484
+ assert (zmsg_is (self));
485
+
486
+ zframe_t *frame = zmsg_pop (self);
487
+ if (!frame)
488
+ return NULL;
489
+ zmsg_t *msg = zmsg_decode (frame);
490
+ zframe_destroy (&frame);
491
+ return msg;
492
+ }
493
+
494
+
495
+ // --------------------------------------------------------------------------
496
+ // Remove specified frame from list, if present. Does not destroy frame.
497
+
498
+ void
499
+ zmsg_remove (zmsg_t *self, zframe_t *frame)
500
+ {
501
+ assert (self);
502
+ assert (zmsg_is (self));
503
+
504
+ // zlist_remove does not give feedback on whether an element was actually
505
+ // removed or not. To avoid wrongly decreasing the size in case the frame
506
+ // is not actually part of the zmsg, check the size before and after.
507
+ // We could do a search but that's a full scan, while the size is saved
508
+ // by zlist so checking it is much cheaper.
509
+ size_t num_frames_before = zlist_size (self->frames);
510
+ zlist_remove (self->frames, frame);
511
+ size_t num_frames_after = zlist_size (self->frames);
512
+
513
+ if (num_frames_before > num_frames_after)
514
+ self->content_size -= zframe_size (frame);
515
+ }
516
+
517
+
518
+ // --------------------------------------------------------------------------
519
+ // Set cursor to first frame in message. Returns frame, or NULL, if the
520
+ // message is empty. Use this to navigate the frames as a list.
521
+
522
+ zframe_t *
523
+ zmsg_first (zmsg_t *self)
524
+ {
525
+ assert (self);
526
+ assert (zmsg_is (self));
527
+ return (zframe_t *) zlist_first (self->frames);
528
+ }
529
+
530
+
531
+ // --------------------------------------------------------------------------
532
+ // Return the next frame. If there are no more frames, returns NULL. To move
533
+ // to the first frame call zmsg_first(). Advances the cursor.
534
+
535
+ zframe_t *
536
+ zmsg_next (zmsg_t *self)
537
+ {
538
+ assert (self);
539
+ assert (zmsg_is (self));
540
+ return (zframe_t *) zlist_next (self->frames);
541
+ }
542
+
543
+
544
+ // --------------------------------------------------------------------------
545
+ // Return the last frame. If there are no frames, returns NULL.
546
+
547
+ zframe_t *
548
+ zmsg_last (zmsg_t *self)
549
+ {
550
+ assert (self);
551
+ assert (zmsg_is (self));
552
+ return (zframe_t *) zlist_last (self->frames);
553
+ }
554
+
555
+
556
+ // --------------------------------------------------------------------------
557
+ // Save message to an open file, return 0 if OK, else -1. The message is
558
+ // saved as a series of frames, each with length and data. Note that the
559
+ // file is NOT guaranteed to be portable between operating systems, not
560
+ // versions of CZMQ. The file format is at present undocumented and liable
561
+ // to arbitrary change.
562
+
563
+ int
564
+ zmsg_save (zmsg_t *self, FILE *file)
565
+ {
566
+ assert (self);
567
+ assert (zmsg_is (self));
568
+ assert (file);
569
+
570
+ zframe_t *frame = zmsg_first (self);
571
+ while (frame) {
572
+ size_t frame_size = zframe_size (frame);
573
+ if (fwrite (&frame_size, sizeof (frame_size), 1, file) != 1)
574
+ return -1;
575
+ if (fwrite (zframe_data (frame), frame_size, 1, file) != 1)
576
+ return -1;
577
+ frame = zmsg_next (self);
578
+ }
579
+ return 0;
580
+ }
581
+
582
+
583
+ // --------------------------------------------------------------------------
584
+ // Load/append an open file into new message, return the message.
585
+ // Returns NULL if the message could not be loaded.
586
+
587
+
588
+ zmsg_t *
589
+ zmsg_load (FILE *file)
590
+ {
591
+ zmsg_t *self = zmsg_new ();
592
+ assert (self);
593
+ assert (file);
594
+
595
+ while (true) {
596
+ size_t frame_size;
597
+ if (fread (&frame_size, sizeof (frame_size), 1, file) == 1) {
598
+ zframe_t *frame = zframe_new (NULL, frame_size);
599
+ if (fread (zframe_data (frame), frame_size, 1, file) == 1
600
+ && frame_size > 0)
601
+ zmsg_append (self, &frame);
602
+ else {
603
+ zframe_destroy (&frame);
604
+ zmsg_destroy (&self);
605
+ break;
606
+ }
607
+ }
608
+ else
609
+ break; // Unable to read properly, quit
610
+ }
611
+ return self;
612
+ }
613
+
614
+
615
+ // --------------------------------------------------------------------------
616
+ // Serialize multipart message to a single message frame. Use this method
617
+ // to send structured messages across transports that do not support
618
+ // multipart data. Allocates and returns a new frame containing the
619
+ // serialized message. To decode a serialized message frame, use
620
+ // zmsg_decode ().
621
+ //
622
+ // Frame lengths are encoded as 1 or 1+4 bytes
623
+ // 0..254 bytes octet + data
624
+ // 255..4Gb-1 bytes 0xFF + 4octet + data
625
+
626
+ zframe_t *
627
+ zmsg_encode (zmsg_t *self)
628
+ {
629
+ assert (self);
630
+ assert (zmsg_is (self));
631
+
632
+ // Calculate real size of frame
633
+ size_t total_size = 0;
634
+ zframe_t *frame = zmsg_first (self);
635
+ while (frame) {
636
+ size_t frame_size = zframe_size (frame);
637
+ if (frame_size < 255)
638
+ total_size += frame_size + 1;
639
+ else
640
+ total_size += frame_size + 1 + 4;
641
+ frame = zmsg_next (self);
642
+ }
643
+ zframe_t *encoded = zframe_new (NULL, total_size);
644
+ assert (encoded);
645
+
646
+ // Encode message into frame
647
+ byte *dest = zframe_data (encoded);
648
+ frame = zmsg_first (self);
649
+ while (frame) {
650
+ size_t frame_size = zframe_size (frame);
651
+ if (frame_size < 255) {
652
+ *dest++ = (byte) frame_size;
653
+ memcpy (dest, zframe_data (frame), frame_size);
654
+ dest += frame_size;
655
+ }
656
+ else {
657
+ *dest++ = 0xFF;
658
+ *dest++ = (frame_size >> 24) & 255;
659
+ *dest++ = (frame_size >> 16) & 255;
660
+ *dest++ = (frame_size >> 8) & 255;
661
+ *dest++ = frame_size & 255;
662
+ memcpy (dest, zframe_data (frame), frame_size);
663
+ dest += frame_size;
664
+ }
665
+ frame = zmsg_next (self);
666
+ }
667
+ assert ((size_t) (dest - zframe_data (encoded)) == total_size);
668
+ return encoded;
669
+ }
670
+
671
+
672
+ // --------------------------------------------------------------------------
673
+ // Decodes a serialized message frame created by zmsg_encode () and returns
674
+ // a new zmsg_t object. Returns NULL if the frame was badly formatted or
675
+ // there was insufficient memory to work.
676
+
677
+ zmsg_t *
678
+ zmsg_decode (zframe_t *frame)
679
+ {
680
+ assert (frame);
681
+ zmsg_t *self = zmsg_new ();
682
+ assert (self);
683
+
684
+ const byte *source = zframe_data (frame);
685
+ const byte *limit = zframe_data (frame) + zframe_size (frame);
686
+ while (source < limit) {
687
+ size_t frame_size = *source++;
688
+ if (frame_size == 255) {
689
+ if (source > limit - 4) {
690
+ zmsg_destroy (&self);
691
+ break;
692
+ }
693
+ frame_size = (source [0] << 24)
694
+ + (source [1] << 16)
695
+ + (source [2] << 8)
696
+ + source [3];
697
+ source += 4;
698
+ }
699
+ if (source > limit - frame_size) {
700
+ zmsg_destroy (&self);
701
+ break;
702
+ }
703
+ zframe_t *decoded = zframe_new (source, frame_size);
704
+ assert (decoded);
705
+ zmsg_append (self, &decoded);
706
+ source += frame_size;
707
+ }
708
+ return self;
709
+ }
710
+
711
+
712
+ // --------------------------------------------------------------------------
713
+ // Create copy of message, as new message object. Returns a fresh zmsg_t
714
+ // object. If message is null, or memory was exhausted, returns null.
715
+
716
+ zmsg_t *
717
+ zmsg_dup (zmsg_t *self)
718
+ {
719
+ if (self) {
720
+ assert (zmsg_is (self));
721
+ zmsg_t *copy = zmsg_new ();
722
+ assert (copy);
723
+ zframe_t *frame = zmsg_first (self);
724
+ while (frame) {
725
+ zmsg_addmem (copy, zframe_data (frame), zframe_size (frame));
726
+ frame = zmsg_next (self);
727
+ }
728
+ return copy;
729
+ }
730
+ else
731
+ return NULL;
732
+ }
733
+
734
+
735
+ // --------------------------------------------------------------------------
736
+ // Send message to zsys log sink (may be stdout, or system facility as
737
+ // configured by zsys_set_logstream).
738
+
739
+ void
740
+ zmsg_print (zmsg_t *self)
741
+ {
742
+ assert (self);
743
+ assert (zmsg_is (self));
744
+
745
+ if (!self) {
746
+ zsys_debug ("(NULL)");
747
+ return;
748
+ }
749
+ zframe_t *frame = zmsg_first (self);
750
+ while (frame) {
751
+ zframe_print (frame, NULL);
752
+ frame = zmsg_next (self);
753
+ }
754
+ }
755
+
756
+
757
+ // --------------------------------------------------------------------------
758
+ // Return true if the two messages have the same number of frames and each
759
+ // frame in the first message is identical to the corresponding frame in the
760
+ // other message. As with zframe_eq, return false if either message is NULL.
761
+
762
+ bool
763
+ zmsg_eq (zmsg_t *self, zmsg_t *other)
764
+ {
765
+ if (!self || !other)
766
+ return false;
767
+
768
+ if (zlist_size (self->frames) != zlist_size (other->frames))
769
+ return false;
770
+
771
+ zframe_t *self_frame = (zframe_t *) zlist_first (self->frames);
772
+ zframe_t *other_frame = (zframe_t *) zlist_first (other->frames);
773
+ while (self_frame && other_frame) {
774
+ if (!zframe_eq (self_frame, other_frame))
775
+ return false;
776
+ self_frame = (zframe_t *) zlist_next (self->frames);
777
+ other_frame = (zframe_t *) zlist_next (other->frames);
778
+ }
779
+ return true;
780
+ }
781
+
782
+
783
+ // --------------------------------------------------------------------------
784
+ // Generate a signal message encoding the given status. A signal is a short
785
+ // message carrying a 1-byte success/failure code (by convention, 0 means
786
+ // OK). Signals are encoded to be distinguishable from "normal" messages.
787
+
788
+ zmsg_t *
789
+ zmsg_new_signal (byte status)
790
+ {
791
+ zmsg_t *self = zmsg_new ();
792
+ int64_t signal_value = 0x7766554433221100L + status;
793
+ zmsg_addmem (self, &signal_value, 8);
794
+ return self;
795
+ }
796
+
797
+
798
+ // --------------------------------------------------------------------------
799
+ // Return signal value, 0 or greater, if message is a signal, -1 if not.
800
+
801
+ int
802
+ zmsg_signal (zmsg_t *self)
803
+ {
804
+ if (zmsg_size (self) == 1
805
+ && zmsg_content_size (self) == 8) {
806
+ zframe_t *frame = zmsg_first (self);
807
+ int64_t signal_value = *((int64_t *) zframe_data (frame));
808
+ if ((signal_value & 0xFFFFFFFFFFFFFF00L) == 0x7766554433221100L)
809
+ return signal_value & 255;
810
+ }
811
+ return -1;
812
+ }
813
+
814
+
815
+ // --------------------------------------------------------------------------
816
+ // Probe the supplied object, and report if it looks like a zmsg_t.
817
+
818
+ bool
819
+ zmsg_is (void *self)
820
+ {
821
+ assert (self);
822
+ return ((zmsg_t *) self)->tag == ZMSG_TAG;
823
+ }
824
+
825
+
826
+ // --------------------------------------------------------------------------
827
+ // DEPRECATED as over-engineered, poor style
828
+ // Pop frame off front of message, caller now owns frame
829
+ // If next frame is empty, pops and destroys that empty frame.
830
+
831
+ zframe_t *
832
+ zmsg_unwrap (zmsg_t *self)
833
+ {
834
+ assert (self);
835
+ zframe_t *frame = zmsg_pop (self);
836
+ zframe_t *empty = zmsg_first (self);
837
+ if (empty && zframe_size (empty) == 0) {
838
+ empty = zmsg_pop (self);
839
+ zframe_destroy (&empty);
840
+ }
841
+ return frame;
842
+ }
843
+
844
+
845
+ // --------------------------------------------------------------------------
846
+ // DEPRECATED as poor style -- callers should use zloop or zpoller
847
+ // Receive message from socket, returns zmsg_t object, or NULL either if
848
+ // there was no input waiting, or the recv was interrupted.
849
+
850
+ zmsg_t *
851
+ zmsg_recv_nowait (void *source)
852
+ {
853
+ assert (source);
854
+ zmsg_t *self = zmsg_new ();
855
+ if (!self)
856
+ return NULL;
857
+
858
+ while (true) {
859
+ zframe_t *frame = zframe_recv_nowait (source);
860
+ if (!frame) {
861
+ if (errno == EINTR && zlist_head (self->frames))
862
+ continue;
863
+ else {
864
+ zmsg_destroy (&self);
865
+ break; // Interrupted or terminated
866
+ }
867
+ }
868
+ #if defined (ZMQ_SERVER)
869
+ // Grab routing ID if we're reading from a SERVER socket (ZMQ 4.2 and later)
870
+ if (zsock_type (source) == ZMQ_SERVER)
871
+ self->routing_id = zframe_routing_id (frame);
872
+ #endif
873
+ if (zmsg_append (self, &frame)) {
874
+ zmsg_destroy (&self);
875
+ break;
876
+ }
877
+ if (!zsock_rcvmore (source))
878
+ break; // Last message frame
879
+ }
880
+ return self;
881
+ }
882
+
883
+
884
+ // --------------------------------------------------------------------------
885
+ // DEPRECATED as unsafe -- does not nullify frame reference.
886
+ // Push frame plus empty frame to front of message, before first frame.
887
+ // Message takes ownership of frame, will destroy it when message is sent.
888
+
889
+ void
890
+ zmsg_wrap (zmsg_t *self, zframe_t *frame)
891
+ {
892
+ assert (self);
893
+ assert (frame);
894
+ if (zmsg_pushmem (self, "", 0) == 0)
895
+ zmsg_push (self, frame);
896
+ }
897
+
898
+
899
+ // --------------------------------------------------------------------------
900
+ // DEPRECATED by zmsg_prepend ().
901
+ // Push frame to the front of the message, i.e. before all other frames.
902
+ // Message takes ownership of frame, will destroy it when message is sent.
903
+ // Returns 0 on success, -1 on error.
904
+
905
+ int
906
+ zmsg_push (zmsg_t *self, zframe_t *frame)
907
+ {
908
+ assert (self);
909
+ assert (frame);
910
+ self->content_size += zframe_size (frame);
911
+ zlist_push (self->frames, frame);
912
+ return 0;
913
+ }
914
+
915
+
916
+ // --------------------------------------------------------------------------
917
+ // DEPRECATED by zmsg_append ().
918
+ // Add frame to the end of the message, i.e. after all other frames.
919
+ // Message takes ownership of frame, will destroy it when message is sent.
920
+ // Returns 0 on success.
921
+
922
+ int
923
+ zmsg_add (zmsg_t *self, zframe_t *frame)
924
+ {
925
+ assert (self);
926
+ assert (frame);
927
+ self->content_size += zframe_size (frame);
928
+ zlist_append (self->frames, frame);
929
+ return 0;
930
+ }
931
+
932
+
933
+ // --------------------------------------------------------------------------
934
+ // DEPRECATED as inconsistent; breaks principle that logging should all go
935
+ // to a single destination.
936
+ // Dump message to FILE stream, for debugging and tracing.
937
+ // Truncates to first 10 frames, for readability.
938
+
939
+ void
940
+ zmsg_fprint (zmsg_t *self, FILE *file)
941
+ {
942
+ assert (self);
943
+ assert (zmsg_is (self));
944
+
945
+ fprintf (file, "--------------------------------------\n");
946
+ if (!self) {
947
+ fprintf (file, "NULL");
948
+ return;
949
+ }
950
+ zframe_t *frame = zmsg_first (self);
951
+ int frame_nbr = 0;
952
+ while (frame && frame_nbr++ < 10) {
953
+ zframe_fprint (frame, NULL, file);
954
+ frame = zmsg_next (self);
955
+ }
956
+ }
957
+
958
+
959
+ // --------------------------------------------------------------------------
960
+ // Selftest
961
+
962
+ void
963
+ zmsg_test (bool verbose)
964
+ {
965
+ printf (" * zmsg: ");
966
+
967
+ int rc = 0;
968
+ // @selftest
969
+ // Create two PAIR sockets and connect over inproc
970
+ zsock_t *output = zsock_new_pair ("@inproc://zmsg.test");
971
+ assert (output);
972
+ zsock_t *input = zsock_new_pair (">inproc://zmsg.test");
973
+ assert (input);
974
+
975
+ // Test send and receive of single-frame message
976
+ zmsg_t *msg = zmsg_new ();
977
+ assert (msg);
978
+ zframe_t *frame = zframe_new ("Hello", 5);
979
+ assert (frame);
980
+ zmsg_prepend (msg, &frame);
981
+ assert (zmsg_size (msg) == 1);
982
+ assert (zmsg_content_size (msg) == 5);
983
+ rc = zmsg_send (&msg, output);
984
+ assert (msg == NULL);
985
+ assert (rc == 0);
986
+
987
+ msg = zmsg_recv (input);
988
+ assert (msg);
989
+ assert (zmsg_size (msg) == 1);
990
+ assert (zmsg_content_size (msg) == 5);
991
+ zmsg_destroy (&msg);
992
+
993
+ // Test send and receive of multi-frame message
994
+ msg = zmsg_new ();
995
+ assert (msg);
996
+ rc = zmsg_addmem (msg, "Frame0", 6);
997
+ assert (rc == 0);
998
+ rc = zmsg_addmem (msg, "Frame1", 6);
999
+ assert (rc == 0);
1000
+ rc = zmsg_addmem (msg, "Frame2", 6);
1001
+ assert (rc == 0);
1002
+ rc = zmsg_addmem (msg, "Frame3", 6);
1003
+ assert (rc == 0);
1004
+ rc = zmsg_addmem (msg, "Frame4", 6);
1005
+ assert (rc == 0);
1006
+ rc = zmsg_addmem (msg, "Frame5", 6);
1007
+ assert (rc == 0);
1008
+ rc = zmsg_addmem (msg, "Frame6", 6);
1009
+ assert (rc == 0);
1010
+ rc = zmsg_addmem (msg, "Frame7", 6);
1011
+ assert (rc == 0);
1012
+ rc = zmsg_addmem (msg, "Frame8", 6);
1013
+ assert (rc == 0);
1014
+ rc = zmsg_addmem (msg, "Frame9", 6);
1015
+ assert (rc == 0);
1016
+ zmsg_t *copy = zmsg_dup (msg);
1017
+ assert (copy);
1018
+ rc = zmsg_send (&copy, output);
1019
+ assert (rc == 0);
1020
+ rc = zmsg_send (&msg, output);
1021
+ assert (rc == 0);
1022
+
1023
+ copy = zmsg_recv (input);
1024
+ assert (copy);
1025
+ assert (zmsg_size (copy) == 10);
1026
+ assert (zmsg_content_size (copy) == 60);
1027
+ zmsg_destroy (&copy);
1028
+
1029
+ msg = zmsg_recv (input);
1030
+ assert (msg);
1031
+ assert (zmsg_size (msg) == 10);
1032
+ assert (zmsg_content_size (msg) == 60);
1033
+
1034
+ // Save to a file, read back
1035
+ FILE *file = fopen ("zmsg.test", "w");
1036
+ assert (file);
1037
+ rc = zmsg_save (msg, file);
1038
+ assert (rc == 0);
1039
+ fclose (file);
1040
+
1041
+ file = fopen ("zmsg.test", "r");
1042
+ rc = zmsg_save (msg, file);
1043
+ assert (rc == -1);
1044
+ fclose (file);
1045
+ zmsg_destroy (&msg);
1046
+
1047
+ file = fopen ("zmsg.test", "r");
1048
+ msg = zmsg_load (file);
1049
+ assert (msg);
1050
+ fclose (file);
1051
+ remove ("zmsg.test");
1052
+ assert (zmsg_size (msg) == 10);
1053
+ assert (zmsg_content_size (msg) == 60);
1054
+
1055
+ // Remove all frames except first and last
1056
+ int frame_nbr;
1057
+ for (frame_nbr = 0; frame_nbr < 8; frame_nbr++) {
1058
+ zmsg_first (msg);
1059
+ frame = zmsg_next (msg);
1060
+ zmsg_remove (msg, frame);
1061
+ zframe_destroy (&frame);
1062
+ }
1063
+ // Test message frame manipulation
1064
+ assert (zmsg_size (msg) == 2);
1065
+ frame = zmsg_last (msg);
1066
+ assert (zframe_streq (frame, "Frame9"));
1067
+ assert (zmsg_content_size (msg) == 12);
1068
+ frame = zframe_new ("Address", 7);
1069
+ assert (frame);
1070
+ zmsg_prepend (msg, &frame);
1071
+ assert (zmsg_size (msg) == 3);
1072
+ rc = zmsg_addstr (msg, "Body");
1073
+ assert (rc == 0);
1074
+ assert (zmsg_size (msg) == 4);
1075
+ frame = zmsg_pop (msg);
1076
+ zframe_destroy (&frame);
1077
+ assert (zmsg_size (msg) == 3);
1078
+ char *body = zmsg_popstr (msg);
1079
+ assert (streq (body, "Frame0"));
1080
+ freen (body);
1081
+ zmsg_destroy (&msg);
1082
+
1083
+ // Test encoding/decoding
1084
+ msg = zmsg_new ();
1085
+ assert (msg);
1086
+ byte *blank = (byte *) zmalloc (100000);
1087
+ assert (blank);
1088
+ rc = zmsg_addmem (msg, blank, 0);
1089
+ assert (rc == 0);
1090
+ rc = zmsg_addmem (msg, blank, 1);
1091
+ assert (rc == 0);
1092
+ rc = zmsg_addmem (msg, blank, 253);
1093
+ assert (rc == 0);
1094
+ rc = zmsg_addmem (msg, blank, 254);
1095
+ assert (rc == 0);
1096
+ rc = zmsg_addmem (msg, blank, 255);
1097
+ assert (rc == 0);
1098
+ rc = zmsg_addmem (msg, blank, 256);
1099
+ assert (rc == 0);
1100
+ rc = zmsg_addmem (msg, blank, 65535);
1101
+ assert (rc == 0);
1102
+ rc = zmsg_addmem (msg, blank, 65536);
1103
+ assert (rc == 0);
1104
+ rc = zmsg_addmem (msg, blank, 65537);
1105
+ assert (rc == 0);
1106
+ freen (blank);
1107
+ assert (zmsg_size (msg) == 9);
1108
+ frame = zmsg_encode (msg);
1109
+ zmsg_destroy (&msg);
1110
+ msg = zmsg_decode (frame);
1111
+ assert (msg);
1112
+ zmsg_destroy (&msg);
1113
+ zframe_destroy (&frame);
1114
+
1115
+ // Test submessages
1116
+ msg = zmsg_new ();
1117
+ assert (msg);
1118
+ zmsg_t *submsg = zmsg_new ();
1119
+ zmsg_pushstr (msg, "matr");
1120
+ zmsg_pushstr (submsg, "joska");
1121
+ rc = zmsg_addmsg (msg, &submsg);
1122
+ assert (rc == 0);
1123
+ assert (submsg == NULL);
1124
+ submsg = zmsg_popmsg (msg);
1125
+ assert (submsg == NULL); // string "matr" is not encoded zmsg_t, so was discarded
1126
+ submsg = zmsg_popmsg (msg);
1127
+ assert (submsg);
1128
+ body = zmsg_popstr (submsg);
1129
+ assert (streq (body, "joska"));
1130
+ freen (body);
1131
+ zmsg_destroy (&submsg);
1132
+ frame = zmsg_pop (msg);
1133
+ assert (frame == NULL);
1134
+ zmsg_destroy (&msg);
1135
+
1136
+ // Test comparison of two messages
1137
+ msg = zmsg_new ();
1138
+ zmsg_addstr (msg, "One");
1139
+ zmsg_addstr (msg, "Two");
1140
+ zmsg_addstr (msg, "Three");
1141
+ zmsg_t *msg_other = zmsg_new ();
1142
+ zmsg_addstr (msg_other, "One");
1143
+ zmsg_addstr (msg_other, "Two");
1144
+ zmsg_addstr (msg_other, "One-Hundred");
1145
+ zmsg_t *msg_dup = zmsg_dup (msg);
1146
+ zmsg_t *empty_msg = zmsg_new ();
1147
+ zmsg_t *empty_msg_2 = zmsg_new ();
1148
+ assert (zmsg_eq (msg, msg_dup));
1149
+ assert (!zmsg_eq (msg, msg_other));
1150
+ assert (zmsg_eq (empty_msg, empty_msg_2));
1151
+ assert (!zmsg_eq (msg, NULL));
1152
+ assert (!zmsg_eq (NULL, empty_msg));
1153
+ assert (!zmsg_eq (NULL, NULL));
1154
+ zmsg_destroy (&msg);
1155
+ zmsg_destroy (&msg_other);
1156
+ zmsg_destroy (&msg_dup);
1157
+ zmsg_destroy (&empty_msg);
1158
+ zmsg_destroy (&empty_msg_2);
1159
+
1160
+ // Test signal messages
1161
+ msg = zmsg_new_signal (0);
1162
+ assert (zmsg_signal (msg) == 0);
1163
+ zmsg_destroy (&msg);
1164
+ msg = zmsg_new_signal (-1);
1165
+ assert (zmsg_signal (msg) == 255);
1166
+ zmsg_destroy (&msg);
1167
+
1168
+ // Now try methods on an empty message
1169
+ msg = zmsg_new ();
1170
+ assert (msg);
1171
+ assert (zmsg_size (msg) == 0);
1172
+ assert (zmsg_unwrap (msg) == NULL);
1173
+ assert (zmsg_first (msg) == NULL);
1174
+ assert (zmsg_last (msg) == NULL);
1175
+ assert (zmsg_next (msg) == NULL);
1176
+ assert (zmsg_pop (msg) == NULL);
1177
+ // Sending an empty message is valid and destroys the message
1178
+ assert (zmsg_send (&msg, output) == 0);
1179
+ assert (!msg);
1180
+
1181
+ zsock_destroy (&input);
1182
+ zsock_destroy (&output);
1183
+
1184
+ #if defined (ZMQ_SERVER)
1185
+ // Create server and client sockets and connect over inproc
1186
+ zsock_t *server = zsock_new_server ("inproc://zmsg-test-routing");
1187
+ assert (server);
1188
+ zsock_t *client = zsock_new_client ("inproc://zmsg-test-routing");
1189
+ assert (client);
1190
+
1191
+ // Send request from client to server
1192
+ zmsg_t *request = zmsg_new ();
1193
+ assert (request);
1194
+ zmsg_addstr (request, "Hello");
1195
+ rc = zmsg_send (&request, client);
1196
+ assert (rc == 0);
1197
+ assert (!request);
1198
+
1199
+ // Read request and send reply
1200
+ request = zmsg_recv (server);
1201
+ assert (request);
1202
+ char *string = zmsg_popstr (request);
1203
+ assert (streq (string, "Hello"));
1204
+ assert (zmsg_routing_id (request));
1205
+ zstr_free (&string);
1206
+
1207
+ zmsg_t *reply = zmsg_new ();
1208
+ assert (reply);
1209
+ zmsg_addstr (reply, "World");
1210
+ zmsg_set_routing_id (reply, zmsg_routing_id (request));
1211
+ rc = zmsg_send (&reply, server);
1212
+ assert (rc == 0);
1213
+ zmsg_destroy (&request);
1214
+
1215
+ // Read reply
1216
+ reply = zmsg_recv (client);
1217
+ string = zmsg_popstr (reply);
1218
+ assert (streq (string, "World"));
1219
+ assert (zmsg_routing_id (reply) == 0);
1220
+ zmsg_destroy (&reply);
1221
+ zstr_free (&string);
1222
+
1223
+ // Client and server disallow multipart
1224
+ msg = zmsg_new ();
1225
+ zmsg_addstr (msg, "One");
1226
+ zmsg_addstr (msg, "Two");
1227
+ rc = zmsg_send (&msg, client);
1228
+ assert (rc == -1);
1229
+ assert (zmsg_size (msg) == 2);
1230
+ rc = zmsg_send (&msg, server);
1231
+ assert (rc == -1);
1232
+ assert (zmsg_size (msg) == 2);
1233
+ zmsg_destroy (&msg);
1234
+
1235
+ zsock_destroy (&client);
1236
+ zsock_destroy (&server);
1237
+ #endif
1238
+
1239
+ // Test message length calculation after removal
1240
+ msg = zmsg_new ();
1241
+ zmsg_addstr (msg, "One");
1242
+ zmsg_addstr (msg, "Two");
1243
+ size_t size_before = zmsg_content_size (msg);
1244
+ frame = zframe_new ("Three", strlen ("Three"));
1245
+ assert (frame);
1246
+ zmsg_remove (msg, frame);
1247
+ size_t size_after = zmsg_content_size (msg);
1248
+ assert (size_before == size_after);
1249
+ zframe_destroy (&frame);
1250
+ zmsg_destroy (&msg);
1251
+
1252
+ #if defined (__WINDOWS__)
1253
+ zsys_shutdown();
1254
+ #endif
1255
+
1256
+ // @end
1257
+ printf ("OK\n");
1258
+ }