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,227 @@
1
+ /* =========================================================================
2
+ zdir_patch - work with directory patches
3
+ A patch is a change to the directory (create/delete).
4
+
5
+ Copyright (c) the Contributors as noted in the AUTHORS file.
6
+ This file is part of CZMQ, the high-level C binding for 0MQ:
7
+ http://czmq.zeromq.org.
8
+
9
+ This Source Code Form is subject to the terms of the Mozilla Public
10
+ License, v. 2.0. If a copy of the MPL was not distributed with this
11
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
12
+ =========================================================================
13
+ */
14
+
15
+ /*
16
+ @header
17
+ The zdir_patch class works with one patch, which says "create this
18
+ file" or "delete this file" (referring to a zfile item each time).
19
+ @discuss
20
+ @end
21
+ */
22
+
23
+ #include "czmq_classes.h"
24
+
25
+ // Structure of our class
26
+ // If you modify this beware to also change _dup
27
+
28
+ struct _zdir_patch_t {
29
+ char *path; // Directory path
30
+ char *vpath; // Virtual file path
31
+ zfile_t *file; // File we refer to
32
+ int op; // Operation
33
+ char *digest; // File SHA-1 digest
34
+ };
35
+
36
+
37
+ // --------------------------------------------------------------------------
38
+ // Constructor
39
+ // Create new patch, create virtual path from alias
40
+
41
+ zdir_patch_t *
42
+ zdir_patch_new (const char *path, zfile_t *file, int op, const char *alias)
43
+ {
44
+ zdir_patch_t *self = (zdir_patch_t *) zmalloc (sizeof (zdir_patch_t));
45
+ assert (self);
46
+ self->path = strdup (path);
47
+ assert (self->path);
48
+ self->file = zfile_dup (file);
49
+ assert (self->file);
50
+ self->op = op;
51
+
52
+ // Calculate virtual path for patch (remove path, prefix alias)
53
+ const char *filename = zfile_filename (file, path);
54
+ assert (filename);
55
+ assert (*filename != '/');
56
+
57
+ self->vpath = (char *) zmalloc (strlen (alias) + strlen (filename) + 2);
58
+ assert (self->vpath);
59
+
60
+ if (strlen (alias) && alias [strlen (alias) - 1] == '/')
61
+ sprintf (self->vpath, "%s%s", alias, filename);
62
+ else
63
+ sprintf (self->vpath, "%s/%s", alias, filename);
64
+ return self;
65
+ }
66
+
67
+
68
+ // --------------------------------------------------------------------------
69
+ // Destroy a patch
70
+
71
+ void
72
+ zdir_patch_destroy (zdir_patch_t **self_p)
73
+ {
74
+ assert (self_p);
75
+ if (*self_p) {
76
+ zdir_patch_t *self = *self_p;
77
+ freen (self->path);
78
+ freen (self->vpath);
79
+ freen (self->digest);
80
+ zfile_destroy (&self->file);
81
+ freen (self);
82
+ *self_p = NULL;
83
+ }
84
+ }
85
+
86
+
87
+ // --------------------------------------------------------------------------
88
+ // Create copy of a patch. If the patch is null, or memory was exhausted,
89
+ // returns null.
90
+
91
+ zdir_patch_t *
92
+ zdir_patch_dup (zdir_patch_t *self)
93
+ {
94
+ if (self) {
95
+ zdir_patch_t *copy = (zdir_patch_t *) zmalloc (sizeof (zdir_patch_t));
96
+ if (copy) {
97
+ copy->op = self->op;
98
+ copy->path = strdup (self->path);
99
+ if (copy->path)
100
+ copy->file = zfile_dup (self->file);
101
+ if (copy->file)
102
+ copy->vpath = strdup (self->vpath);
103
+ if (copy->vpath)
104
+ // Don't recalculate hash when we duplicate patch
105
+ copy->digest = self->digest? strdup (self->digest): NULL;
106
+
107
+ if (copy->digest == NULL && copy->op != patch_delete)
108
+ zdir_patch_destroy (&copy);
109
+ }
110
+ return copy;
111
+ }
112
+ else
113
+ return NULL;
114
+ }
115
+
116
+
117
+ // --------------------------------------------------------------------------
118
+ // Return patch file directory path
119
+
120
+ const char *
121
+ zdir_patch_path (zdir_patch_t *self)
122
+ {
123
+ assert (self);
124
+ return self->path;
125
+ }
126
+
127
+
128
+ // --------------------------------------------------------------------------
129
+ // Return patch file item
130
+
131
+ zfile_t *
132
+ zdir_patch_file (zdir_patch_t *self)
133
+ {
134
+ assert (self);
135
+ return self->file;
136
+ }
137
+
138
+
139
+ // --------------------------------------------------------------------------
140
+ // Return operation
141
+
142
+ int
143
+ zdir_patch_op (zdir_patch_t *self)
144
+ {
145
+ assert (self);
146
+ return self->op;
147
+ }
148
+
149
+
150
+ // --------------------------------------------------------------------------
151
+ // Return patch virtual file path
152
+
153
+ const char *
154
+ zdir_patch_vpath (zdir_patch_t *self)
155
+ {
156
+ assert (self);
157
+ return self->vpath;
158
+ }
159
+
160
+
161
+ // --------------------------------------------------------------------------
162
+ // Calculate hash digest for file (create only)
163
+
164
+ void
165
+ zdir_patch_digest_set (zdir_patch_t *self)
166
+ {
167
+ if (self->op == patch_create
168
+ && self->digest == NULL) {
169
+ self->digest = strdup (zfile_digest (self->file));
170
+ assert (self->digest);
171
+ }
172
+
173
+ }
174
+
175
+
176
+ // --------------------------------------------------------------------------
177
+ // Return hash digest for patch file (create only)
178
+
179
+ const char *
180
+ zdir_patch_digest (zdir_patch_t *self)
181
+ {
182
+ assert (self);
183
+ return self->digest;
184
+ }
185
+
186
+
187
+ // --------------------------------------------------------------------------
188
+ // Self test of this class
189
+
190
+ void
191
+ zdir_patch_test (bool verbose)
192
+ {
193
+ printf (" * zdir_patch: ");
194
+
195
+ // @selftest
196
+
197
+ const char *SELFTEST_DIR_RW = "src/selftest-rw";
198
+
199
+ const char *testfile = "bilbo";
200
+ const char *prefix = "/";
201
+ char *prefixed_testfile = zsys_sprintf ("%s%s", prefix, testfile);
202
+ assert (prefixed_testfile);
203
+
204
+ // Make sure old aborted tests do not hinder us
205
+ zsys_file_delete (prefixed_testfile);
206
+
207
+ zfile_t *file = zfile_new (SELFTEST_DIR_RW, testfile);
208
+ assert (file);
209
+ zdir_patch_t *patch = zdir_patch_new (SELFTEST_DIR_RW, file, patch_create, prefix);
210
+ assert (patch);
211
+ zfile_destroy (&file);
212
+
213
+ file = zdir_patch_file (patch);
214
+ assert (file);
215
+ assert (streq (zfile_filename (file, SELFTEST_DIR_RW), testfile));
216
+ assert (streq (zdir_patch_vpath (patch), prefixed_testfile));
217
+ zdir_patch_destroy (&patch);
218
+
219
+ zstr_free (&prefixed_testfile);
220
+
221
+ #if defined (__WINDOWS__)
222
+ zsys_shutdown();
223
+ #endif
224
+ // @end
225
+
226
+ printf ("OK\n");
227
+ }
@@ -0,0 +1,920 @@
1
+ /* =========================================================================
2
+ zfile - provides methods to work with files in a portable fashion.
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 zfile class provides methods to work with disk files. A file object
17
+ provides the modified date, current size, and type of the file. You can
18
+ create a file object for a filename that does not yet exist. To read or
19
+ write data from the file, use the input and output methods, and then
20
+ read and write chunks. The output method lets you both read and write
21
+ chunks, at any offset. Finally, this class provides portable symbolic
22
+ links. If a filename ends in ".ln", the first line of text in the file
23
+ is read, and used as the underlying file for read/write operations.
24
+ This lets you manipulate (e.g.) copy symbolic links without copying
25
+ the perhaps very large files they point to.
26
+ @discuss
27
+ This class is a new API, deprecating the old zfile class (which still
28
+ exists but is implemented in zsys now).
29
+ @end
30
+ */
31
+
32
+ #include "czmq_classes.h"
33
+
34
+ // Structure of our class
35
+
36
+ struct _zfile_t {
37
+ // Properties for all file objects
38
+ char *fullname; // File name with path
39
+ char *link; // Optional linked file
40
+ bool exists; // true if file exists
41
+ bool stable; // true if file is stable
42
+ bool eof; // true if at end of file
43
+ FILE *handle; // Read/write handle
44
+ zdigest_t *digest; // File digest, if known
45
+ char *curline; // Last read line, if any
46
+ size_t linemax; // Size of allocated buffer
47
+ bool remove_on_destroy; // Whenever delete file on destroy
48
+ // Typically for tempfiles
49
+ int fd; // File descriptor - set up by zfile_tmp
50
+ bool close_fd; // XXX: for some reason self->fd == 0 in
51
+ // zdir and zdir_patch tests, this is a
52
+ // workaround for the problem
53
+
54
+ // Properties from files that exist on file system
55
+ time_t modified; // Modification time
56
+ off_t cursize; // Size of the file
57
+ mode_t mode; // POSIX permission bits
58
+ };
59
+
60
+
61
+ // --------------------------------------------------------------------------
62
+ // Constructor
63
+ // If file exists, populates properties. CZMQ supports portable symbolic
64
+ // links, which are files with the extension ".ln". A symbolic link is a
65
+ // text file containing one line, the filename of a target file. Reading
66
+ // data from the symbolic link actually reads from the target file. Path
67
+ // may be NULL, in which case it is not used.
68
+
69
+ zfile_t *
70
+ zfile_new (const char *path, const char *name)
71
+ {
72
+ zfile_t *self = (zfile_t *) zmalloc (sizeof (zfile_t));
73
+ assert (self);
74
+
75
+ // Format full path to file
76
+ if (path) {
77
+ self->fullname = (char *) zmalloc (strlen (path) + strlen (name) + 2);
78
+ assert (self->fullname);
79
+ sprintf (self->fullname, "%s/%s", path, name);
80
+ }
81
+ else
82
+ self->fullname = strdup (name);
83
+
84
+ // Resolve symbolic link if possible
85
+ if (strlen (self->fullname) > 3
86
+ && streq (self->fullname + strlen (self->fullname) - 3, ".ln")) {
87
+ FILE *handle = fopen (self->fullname, "r");
88
+ if (handle) {
89
+ char buffer [256];
90
+ if (fgets (buffer, 256, handle)) {
91
+ // We have the contents of the symbolic link
92
+ if (buffer [strlen (buffer) - 1] == '\n')
93
+ buffer [strlen (buffer) - 1] = 0;
94
+ self->link = strdup (buffer);
95
+
96
+ // Chop ".ln" off name for external use
97
+ if (self->link)
98
+ self->fullname [strlen (self->fullname) - 3] = 0;
99
+ else {
100
+ fclose (handle);
101
+ zfile_destroy (&self);
102
+ return NULL;
103
+ }
104
+ }
105
+ fclose (handle);
106
+ }
107
+ }
108
+ self->handle = 0;
109
+ zfile_restat (self);
110
+ self->fd = -1;
111
+ self->close_fd = false;
112
+ return self;
113
+ }
114
+
115
+ // --------------------------------------------------------------------------
116
+ // Constructor
117
+ // Create new temporary file for writing via tmpfile. File is automaticaly
118
+ // deleted on destroy
119
+
120
+ zfile_t *
121
+ zfile_tmp (void)
122
+ {
123
+ zfile_t *self = NULL;
124
+
125
+ #if defined (__WINDOWS__)
126
+ DWORD result;
127
+ UINT value;
128
+ char name [MAX_PATH];
129
+ char path [MAX_PATH];
130
+
131
+ result = GetTempPathA (MAX_PATH, path);
132
+ if (result > MAX_PATH || (result == 0))
133
+ return NULL;
134
+
135
+ value = GetTempFileNameA (path, "CZMQ_ZFILE", 0, name);
136
+ if (value == 0)
137
+ return NULL;
138
+
139
+ self = (zfile_t *) zmalloc (sizeof (zfile_t));
140
+ assert (self);
141
+ self->fullname = strdup (name);
142
+ self->handle = fopen (self->fullname, "w");
143
+ #else
144
+ char buffer [PATH_MAX];
145
+ strcpy (buffer, "/tmp/czmq_zfile.XXXXXX");
146
+ int fd = mkstemp (buffer);
147
+ if (fd == -1)
148
+ return NULL;
149
+
150
+ self = (zfile_t *) zmalloc (sizeof (zfile_t));
151
+ assert (self);
152
+ self->fd = fd;
153
+ self->close_fd = true;
154
+ self->fullname = strdup (buffer);
155
+ self->handle = fdopen (self->fd, "w");
156
+ #endif
157
+
158
+ if (!self->handle) {
159
+ if (self->close_fd)
160
+ close (self->fd);
161
+ zstr_free (&self->fullname);
162
+ free (self);
163
+ return NULL;
164
+ }
165
+ self->remove_on_destroy = true;
166
+ zfile_restat (self);
167
+ return self;
168
+ }
169
+
170
+ // --------------------------------------------------------------------------
171
+ // Destroy a file item
172
+
173
+ void
174
+ zfile_destroy (zfile_t **self_p)
175
+ {
176
+ assert (self_p);
177
+ if (*self_p) {
178
+ zfile_t *self = *self_p;
179
+ zdigest_destroy (&self->digest);
180
+ if (self->remove_on_destroy)
181
+ zfile_remove (self);
182
+ zfile_close (self);
183
+ freen (self->fullname);
184
+ freen (self->curline);
185
+ freen (self->link);
186
+ freen (self);
187
+ *self_p = NULL;
188
+ }
189
+ }
190
+
191
+
192
+ // --------------------------------------------------------------------------
193
+ // Duplicate a file item, returns a newly constructed item. If the file
194
+ // is null, or memory was exhausted, returns null.
195
+
196
+ zfile_t *
197
+ zfile_dup (zfile_t *self)
198
+ {
199
+ if (self) {
200
+ zfile_t *copy = (zfile_t *) zmalloc (sizeof (zfile_t));
201
+ assert (copy);
202
+ copy->fullname = strdup (self->fullname);
203
+ assert (copy->fullname);
204
+ copy->modified = self->modified;
205
+ copy->cursize = self->cursize;
206
+ copy->link = self->link? strdup (self->link): NULL;
207
+ copy->mode = self->mode;
208
+ return copy;
209
+ }
210
+ else
211
+ return NULL;
212
+ }
213
+
214
+
215
+ // --------------------------------------------------------------------------
216
+ // Return file name, remove path if provided
217
+
218
+ const char *
219
+ zfile_filename (zfile_t *self, const char *path)
220
+ {
221
+ assert (self);
222
+ char *name = self->fullname;
223
+ if (path
224
+ && strlen (self->fullname) >= strlen (path)
225
+ && memcmp (self->fullname, path, strlen (path)) == 0) {
226
+ name += strlen (path);
227
+ while (*name == '/')
228
+ name++;
229
+ }
230
+ return name;
231
+ }
232
+
233
+
234
+ // --------------------------------------------------------------------------
235
+ // Refresh file properties from disk; this is not done automatically
236
+ // on access methods, otherwise it is not possible to compare directory
237
+ // snapshots.
238
+
239
+ void
240
+ zfile_restat (zfile_t *self)
241
+ {
242
+ assert (self);
243
+ struct stat stat_buf;
244
+ char *real_name = self->link? self->link: self->fullname;
245
+ if (stat (real_name, &stat_buf) == 0) {
246
+ self->cursize = stat_buf.st_size;
247
+ self->modified = stat_buf.st_mtime;
248
+ self->mode = zsys_file_mode (real_name);
249
+ self->stable = zsys_file_stable (real_name);
250
+ }
251
+ else {
252
+ if(self->handle) {
253
+ long cpos = ftell(self->handle);
254
+ fseek(self->handle, 0L, SEEK_END);
255
+ self->cursize = ftell(self->handle);
256
+ fseek(self->handle, cpos, SEEK_SET);
257
+ } else {
258
+ self->cursize = 0;
259
+ }
260
+ self->modified = 0;
261
+ self->mode = 0;
262
+ self->stable = false;
263
+ }
264
+ zdigest_destroy (&self->digest);
265
+ }
266
+
267
+
268
+ // --------------------------------------------------------------------------
269
+ // Return when the file was last modified. If you want this to reflect the
270
+ // current situation, call zfile_restat before checking this property.
271
+
272
+ time_t
273
+ zfile_modified (zfile_t *self)
274
+ {
275
+ assert (self);
276
+ return self->modified;
277
+ }
278
+
279
+
280
+ // --------------------------------------------------------------------------
281
+ // Return the last-known size of the file. If you want this to reflect the
282
+ // current situation, call zfile_restat before checking this property.
283
+
284
+ off_t
285
+ zfile_cursize (zfile_t *self)
286
+ {
287
+ assert (self);
288
+ return self->cursize;
289
+ }
290
+
291
+
292
+ // --------------------------------------------------------------------------
293
+ // Return true if the file is a directory. If you want this to reflect
294
+ // any external changes, call zfile_restat before checking this property.
295
+
296
+ bool
297
+ zfile_is_directory (zfile_t *self)
298
+ {
299
+ assert (self);
300
+ return S_ISDIR (self->mode);
301
+ }
302
+
303
+
304
+ // --------------------------------------------------------------------------
305
+ // Return true if the file is a regular file. If you want this to reflect
306
+ // any external changes, call zfile_restat before checking this property.
307
+
308
+ bool
309
+ zfile_is_regular (zfile_t *self)
310
+ {
311
+ assert (self);
312
+ return S_ISREG (self->mode);
313
+ }
314
+
315
+
316
+ // --------------------------------------------------------------------------
317
+ // Return true if the file is readable by this process. If you want this to
318
+ // reflect any external changes, call zfile_restat before checking this
319
+ // property.
320
+
321
+ bool
322
+ zfile_is_readable (zfile_t *self)
323
+ {
324
+ assert (self);
325
+ return (self->mode & S_IRUSR) != 0;
326
+ }
327
+
328
+
329
+ // --------------------------------------------------------------------------
330
+ // Return true if the file is writeable by this process. If you want this
331
+ // to reflect any external changes, call zfile_restat before checking this
332
+ // property.
333
+
334
+ bool
335
+ zfile_is_writeable (zfile_t *self)
336
+ {
337
+ assert (self);
338
+ return (self->mode & S_IWUSR) != 0;
339
+ }
340
+
341
+
342
+ // --------------------------------------------------------------------------
343
+ // Check if file has stopped changing and can be safely processed.
344
+ // If you want this to reflect the current situation, call zfile_restat
345
+ // before checking this property.
346
+
347
+ bool
348
+ zfile_is_stable (zfile_t *self)
349
+ {
350
+ assert (self);
351
+ return self->stable;
352
+ }
353
+
354
+
355
+ // --------------------------------------------------------------------------
356
+ // Return true if the file was changed on disk since the zfile_t object
357
+ // was created, or the last zfile_restat() call made on it. Note that the
358
+ // file will not necessarily yet be stable.
359
+
360
+ bool
361
+ zfile_has_changed (zfile_t *self)
362
+ {
363
+ assert (self);
364
+ struct stat stat_buf;
365
+ char *real_name = self->link? self->link: self->fullname;
366
+ if (stat (real_name, &stat_buf) == 0) {
367
+ // It's not a foolproof heuristic but catches most cases
368
+ if (stat_buf.st_mtime != self->modified
369
+ || stat_buf.st_size != self->cursize)
370
+ return true;
371
+ }
372
+ return false;
373
+ }
374
+
375
+
376
+ // --------------------------------------------------------------------------
377
+ // Remove the file
378
+
379
+ void
380
+ zfile_remove (zfile_t *self)
381
+ {
382
+ assert (self);
383
+ // Restore ".ln" in file name if this was a symbolic link
384
+ if (self->link)
385
+ self->fullname [strlen (self->fullname)] = '.';
386
+ zfile_close (self);
387
+ zsys_file_delete (self->fullname);
388
+ }
389
+
390
+
391
+ // --------------------------------------------------------------------------
392
+ // Open file for reading
393
+ // Returns 0 if OK, -1 if not found or not accessible
394
+
395
+ int
396
+ zfile_input (zfile_t *self)
397
+ {
398
+ assert (self);
399
+ if (self->handle)
400
+ zfile_close (self);
401
+
402
+ char *real_name = self->link? self->link: self->fullname;
403
+ self->handle = fopen (real_name, "rb");
404
+ if (self->handle) {
405
+ struct stat stat_buf;
406
+ if (stat (real_name, &stat_buf) == 0) {
407
+ self->cursize = stat_buf.st_size;
408
+ } else {
409
+ long cpos = ftell(self->handle);
410
+ fseek(self->handle, 0L, SEEK_END);
411
+ self->cursize = ftell(self->handle);
412
+ fseek(self->handle, cpos, SEEK_SET);
413
+ }
414
+ }
415
+ return self->handle? 0: -1;
416
+ }
417
+
418
+
419
+ // --------------------------------------------------------------------------
420
+ // Open file for writing, creating directory if needed
421
+ // File is created if necessary; chunks can be written to file at any
422
+ // location. Returns 0 if OK, -1 if error.
423
+
424
+ int
425
+ zfile_output (zfile_t *self)
426
+ {
427
+ int rc;
428
+ assert (self);
429
+
430
+ // Create file path if it doesn't exist
431
+ char *file_path = strdup (self->fullname);
432
+ if (!file_path)
433
+ return -1;
434
+ char *last_slash = strrchr (file_path, '/');
435
+ if (last_slash)
436
+ *last_slash = 0;
437
+
438
+ // Wipe symbolic link if that's what the file was
439
+ if (self->link) {
440
+ freen (self->link);
441
+ self->link = NULL;
442
+ }
443
+ rc = zsys_dir_create (file_path);
444
+ freen (file_path);
445
+ if (rc != 0)
446
+ return -1;
447
+
448
+ // Create file if it doesn't exist
449
+ if (self->handle)
450
+ zfile_close (self);
451
+
452
+ self->handle = fopen (self->fullname, "r+b");
453
+ if (!self->handle)
454
+ self->handle = fopen (self->fullname, "w+b");
455
+
456
+ return self->handle? 0: -1;
457
+ }
458
+
459
+
460
+ // --------------------------------------------------------------------------
461
+ // Read chunk from file at specified position. If this was the last chunk,
462
+ // sets the eof property. Returns a null chunk in case of error.
463
+
464
+ zchunk_t *
465
+ zfile_read (zfile_t *self, size_t bytes, off_t offset)
466
+ {
467
+ assert (self);
468
+ assert (self->handle);
469
+
470
+ self->eof = false;
471
+ // Calculate real number of bytes to read
472
+ if (offset > self->cursize) {
473
+ // if we tried to read 'after' the cursise, then we are at the end
474
+ bytes = 0;
475
+ self->eof = true;
476
+ }
477
+ else
478
+ if (bytes > (size_t) (self->cursize - offset)) {
479
+ // if we are trying to read more than there is, we are at the end
480
+ self->eof = true;
481
+ bytes = (size_t) (self->cursize - offset);
482
+ }
483
+
484
+ if (fseek (self->handle, (long) offset, SEEK_SET) == -1) {
485
+ return NULL;
486
+ }
487
+
488
+ return zchunk_read (self->handle, bytes);
489
+ }
490
+
491
+
492
+ // --------------------------------------------------------------------------
493
+ // Returns the eof property.
494
+
495
+ bool
496
+ zfile_eof (zfile_t *self)
497
+ {
498
+ assert (self);
499
+ return self->eof;
500
+ }
501
+
502
+
503
+ // --------------------------------------------------------------------------
504
+ // Write chunk to file at specified position
505
+ // Return 0 if OK, else -1
506
+
507
+ int
508
+ zfile_write (zfile_t *self, zchunk_t *chunk, off_t offset)
509
+ {
510
+ assert (self);
511
+ assert (self->handle);
512
+ int rc = fseek (self->handle, (long) offset, SEEK_SET);
513
+ if (rc >= 0)
514
+ rc = zchunk_write (chunk, self->handle);
515
+ return rc;
516
+ }
517
+
518
+
519
+ // --------------------------------------------------------------------------
520
+ // Read next line of text from file. Returns a pointer to the text line,
521
+ // or NULL if there was nothing more to read from the file.
522
+
523
+ const char *
524
+ zfile_readln (zfile_t *self)
525
+ {
526
+ assert (self);
527
+ assert (self->handle);
528
+
529
+ // Opportunistically allocate line buffer if needed; we'll grow this
530
+ // if needed, so the initial linemax is not a big deal
531
+ if (!self->curline) {
532
+ self->linemax = 512;
533
+ self->curline = (char *) malloc (self->linemax);
534
+ assert (self->curline);
535
+ }
536
+ uint char_nbr = 0;
537
+ while (true) {
538
+ int cur_char = fgetc (self->handle);
539
+ if (cur_char == '\r')
540
+ continue; // Skip CR in MS-DOS format files
541
+ else
542
+ if (cur_char == EOF && char_nbr == 0)
543
+ return NULL; // Signal end of file
544
+ else
545
+ if (cur_char == '\n' || cur_char == EOF)
546
+ cur_char = 0;
547
+ if (char_nbr == self->linemax - 1) {
548
+ self->linemax *= 2;
549
+ self->curline = (char *) realloc (self->curline, self->linemax);
550
+ }
551
+ self->curline [char_nbr++] = cur_char;
552
+ if (cur_char == 0)
553
+ break;
554
+ }
555
+ return self->curline;
556
+ }
557
+
558
+
559
+ // --------------------------------------------------------------------------
560
+ // Close file, if open
561
+
562
+ void
563
+ zfile_close (zfile_t *self)
564
+ {
565
+ assert (self);
566
+ if (self->handle) {
567
+ fclose (self->handle);
568
+ self->handle = 0;
569
+ zfile_restat (self);
570
+ self->eof = false;
571
+ }
572
+ if (self->close_fd)
573
+ close (self->fd);
574
+ }
575
+
576
+
577
+ // --------------------------------------------------------------------------
578
+ // Return file handle, if opened
579
+
580
+ FILE *
581
+ zfile_handle (zfile_t *self)
582
+ {
583
+ assert (self);
584
+ return self->handle;
585
+ }
586
+
587
+
588
+ // --------------------------------------------------------------------------
589
+ // Calculate SHA1 digest for file, using zdigest class.
590
+
591
+ const char *
592
+ zfile_digest (zfile_t *self)
593
+ {
594
+ assert (self);
595
+ if (!self->digest) {
596
+ if (zfile_input (self) == -1)
597
+ return NULL; // Problem reading file
598
+
599
+ // Now calculate hash for file data, chunk by chunk
600
+ long blocksz = 65535;
601
+ off_t offset = 0;
602
+
603
+ self->digest = zdigest_new ();
604
+ if (!self->digest)
605
+ return NULL;
606
+ zchunk_t *chunk = zfile_read (self, blocksz, offset);
607
+ while (zchunk_size (chunk)) {
608
+ zdigest_update (self->digest,
609
+ zchunk_data (chunk), zchunk_size (chunk));
610
+ zchunk_destroy (&chunk);
611
+
612
+ // off_t is defined as long (32 bit on Windows, 64 bit otherwise)
613
+ // This guards against overflow in both contexts.
614
+ if (blocksz > LONG_MAX - offset)
615
+ return NULL;
616
+
617
+ offset += blocksz;
618
+ chunk = zfile_read (self, (size_t) blocksz, offset);
619
+ }
620
+ zchunk_destroy (&chunk);
621
+ fclose (self->handle);
622
+ self->handle = 0;
623
+ }
624
+ return zdigest_string (self->digest);
625
+ }
626
+
627
+
628
+ // Deprecated API, moved to zsys class. The zfile class works with
629
+ // an object instance, which is more consistent with the CLASS style
630
+ // and lets us do more interesting things. These functions were
631
+ // essentially about portability, so now sit in zsys.
632
+
633
+ bool
634
+ zfile_exists (const char *filename)
635
+ {
636
+ return zsys_file_exists (filename);
637
+ }
638
+ ssize_t
639
+ zfile_size (const char *filename)
640
+ {
641
+ return zsys_file_size (filename);
642
+ }
643
+ mode_t
644
+ zfile_mode (const char *filename)
645
+ {
646
+ return zsys_file_mode (filename);
647
+ }
648
+ int
649
+ zfile_delete (const char *filename)
650
+ {
651
+ return zsys_file_delete (filename);
652
+ }
653
+ bool
654
+ zfile_stable (const char *filename)
655
+ {
656
+ return zsys_file_stable (filename);
657
+ }
658
+ int
659
+ zfile_mkdir (const char *pathname)
660
+ {
661
+ return zsys_dir_create (pathname);
662
+ }
663
+ int
664
+ zfile_rmdir (const char *pathname)
665
+ {
666
+ return zsys_dir_delete (pathname);
667
+ }
668
+ void
669
+ zfile_mode_private (void)
670
+ {
671
+ zsys_file_mode_private ();
672
+ }
673
+ void
674
+ zfile_mode_default (void)
675
+ {
676
+ zsys_file_mode_default ();
677
+ }
678
+
679
+
680
+ // --------------------------------------------------------------------------
681
+ // Self test of this class
682
+
683
+ void
684
+ zfile_test (bool verbose)
685
+ {
686
+ printf (" * zfile: ");
687
+
688
+ // @selftest
689
+
690
+ const char *SELFTEST_DIR_RW = "src/selftest-rw";
691
+
692
+ const char *testbasedir = "this";
693
+ const char *testsubdir = "is/a/test";
694
+ const char *testfile = "bilbo";
695
+ const char *testlink = "bilbo.ln";
696
+ char *basedirpath = NULL; // subdir in a test, under SELFTEST_DIR_RW
697
+ char *dirpath = NULL; // subdir in a test, under basedirpath
698
+ char *filepath = NULL; // pathname to testfile in a test, in dirpath
699
+ char *linkpath = NULL; // pathname to testlink in a test, in dirpath
700
+
701
+ basedirpath = zsys_sprintf ("%s/%s", SELFTEST_DIR_RW, testbasedir);
702
+ assert (basedirpath);
703
+ dirpath = zsys_sprintf ("%s/%s", basedirpath, testsubdir);
704
+ assert (dirpath);
705
+ filepath = zsys_sprintf ("%s/%s", dirpath, testfile);
706
+ assert (filepath);
707
+ linkpath = zsys_sprintf ("%s/%s", dirpath, testlink);
708
+ assert (linkpath);
709
+
710
+ // This subtest is specifically for NULL as current directory, so
711
+ // no SELFTEST_DIR_RW here; testfile should have no slashes inside.
712
+ // Normally tests clean up in zfile_destroy(), but if a selftest run
713
+ // dies e.g. on assert(), workspace remains dirty. Better clean it up.
714
+ if (zfile_exists (testfile) ) {
715
+ if (verbose)
716
+ zsys_debug ("zfile_test() has to remove ./%s that should not have been here", testfile);
717
+ zfile_delete (testfile);
718
+ }
719
+ zfile_t *file = zfile_new (NULL, testfile);
720
+ assert (file);
721
+ assert (streq (zfile_filename (file, "."), testfile));
722
+ assert (zfile_is_readable (file) == false);
723
+ zfile_destroy (&file);
724
+
725
+ // Create a test file in some random subdirectory
726
+ if (verbose)
727
+ zsys_debug ("zfile_test() at timestamp %" PRIi64 ": "
728
+ "Creating new zfile %s",
729
+ zclock_time(), filepath );
730
+
731
+ if (zfile_exists (filepath) ) {
732
+ if (verbose)
733
+ zsys_debug ("zfile_test() has to remove %s that should not have been here", filepath);
734
+ zfile_delete (filepath);
735
+ }
736
+
737
+ file = zfile_new (dirpath, testfile);
738
+ assert (file);
739
+ int rc = zfile_output (file);
740
+ assert (rc == 0);
741
+ zchunk_t *chunk = zchunk_new (NULL, 100);
742
+ assert (chunk);
743
+ zchunk_fill (chunk, 0, 100);
744
+
745
+ // Write 100 bytes at position 1,000,000 in the file
746
+ if (verbose)
747
+ zsys_debug ("zfile_test() at timestamp %" PRIi64 ": "
748
+ "Writing 100 bytes at position 1,000,000 in the file",
749
+ zclock_time() );
750
+ rc = zfile_write (file, chunk, 1000000);
751
+ if (verbose)
752
+ zsys_debug ("zfile_test() at timestamp %" PRIi64 ": "
753
+ "Wrote 100 bytes at position 1,000,000 in the file, result code %d",
754
+ zclock_time(), rc );
755
+ assert (rc == 0);
756
+ zchunk_destroy (&chunk);
757
+ zfile_close (file);
758
+ assert (zfile_is_readable (file));
759
+ assert (zfile_cursize (file) == 1000100);
760
+ if (verbose)
761
+ zsys_debug ("zfile_test() at timestamp %" PRIi64 ": "
762
+ "Testing if file is NOT stable (is younger than 1 sec)",
763
+ zclock_time() );
764
+ assert (!zfile_is_stable (file));
765
+ if (verbose)
766
+ zsys_debug ("zfile_test() at timestamp %" PRIi64 ": "
767
+ "Passed the lag-dependent tests",
768
+ zclock_time() );
769
+ assert (zfile_digest (file));
770
+
771
+ // Now truncate file from outside
772
+ int handle = open (filepath, O_WRONLY | O_TRUNC | O_BINARY, 0);
773
+ assert (handle >= 0);
774
+ rc = write (handle, "Hello, World\n", 13);
775
+ assert (rc == 13);
776
+ close (handle);
777
+ assert (zfile_has_changed (file));
778
+ #ifdef CZMQ_BUILD_DRAFT_API
779
+ zclock_sleep ((int)zsys_file_stable_age_msec() + 50);
780
+ #else
781
+ zclock_sleep (5050);
782
+ #endif
783
+ assert (zfile_has_changed (file));
784
+
785
+ assert (!zfile_is_stable (file));
786
+ zfile_restat (file);
787
+ assert (zfile_is_stable (file));
788
+ assert (streq (zfile_digest (file), "4AB299C8AD6ED14F31923DD94F8B5F5CB89DFB54"));
789
+
790
+ // Check we can read from file
791
+ rc = zfile_input (file);
792
+ assert (rc == 0);
793
+ chunk = zfile_read (file, 1000100, 0);
794
+ assert (chunk);
795
+ assert (zchunk_size (chunk) == 13);
796
+ zchunk_destroy (&chunk);
797
+ zfile_close (file);
798
+
799
+ // Check we can read lines from file
800
+ rc = zfile_input (file);
801
+ assert (rc == 0);
802
+ const char *line = zfile_readln (file);
803
+ assert (streq (line, "Hello, World"));
804
+ line = zfile_readln (file);
805
+ assert (line == NULL);
806
+ zfile_close (file);
807
+
808
+ // Try some fun with symbolic links
809
+ zfile_t *link = zfile_new (dirpath, testlink);
810
+ assert (link);
811
+ rc = zfile_output (link);
812
+ assert (rc == 0);
813
+ fprintf (zfile_handle (link), "%s\n", filepath);
814
+ zfile_destroy (&link);
815
+
816
+ link = zfile_new (dirpath, testlink);
817
+ assert (link);
818
+ rc = zfile_input (link);
819
+ assert (rc == 0);
820
+ chunk = zfile_read (link, 1000100, 0);
821
+ assert (chunk);
822
+ assert (zchunk_size (chunk) == 13);
823
+ zchunk_destroy (&chunk);
824
+ zfile_destroy (&link);
825
+
826
+ // Remove file and directory
827
+ zdir_t *dir = zdir_new (basedirpath, NULL);
828
+ assert (dir);
829
+ assert (zdir_cursize (dir) == 26);
830
+ zdir_remove (dir, true);
831
+ assert (zdir_cursize (dir) == 0);
832
+ zdir_destroy (&dir);
833
+
834
+ // Check we can no longer read from file
835
+ assert (zfile_is_readable (file));
836
+ zfile_restat (file);
837
+ assert (!zfile_is_readable (file));
838
+ rc = zfile_input (file);
839
+ assert (rc == -1);
840
+ zfile_destroy (&file);
841
+
842
+ // This set of tests is done, free the strings for reuse
843
+ zstr_free (&basedirpath);
844
+ zstr_free (&dirpath);
845
+ zstr_free (&filepath);
846
+ zstr_free (&linkpath);
847
+
848
+ const char *eof_checkfile = "eof_checkfile";
849
+ filepath = zsys_sprintf ("%s/%s", SELFTEST_DIR_RW, eof_checkfile);
850
+ assert (filepath);
851
+
852
+ if (zfile_exists (filepath) ) {
853
+ if (verbose)
854
+ zsys_debug ("zfile_test() has to remove %s that should not have been here", filepath);
855
+ zfile_delete (filepath);
856
+ }
857
+ zstr_free (&filepath);
858
+
859
+ file = zfile_new (SELFTEST_DIR_RW, eof_checkfile);
860
+ assert (file);
861
+
862
+ // 1. Write something first
863
+ rc = zfile_output (file);
864
+ assert (rc == 0);
865
+ chunk = zchunk_new ("123456789", 9);
866
+ assert (chunk);
867
+
868
+ rc = zfile_write (file, chunk, 0);
869
+ assert (rc == 0);
870
+ zchunk_destroy (&chunk);
871
+ zfile_close (file);
872
+ assert (zfile_cursize (file) == 9);
873
+
874
+ // 2. Read the written something
875
+ rc = zfile_input (file);
876
+ assert (rc != -1);
877
+ // try to read more bytes than there is in the file
878
+ chunk = zfile_read (file, 1000, 0);
879
+ assert (zfile_eof(file));
880
+ assert (zchunk_streq (chunk, "123456789"));
881
+ zchunk_destroy (&chunk);
882
+
883
+ // reading is ok
884
+ chunk = zfile_read (file, 5, 0);
885
+ assert (!zfile_eof(file));
886
+ assert (zchunk_streq (chunk, "12345"));
887
+ zchunk_destroy (&chunk);
888
+
889
+ // read from non zero offset until the end
890
+ chunk = zfile_read (file, 5, 5);
891
+ assert (zfile_eof(file));
892
+ assert (zchunk_streq (chunk, "6789"));
893
+ zchunk_destroy (&chunk);
894
+ zfile_remove (file);
895
+ zfile_close (file);
896
+ zfile_destroy (&file);
897
+
898
+ #ifdef CZMQ_BUILD_DRAFT_API
899
+ zfile_t *tempfile = zfile_tmp ();
900
+ assert (tempfile);
901
+ assert (zfile_filename (tempfile, NULL));
902
+ assert (zsys_file_exists (zfile_filename (tempfile, NULL)));
903
+ zchunk_t *tchunk = zchunk_new ("HELLO", 6);
904
+ assert (zfile_write (tempfile, tchunk, 0) == 0);
905
+ zchunk_destroy (&tchunk);
906
+
907
+ char *filename = strdup (zfile_filename (tempfile, NULL));
908
+ zfile_destroy (&tempfile);
909
+ assert (!zsys_file_exists (filename));
910
+ zstr_free (&filename);
911
+ #endif // CZMQ_BUILD_DRAFT_API
912
+
913
+ #if defined (__WINDOWS__)
914
+ zsys_shutdown();
915
+ #endif
916
+
917
+ // @end
918
+
919
+ printf ("OK\n");
920
+ }