javonet-ruby-sdk 2.6.8 → 2.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/README.md +1 -1
  4. data/Rakefile +38 -30
  5. data/VERSION +1 -1
  6. data/javonet-ruby-sdk.gemspec +38 -38
  7. data/lib/javonet-ruby-sdk/Binaries/Clr/Javonet.Clr.Utils.dll +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Clr/JavonetClrRuntime.dll +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  10. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libConfigs.so +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetCppRuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetGoRuntimeNative.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  15. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetNetcoreRuntimeNative.so +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPhpRuntimeNative.so +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPythonRuntimeNative.so +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRubyRuntimeNative.so +0 -0
  19. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpClient.so +0 -0
  20. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpTlsClient.so +0 -0
  21. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/version.txt +1 -1
  23. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libConfigs.so +0 -0
  24. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs2218RuntimeNative.so +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerl534RuntimeNative.so +0 -0
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhp848RuntimeNative.so +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhpRuntimeNative.so +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPython2RuntimeNative.so +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpClient.so +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpTlsClient.so +0 -0
  40. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/version.txt +1 -1
  42. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libConfigs.dylib +0 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetActivationService.dylib +0 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetCppRuntimeNative.dylib +0 -0
  45. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetGoRuntimeNative.dylib +0 -0
  46. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetJvmRuntimeNative.dylib +0 -0
  47. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  48. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetPythonRuntimeNative.dylib +0 -0
  49. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetRubyRuntimeNative.dylib +0 -0
  50. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetTcpClient.dylib +0 -0
  51. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetTcpTlsClient.dylib +0 -0
  52. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libUtils.dylib +0 -0
  53. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/version.txt +1 -1
  54. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libConfigs.dylib +0 -0
  55. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  56. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  57. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  58. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  59. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  60. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejs2218RuntimeNative.dylib +0 -0
  61. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  62. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  63. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhp848RuntimeNative.dylib +0 -0
  64. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhpRuntimeNative.dylib +0 -0
  65. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  66. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  67. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpClient.dylib +0 -0
  68. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpTlsClient.dylib +0 -0
  69. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  70. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/version.txt +1 -1
  71. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Configs.dll +0 -0
  72. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  73. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  74. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  75. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  76. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  77. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPhpRuntimeNative.dll +0 -0
  78. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  79. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  80. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  81. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  82. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  83. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/version.txt +0 -0
  84. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Configs.dll +0 -0
  85. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  86. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  87. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  88. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  89. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  90. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  91. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejs2218RuntimeNative.dll +0 -0
  92. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  93. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  94. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhp848RuntimeNative.dll +0 -0
  95. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhpRuntimeNative.dll +0 -0
  96. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPython2RuntimeNative.dll +0 -0
  97. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  98. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  99. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  100. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  101. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  102. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/version.txt +1 -1
  103. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Configs.dll +0 -0
  104. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  105. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  106. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  107. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  108. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  109. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  110. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPhpRuntimeNative.dll +0 -0
  111. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPython2RuntimeNative.dll +0 -0
  112. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  113. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  114. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  115. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Utils.dll +0 -0
  116. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/version.txt +1 -1
  117. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  118. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Plugins.dll +0 -0
  119. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  120. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/Handler.cjs +61 -21
  121. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/InvokeInstanceMethodHandler.cjs +1 -1
  122. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/InvokeStaticMethodHandler.cjs +1 -1
  123. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/PassDelegateHandler.cjs +13 -5
  124. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/RegisterForUpdateHandler.cjs +60 -0
  125. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/ValueForUpdateHandler.cjs +36 -0
  126. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/interpreter/Interpreter.cjs +4 -13
  127. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandDeserializer.cjs +1 -1
  128. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandSerializer.cjs +5 -5
  129. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/receiver/Receiver.cjs +4 -7
  130. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/InvocationContext.cjs +111 -28
  131. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/Javonet.cjs +3 -1
  132. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeContext.cjs +30 -12
  133. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeFactory.cjs +0 -22
  134. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/Handler.d.ts +12 -5
  135. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/PassDelegateHandler.d.ts +0 -5
  136. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/RegisterForUpdateHandler.d.ts +17 -0
  137. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/ValueForUpdateHandler.d.ts +7 -0
  138. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/interpreter/Interpreter.d.ts +2 -7
  139. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/protocol/CommandSerializer.d.ts +2 -2
  140. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/receiver/Receiver.d.ts +0 -1
  141. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/InvocationContext.d.ts +10 -13
  142. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/Javonet.d.ts +2 -2
  143. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/RuntimeContext.d.ts +8 -3
  144. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/RuntimeFactory.d.ts +0 -8
  145. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/utils/CommandType.d.ts +2 -0
  146. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/utils/CommandType.cjs +3 -1
  147. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  148. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  149. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  150. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  151. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  152. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  153. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  154. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  155. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  156. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  157. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +96 -96
  158. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/RegisterForUpdateHandler.pm +29 -0
  159. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/PerlHandler.pm +17 -10
  160. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Interpreter/Interpreter.pm +6 -14
  161. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/CommandDeserializer.pm +196 -190
  162. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/CommandSerializer.pm +13 -14
  163. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/TypeDeserializer.pm +11 -12
  164. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/TypeSerializer.pm +17 -20
  165. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Receiver/Receiver.pm +4 -3
  166. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Core/PerlCommand.pm +166 -54
  167. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Core/PerlCommandType.pm +2 -1
  168. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +0 -2
  169. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +0 -1
  170. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-events.bat +0 -0
  171. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-highlight.bat +0 -0
  172. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load-dump.bat +0 -0
  173. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load.bat +0 -0
  174. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-parse-emit.bat +0 -0
  175. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  176. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  177. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  178. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  179. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  180. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +21 -21
  181. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Handler/CommandHandler/RegisterForUpdateHandler.pm +29 -0
  182. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Handler/PerlHandler.pm +17 -10
  183. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Interpreter/Interpreter.pm +6 -14
  184. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/CommandDeserializer.pm +196 -190
  185. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/CommandSerializer.pm +13 -14
  186. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/TypeDeserializer.pm +11 -12
  187. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/TypeSerializer.pm +17 -20
  188. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Receiver/Receiver.pm +4 -3
  189. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Core/PerlCommand.pm +166 -54
  190. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Core/PerlCommandType.pm +2 -1
  191. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +0 -2
  192. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +0 -1
  193. data/lib/javonet-ruby-sdk/Binaries/Php/composer.json +6 -5
  194. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/AbstractHandler.php +1 -2
  195. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/Handler.php +74 -58
  196. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/LoadLibraryHandler.php +110 -0
  197. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/interpreter/Interpreter.php +25 -23
  198. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/protocol/CommandSerializer.php +5 -5
  199. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/receiver/Receiver.php +7 -4
  200. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/Command.php +86 -22
  201. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/DynamicMethodFactory.php +1 -2
  202. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/ExceptionSerializer.php +15 -1
  203. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/RuntimeNameHandler.php +32 -0
  204. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/UtilsConst.php +6 -3
  205. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/IConnectionData.php +1 -1
  206. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/InMemoryConnectionData.php +1 -1
  207. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/TcpConnectionData.php +6 -1
  208. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/WsConnectionData.php +1 -1
  209. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/callback/callbackFunc.py +4 -4
  210. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/AsOutHandler.py +1 -1
  211. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/CreateClassInstanceHandler.py +0 -2
  212. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/Handler.py +95 -50
  213. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/PassDelegateHandler.py +1 -1
  214. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/RegisterForUpdateHandler.py +38 -0
  215. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/ValueForUpdateHandler.py +6 -0
  216. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/Interpreter.py +13 -13
  217. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/CommandDeserializer.py +143 -155
  218. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/CommandSerializer.py +7 -5
  219. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/Receiver.py +64 -21
  220. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/Command.py +114 -45
  221. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/CommandType.py +3 -1
  222. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/callback/callbackFunc.py +2 -3
  223. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/GetKwargHandler.py +5 -0
  224. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/Handler.py +30 -12
  225. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/InvokeDelegateHandler.py +2 -2
  226. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/InvokeGlobalFunctionHandler.py +2 -2
  227. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/interpreter/Interpreter.py +9 -9
  228. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/protocol/CommandDeserializer.py +149 -130
  229. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/protocol/CommandSerializer.py +21 -17
  230. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/receiver/Receiver.py +11 -10
  231. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/utils/Command.py +89 -24
  232. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  233. data/lib/javonet-ruby-sdk/core/handler/abstract_command_handler.rb +23 -23
  234. data/lib/javonet-ruby-sdk/core/handler/abstract_handler.rb +4 -4
  235. data/lib/javonet-ruby-sdk/core/handler/add_event_listener_handler.rb +12 -12
  236. data/lib/javonet-ruby-sdk/core/handler/array_get_item_handler.rb +47 -47
  237. data/lib/javonet-ruby-sdk/core/handler/array_get_rank_handler.rb +22 -22
  238. data/lib/javonet-ruby-sdk/core/handler/array_get_size_handler.rb +36 -36
  239. data/lib/javonet-ruby-sdk/core/handler/array_handler.rb +12 -12
  240. data/lib/javonet-ruby-sdk/core/handler/array_reference_handler.rb +12 -12
  241. data/lib/javonet-ruby-sdk/core/handler/array_set_item_handler.rb +46 -46
  242. data/lib/javonet-ruby-sdk/core/handler/as_kwargs_handler.rb +12 -12
  243. data/lib/javonet-ruby-sdk/core/handler/as_out_handler.rb +12 -12
  244. data/lib/javonet-ruby-sdk/core/handler/as_ref_handler.rb +11 -11
  245. data/lib/javonet-ruby-sdk/core/handler/casting_handler.rb +11 -11
  246. data/lib/javonet-ruby-sdk/core/handler/convert_type_handler.rb +11 -11
  247. data/lib/javonet-ruby-sdk/core/handler/create_class_instance_handler.rb +34 -34
  248. data/lib/javonet-ruby-sdk/core/handler/create_null_handler.rb +12 -12
  249. data/lib/javonet-ruby-sdk/core/handler/destruct_reference_handler.rb +20 -20
  250. data/lib/javonet-ruby-sdk/core/handler/enable_namespace_handler.rb +30 -30
  251. data/lib/javonet-ruby-sdk/core/handler/enable_type_handler.rb +32 -32
  252. data/lib/javonet-ruby-sdk/core/handler/exception_handler.rb +12 -12
  253. data/lib/javonet-ruby-sdk/core/handler/generate_lib_handler.rb +12 -12
  254. data/lib/javonet-ruby-sdk/core/handler/get_async_operation_result_handler.rb +12 -12
  255. data/lib/javonet-ruby-sdk/core/handler/get_enum_item_handler.rb +12 -12
  256. data/lib/javonet-ruby-sdk/core/handler/get_enum_name_handler.rb +12 -12
  257. data/lib/javonet-ruby-sdk/core/handler/get_enum_value_handler.rb +12 -12
  258. data/lib/javonet-ruby-sdk/core/handler/get_global_field_handler.rb +11 -11
  259. data/lib/javonet-ruby-sdk/core/handler/get_instance_field_handler.rb +34 -34
  260. data/lib/javonet-ruby-sdk/core/handler/get_instance_method_as_delegate_handler.rb +11 -11
  261. data/lib/javonet-ruby-sdk/core/handler/get_module_handler.rb +11 -11
  262. data/lib/javonet-ruby-sdk/core/handler/get_ref_value_handler.rb +11 -11
  263. data/lib/javonet-ruby-sdk/core/handler/get_result_type_handler.rb +12 -12
  264. data/lib/javonet-ruby-sdk/core/handler/get_static_field_handler.rb +34 -34
  265. data/lib/javonet-ruby-sdk/core/handler/get_static_method_as_delegate_handler.rb +11 -11
  266. data/lib/javonet-ruby-sdk/core/handler/get_type_handler.rb +70 -71
  267. data/lib/javonet-ruby-sdk/core/handler/handler.rb +227 -184
  268. data/lib/javonet-ruby-sdk/core/handler/handler_dictionary.rb +7 -7
  269. data/lib/javonet-ruby-sdk/core/handler/heartbeat_handler.rb +12 -12
  270. data/lib/javonet-ruby-sdk/core/handler/invoke_delegate_handler.rb +12 -12
  271. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_method_handler.rb +11 -11
  272. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_static_method_handler.rb +12 -12
  273. data/lib/javonet-ruby-sdk/core/handler/invoke_global_function_handler.rb +45 -45
  274. data/lib/javonet-ruby-sdk/core/handler/invoke_instance_method_handler.rb +35 -35
  275. data/lib/javonet-ruby-sdk/core/handler/invoke_static_method_handler.rb +38 -38
  276. data/lib/javonet-ruby-sdk/core/handler/load_library_handler.rb +49 -49
  277. data/lib/javonet-ruby-sdk/core/handler/optimize_handler.rb +12 -12
  278. data/lib/javonet-ruby-sdk/core/handler/pass_delegate_handler.rb +11 -11
  279. data/lib/javonet-ruby-sdk/core/handler/plugin_wrapper_handler.rb +12 -12
  280. data/lib/javonet-ruby-sdk/core/handler/register_for_update_handler.rb +28 -0
  281. data/lib/javonet-ruby-sdk/core/handler/resolve_instance_handler.rb +29 -29
  282. data/lib/javonet-ruby-sdk/core/handler/retrieve_array_handler.rb +12 -12
  283. data/lib/javonet-ruby-sdk/core/handler/set_instance_field_handler.rb +35 -35
  284. data/lib/javonet-ruby-sdk/core/handler/set_static_field_handler.rb +31 -31
  285. data/lib/javonet-ruby-sdk/core/handler/value_for_update_handler.rb +11 -0
  286. data/lib/javonet-ruby-sdk/core/handler/value_handler.rb +6 -6
  287. data/lib/javonet-ruby-sdk/core/interpreter/interpreter.rb +26 -28
  288. data/lib/javonet-ruby-sdk/core/namespace_cache/namespace_cache.rb +42 -42
  289. data/lib/javonet-ruby-sdk/core/protocol/command_deserializer.rb +184 -184
  290. data/lib/javonet-ruby-sdk/core/protocol/command_serializer.rb +36 -36
  291. data/lib/javonet-ruby-sdk/core/protocol/type_deserializer.rb +65 -65
  292. data/lib/javonet-ruby-sdk/core/protocol/type_serializer.rb +120 -120
  293. data/lib/javonet-ruby-sdk/core/receiver/{receiver_new.rb → receiver.rb} +38 -42
  294. data/lib/javonet-ruby-sdk/core/reference_cache/references_cache.rb +39 -39
  295. data/lib/javonet-ruby-sdk/core/transmitter/transmitter.rb +58 -58
  296. data/lib/javonet-ruby-sdk/core/transmitter/transmitter_wrapper.rb +31 -31
  297. data/lib/javonet-ruby-sdk/core/type_cache/type_cache.rb +41 -41
  298. data/lib/javonet-ruby-sdk/core/web_socket_client/web_socket_client.rb +228 -228
  299. data/lib/javonet-ruby-sdk/sdk/config_runtime_factory.rb +132 -132
  300. data/lib/javonet-ruby-sdk/sdk/configuration/config.rb +32 -0
  301. data/lib/javonet-ruby-sdk/sdk/configuration/config_priority.rb +27 -0
  302. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/config_resolver.rb +80 -0
  303. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/connection_string_config_resolver.rb +89 -0
  304. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/json_config_resolver.rb +66 -0
  305. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/yaml_config_resolver.rb +77 -0
  306. data/lib/javonet-ruby-sdk/sdk/configuration/config_source_resolver.rb +70 -0
  307. data/lib/javonet-ruby-sdk/sdk/configuration/configs_dictionary.rb +48 -0
  308. data/lib/javonet-ruby-sdk/sdk/internal/abstract_config_runtime_factory.rb +33 -33
  309. data/lib/javonet-ruby-sdk/sdk/internal/abstract_invocation_context.rb +70 -70
  310. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_context.rb +10 -10
  311. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_factory.rb +37 -37
  312. data/lib/javonet-ruby-sdk/sdk/internal/invocation_context_iterator.rb +27 -27
  313. data/lib/javonet-ruby-sdk/sdk/invocation_context.rb +318 -319
  314. data/lib/javonet-ruby-sdk/sdk/javonet.rb +132 -106
  315. data/lib/javonet-ruby-sdk/sdk/runtime_context.rb +259 -218
  316. data/lib/javonet-ruby-sdk/sdk/runtime_factory.rb +78 -78
  317. data/lib/javonet-ruby-sdk/sdk/tools/activation_helper.rb +37 -37
  318. data/lib/javonet-ruby-sdk/sdk/tools/json_file_resolver.rb +62 -62
  319. data/lib/javonet-ruby-sdk/sdk/tools/sdk_message_helper.rb +71 -71
  320. data/lib/javonet-ruby-sdk/utils/command.rb +79 -93
  321. data/lib/javonet-ruby-sdk/utils/command_type.rb +154 -148
  322. data/lib/javonet-ruby-sdk/utils/connection_type.rb +5 -5
  323. data/lib/javonet-ruby-sdk/utils/exceptions/exception_serializer.rb +116 -116
  324. data/lib/javonet-ruby-sdk/utils/exceptions/exception_thrower.rb +65 -65
  325. data/lib/javonet-ruby-sdk/utils/exceptions/exception_type.rb +10 -10
  326. data/lib/javonet-ruby-sdk/utils/os_helper.rb +21 -21
  327. data/lib/javonet-ruby-sdk/utils/runtime_logger.rb +46 -46
  328. data/lib/javonet-ruby-sdk/utils/runtime_name_handler.rb +71 -40
  329. data/lib/javonet-ruby-sdk/utils/runtime_name_javonet.rb +13 -13
  330. data/lib/javonet-ruby-sdk/utils/string_encoding_mode_javonet.rb +6 -6
  331. data/lib/javonet-ruby-sdk/utils/tcp_connection_data.rb +36 -36
  332. data/lib/javonet-ruby-sdk/utils/type.rb +15 -15
  333. data/lib/javonet-ruby-sdk/utils/types_handler.rb +10 -10
  334. data/lib/javonet-ruby-sdk/utils/ws_connection_data.rb +23 -19
  335. metadata +24 -115
  336. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libcrypto-3-arm64.dll +0 -0
  337. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libssl-3-arm64.dll +0 -0
  338. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxml2.dll +0 -0
  339. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxmlsec-openssl.dll +0 -0
  340. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxmlsec.dll +0 -0
  341. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxslt.dll +0 -0
  342. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libcrypto-3-x64.dll +0 -0
  343. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libssl-3-x64.dll +0 -0
  344. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxml2.dll +0 -0
  345. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxmlsec-openssl.dll +0 -0
  346. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxmlsec.dll +0 -0
  347. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxslt.dll +0 -0
  348. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libcrypto-3.dll +0 -0
  349. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libssl-3.dll +0 -0
  350. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxml2.dll +0 -0
  351. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxmlsec-openssl.dll +0 -0
  352. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxmlsec.dll +0 -0
  353. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxslt.dll +0 -0
  354. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/__pycache__/__init__.cpython-312.pyc +0 -0
  355. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/DelegatesCache.cpython-312.pyc +0 -0
  356. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/__init__.cpython-312.pyc +0 -0
  357. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractCommandHandler.cpython-312.pyc +0 -0
  358. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractHandler.cpython-312.pyc +0 -0
  359. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AddEventListenerHandler.cpython-312.pyc +0 -0
  360. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetItemHandler.cpython-312.pyc +0 -0
  361. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetRankHandler.cpython-312.pyc +0 -0
  362. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetSizeHandler.cpython-312.pyc +0 -0
  363. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayHandler.cpython-312.pyc +0 -0
  364. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayReferenceHandler.cpython-312.pyc +0 -0
  365. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArraySetItemHandler.cpython-312.pyc +0 -0
  366. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsOutHandler.cpython-312.pyc +0 -0
  367. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsRefHandler.cpython-312.pyc +0 -0
  368. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CastingHandler.cpython-312.pyc +0 -0
  369. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ConvertTypeHandler.cpython-312.pyc +0 -0
  370. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateClassInstanceHandler.cpython-312.pyc +0 -0
  371. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateNullHandler.cpython-312.pyc +0 -0
  372. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/DestructReferenceHandler.cpython-312.pyc +0 -0
  373. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableNamespaceHandler.cpython-312.pyc +0 -0
  374. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableTypeHandler.cpython-312.pyc +0 -0
  375. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ExceptionHandler.cpython-312.pyc +0 -0
  376. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GenerateLibHandler.cpython-312.pyc +0 -0
  377. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetAsyncOperationResultHandler.cpython-312.pyc +0 -0
  378. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumItemHandler.cpython-312.pyc +0 -0
  379. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumNameHandler.cpython-312.pyc +0 -0
  380. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumValueHandler.cpython-312.pyc +0 -0
  381. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetGlobalFieldHandler.cpython-312.pyc +0 -0
  382. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceFieldHandler.cpython-312.pyc +0 -0
  383. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceMethodAsDelegateHandler.cpython-312.pyc +0 -0
  384. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetKwargHandler.cpython-312.pyc +0 -0
  385. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetModuleHandler.cpython-312.pyc +0 -0
  386. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetRefValueHandler.cpython-312.pyc +0 -0
  387. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetResultTypeHandler.cpython-312.pyc +0 -0
  388. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticFieldHandler.cpython-312.pyc +0 -0
  389. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticMethodAsDelegateHandler.cpython-312.pyc +0 -0
  390. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetTypeHandler.cpython-312.pyc +0 -0
  391. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/Handler.cpython-312.pyc +0 -0
  392. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HandlerDictionary.cpython-312.pyc +0 -0
  393. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HeartBeatHandler.cpython-312.pyc +0 -0
  394. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeDelegateHandler.cpython-312.pyc +0 -0
  395. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericMethodHandler.cpython-312.pyc +0 -0
  396. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericStaticMethodHandler.cpython-312.pyc +0 -0
  397. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGlobalFunctionHandler.cpython-312.pyc +0 -0
  398. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeInstanceMethodHandler.cpython-312.pyc +0 -0
  399. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeStaticMethodHandler.cpython-312.pyc +0 -0
  400. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/LoadLibraryHandler.cpython-312.pyc +0 -0
  401. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/OptimizeHandler.cpython-312.pyc +0 -0
  402. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PassDelegateHandler.cpython-312.pyc +0 -0
  403. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PluginWrapperHandler.cpython-312.pyc +0 -0
  404. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ResolveInstanceHandler.cpython-312.pyc +0 -0
  405. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RetrieveArrayHandler.cpython-312.pyc +0 -0
  406. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetInstanceFieldHandler.cpython-312.pyc +0 -0
  407. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetStaticFieldHandler.cpython-312.pyc +0 -0
  408. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueHandler.cpython-312.pyc +0 -0
  409. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/__init__.cpython-312.pyc +0 -0
  410. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/Interpreter.cpython-312.pyc +0 -0
  411. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/__init__.cpython-312.pyc +0 -0
  412. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/NamespaceCache.cpython-312.pyc +0 -0
  413. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  414. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-312.pyc +0 -0
  415. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandSerializer.cpython-312.pyc +0 -0
  416. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-312.pyc +0 -0
  417. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeSerializer.cpython-312.pyc +0 -0
  418. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/__init__.cpython-312.pyc +0 -0
  419. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/Receiver.cpython-312.pyc +0 -0
  420. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/__init__.cpython-312.pyc +0 -0
  421. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/ReferencesCache.cpython-312.pyc +0 -0
  422. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  423. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/TypeCache.cpython-312.pyc +0 -0
  424. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/__init__.cpython-312.pyc +0 -0
  425. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Command.cpython-312.pyc +0 -0
  426. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/CommandType.cpython-312.pyc +0 -0
  427. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ConnectionType.cpython-312.pyc +0 -0
  428. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ExceptionType.cpython-312.pyc +0 -0
  429. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/LazyModuleLoader.cpython-312.pyc +0 -0
  430. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeLogger.cpython-312.pyc +0 -0
  431. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeName.cpython-312.pyc +0 -0
  432. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/StringEncodingMode.cpython-312.pyc +0 -0
  433. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Type.cpython-312.pyc +0 -0
  434. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/TypesHandler.cpython-312.pyc +0 -0
  435. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/UtilsConst.cpython-312.pyc +0 -0
  436. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  437. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/IConnectionData.cpython-312.pyc +0 -0
  438. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/InMemoryConnectionData.cpython-312.pyc +0 -0
  439. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/__init__.cpython-312.pyc +0 -0
  440. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionSerializer.cpython-312.pyc +0 -0
  441. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionThrower.cpython-312.pyc +0 -0
  442. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/JavonetException.cpython-312.pyc +0 -0
  443. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/__init__.cpython-312.pyc +0 -0
  444. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/MessageHelper.cpython-312.pyc +0 -0
  445. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/__init__.cpython-312.pyc +0 -0
@@ -1,32 +1,32 @@
1
- module TransmitterWrapper
2
- extend FFI::Library
3
-
4
- arch = case FFI::Platform::ARCH
5
- when 'x86_64'
6
- 'X64'
7
- when 'x86'
8
- 'X86'
9
- when 'arm'
10
- 'ARM'
11
- when 'aarch64'
12
- 'ARM64'
13
- else
14
- raise "Unsupported architecture: #{FFI::Platform::ARCH}"
15
- end
16
-
17
- if OS.linux?
18
- ffi_lib File.expand_path("../../../Binaries/Native/Linux/#{arch}/libJavonetRubyRuntimeNative.so", __FILE__)
19
- elsif OS.mac?
20
- ffi_lib File.expand_path("../../../Binaries/Native/MacOs/#{arch}/libJavonetRubyRuntimeNative.dylib", __FILE__)
21
- else
22
- RubyInstaller::Runtime.add_dll_directory(File.expand_path("../../../Binaries/Native/Windows/#{arch}/", __FILE__))
23
- ffi_lib File.expand_path("../../../Binaries/Native/Windows/#{arch}/JavonetRubyRuntimeNative.dll", __FILE__)
24
- end
25
-
26
- attach_function :SendCommand, [:pointer, :int], :int
27
- attach_function :ReadResponse, [:pointer, :int], :int
28
- attach_function :Activate, [:pointer], :int
29
- attach_function :GetNativeError, [], :string
30
- attach_function :SetConfigSource, [:pointer], :int
31
- attach_function :SetWorkingDirectory, [:pointer], :int
1
+ module TransmitterWrapper
2
+ extend FFI::Library
3
+
4
+ arch = case FFI::Platform::ARCH
5
+ when 'x86_64'
6
+ 'X64'
7
+ when 'x86'
8
+ 'X86'
9
+ when 'arm'
10
+ 'ARM'
11
+ when 'aarch64'
12
+ 'ARM64'
13
+ else
14
+ raise "Unsupported architecture: #{FFI::Platform::ARCH}"
15
+ end
16
+
17
+ if OS.linux?
18
+ ffi_lib File.expand_path("../../../Binaries/Native/Linux/#{arch}/libJavonetRubyRuntimeNative.so", __FILE__)
19
+ elsif OS.mac?
20
+ ffi_lib File.expand_path("../../../Binaries/Native/MacOs/#{arch}/libJavonetRubyRuntimeNative.dylib", __FILE__)
21
+ else
22
+ RubyInstaller::Runtime.add_dll_directory(File.expand_path("../../../Binaries/Native/Windows/#{arch}/", __FILE__))
23
+ ffi_lib File.expand_path("../../../Binaries/Native/Windows/#{arch}/JavonetRubyRuntimeNative.dll", __FILE__)
24
+ end
25
+
26
+ attach_function :SendCommand, [:pointer, :int], :int
27
+ attach_function :ReadResponse, [:pointer, :int], :int
28
+ attach_function :Activate, [:pointer], :int
29
+ attach_function :GetNativeError, [], :string
30
+ attach_function :SetConfigSource, [:pointer], :int
31
+ attach_function :SetWorkingDirectory, [:pointer], :int
32
32
  end
@@ -1,42 +1,42 @@
1
- class TypeCache
2
- attr_accessor :type_cache
3
-
4
- def self.instance
5
- @instance ||= new
6
- end
7
-
8
- private_class_method :new
9
-
10
- def initialize
11
- @type_cache = []
12
- end
13
-
14
- def cache_type(type_regex)
15
- @type_cache << type_regex
16
- end
17
-
18
- def is_type_cache_empty?
19
- @type_cache.empty?
20
- end
21
-
22
- def is_type_allowed(type_to_check)
23
- name_to_check = if type_to_check.is_a?(Module)
24
- type_to_check.name
25
- else
26
- "#{type_to_check.class.name}::#{type_to_check.name}"
27
- end
28
-
29
- @type_cache.any? do |pattern|
30
- /#{pattern}/.match?(name_to_check)
31
- end
32
- end
33
-
34
- def get_cached_types
35
- @type_cache
36
- end
37
-
38
- def clear_cache
39
- @type_cache.clear
40
- 0
41
- end
1
+ class TypeCache
2
+ attr_accessor :type_cache
3
+
4
+ def self.instance
5
+ @instance ||= new
6
+ end
7
+
8
+ private_class_method :new
9
+
10
+ def initialize
11
+ @type_cache = []
12
+ end
13
+
14
+ def cache_type(type_regex)
15
+ @type_cache << type_regex
16
+ end
17
+
18
+ def is_type_cache_empty?
19
+ @type_cache.empty?
20
+ end
21
+
22
+ def is_type_allowed(type_to_check)
23
+ name_to_check = if type_to_check.is_a?(Module)
24
+ type_to_check.name
25
+ else
26
+ "#{type_to_check.class.name}::#{type_to_check.name}"
27
+ end
28
+
29
+ @type_cache.any? do |pattern|
30
+ /#{pattern}/.match?(name_to_check)
31
+ end
32
+ end
33
+
34
+ def get_cached_types
35
+ @type_cache
36
+ end
37
+
38
+ def clear_cache
39
+ @type_cache.clear
40
+ 0
41
+ end
42
42
  end
@@ -1,228 +1,228 @@
1
- require 'uri'
2
- require 'socket'
3
- require 'openssl'
4
- require 'websocket'
5
-
6
- class WebSocketClient
7
- class << self
8
- def add_or_get_client(url)
9
- cache[url] && cache[url].open? ? cache[url] : (cache[url]&.close; cache[url] = new(url))
10
- end
11
-
12
- def send_message(url, message)
13
- client = add_or_get_client(url)
14
- client.send_message(message)
15
- return client.receive_message
16
- rescue Errno::EPIPE, Errno::ECONNRESET, Errno::ETIMEDOUT, IOError, SystemCallError
17
- # Socket likely died due to server idle-timeout; rebuild without sending CLOSE
18
- close_client(url, suppress_close_frame: true)
19
- client = add_or_get_client(url)
20
- client.send_message(message)
21
- client.receive_message
22
- end
23
-
24
- def close_client(url, suppress_close_frame: false)
25
- cache[url]&.close(suppress_close_frame: suppress_close_frame)
26
- cache.delete(url)
27
- end
28
-
29
- # Returns :OPEN, :CLOSED, or nil (no client)
30
- def get_state(url)
31
- c = cache[url]
32
- return nil unless c
33
- c.open? ? :OPEN : :CLOSED
34
- end
35
-
36
- private
37
-
38
- def cache
39
- @cache ||= {}
40
- end
41
- end
42
-
43
- def initialize(url)
44
- @uri = URI.parse(url)
45
- raise "Only ws:// or wss:// URLs are supported" unless %w[ws wss].include?(@uri.scheme)
46
-
47
- @host = @uri.host
48
- @port = @uri.port || default_port
49
- @path = (@uri.path.nil? || @uri.path.empty?) ? '/' : @uri.path
50
- @path += "?#{@uri.query}" if @uri.query
51
-
52
- @socket = open_socket
53
- @handshake = WebSocket::Handshake::Client.new(url: url) # masks handled by client frames
54
- perform_handshake
55
- @incoming = WebSocket::Frame::Incoming::Client.new(version: @handshake.version)
56
- end
57
-
58
- # message can be an Array<Integer 0..255> or a String of bytes
59
- def send_message(message)
60
- data =
61
- case message
62
- when String then message.b
63
- when Array then message.pack('C*')
64
- else raise ArgumentError, "Unsupported message type: #{message.class}"
65
- end
66
-
67
- frame = WebSocket::Frame::Outgoing::Client.new(
68
- version: @handshake.version,
69
- data: data,
70
- type: :binary
71
- )
72
- write_all(frame.to_s)
73
- true
74
- end
75
-
76
- # Returns Array<Integer> (bytes) or nil on timeout
77
- def receive_message(timeout: 5)
78
- deadline = Time.now + timeout
79
- payload_chunks = []
80
-
81
- loop do
82
- # try to parse any buffered data first
83
- if (frame = @incoming.next)
84
- case frame.type
85
- when :binary, :text, :continuation
86
- payload_chunks << frame.data
87
- return payload_chunks.join.bytes
88
- when :ping
89
- send_pong(frame.data)
90
- when :close
91
- send_close_reply
92
- return nil
93
- end
94
- next
95
- end
96
-
97
- # no complete frame yet—read from socket or timeout
98
- remaining = deadline - Time.now
99
- return nil if remaining <= 0
100
-
101
- if IO.select([@socket], nil, nil, [remaining, 0.05].max)
102
- begin
103
- chunk = @socket.read_nonblock(64 * 1024, exception: false)
104
- case chunk
105
- when nil
106
- # peer closed
107
- return nil
108
- when :wait_readable
109
- next
110
- else
111
- @incoming << chunk
112
- end
113
- rescue IO::WaitReadable
114
- next
115
- rescue EOFError
116
- return nil
117
- end
118
- end
119
- end
120
- end
121
-
122
- def open?
123
- return false if @socket.closed?
124
- true
125
- rescue IOError, SystemCallError
126
- false
127
- end
128
-
129
- def close(suppress_close_frame: false)
130
- begin
131
- send_close_reply unless suppress_close_frame || @socket.closed?
132
- rescue Errno::EPIPE, Errno::ECONNRESET, IOError, SystemCallError
133
- # peer already gone — ignore
134
- ensure
135
- @socket.close unless @socket.closed?
136
- end
137
- end
138
-
139
- private
140
-
141
- def default_port
142
- @uri.scheme == 'wss' ? 443 : 80
143
- end
144
-
145
- def open_socket
146
- tcp = TCPSocket.new(@host, @port)
147
- tcp.sync = true
148
-
149
- return tcp unless @uri.scheme == 'wss'
150
-
151
- ctx = OpenSSL::SSL::SSLContext.new
152
- # NOTE: for production, set VERIFY_PEER and provide a store/ca_file.
153
- ctx.set_params(verify_mode: OpenSSL::SSL::VERIFY_NONE)
154
-
155
- ssl = OpenSSL::SSL::SSLSocket.new(tcp, ctx)
156
- ssl.sync_close = true
157
- ssl.hostname = @host
158
- ssl.connect
159
- ssl
160
- end
161
-
162
- def perform_handshake
163
- write_all(@handshake.to_s)
164
- # Read until the handshake object reports finished or the server closes
165
- loop do
166
- break if @handshake.finished?
167
- if IO.select([@socket], nil, nil, 5)
168
- begin
169
- data = @socket.read_nonblock(4096, exception: false)
170
- case data
171
- when nil
172
- break
173
- when :wait_readable
174
- next
175
- else
176
- @handshake << data
177
- end
178
- rescue IO::WaitReadable
179
- next
180
- end
181
- else
182
- raise "WebSocket handshake timeout"
183
- end
184
- end
185
-
186
- raise "WebSocket handshake failed!" unless @handshake.finished? && @handshake.valid?
187
- end
188
-
189
- def write_all(data)
190
- total = 0
191
- while total < data.bytesize
192
- written = @socket.write_nonblock(data.byteslice(total..-1), exception: false)
193
- case written
194
- when :wait_writable
195
- IO.select(nil, [@socket])
196
- next
197
- when 0, nil
198
- raise IOError, "socket closed while writing"
199
- else
200
- total += written
201
- end
202
- end
203
- rescue IO::WaitWritable
204
- IO.select(nil, [@socket]); retry
205
- rescue Errno::EPIPE, Errno::ECONNRESET
206
- # bubble up for send_message to handle reconnect logic
207
- raise
208
- end
209
-
210
- def send_pong(data)
211
- pong = WebSocket::Frame::Outgoing::Client.new(
212
- version: @handshake.version, type: :pong, data: data
213
- )
214
- write_all(pong.to_s)
215
- rescue Errno::EPIPE, Errno::ECONNRESET, IOError, SystemCallError
216
- # ignore: socket already gone; next send will recreate
217
- end
218
-
219
- def send_close_reply
220
- return if @socket.closed?
221
- frame = WebSocket::Frame::Outgoing::Client.new(
222
- version: @handshake.version, type: :close
223
- )
224
- write_all(frame.to_s)
225
- rescue Errno::EPIPE, Errno::ECONNRESET, IOError, SystemCallError
226
- # ignore: socket already gone
227
- end
228
- end
1
+ require 'uri'
2
+ require 'socket'
3
+ require 'openssl'
4
+ require 'websocket'
5
+
6
+ class WebSocketClient
7
+ class << self
8
+ def add_or_get_client(url)
9
+ cache[url] && cache[url].open? ? cache[url] : (cache[url]&.close; cache[url] = new(url))
10
+ end
11
+
12
+ def send_message(url, message)
13
+ client = add_or_get_client(url)
14
+ client.send_message(message)
15
+ return client.receive_message
16
+ rescue Errno::EPIPE, Errno::ECONNRESET, Errno::ETIMEDOUT, IOError, SystemCallError
17
+ # Socket likely died due to server idle-timeout; rebuild without sending CLOSE
18
+ close_client(url, suppress_close_frame: true)
19
+ client = add_or_get_client(url)
20
+ client.send_message(message)
21
+ client.receive_message
22
+ end
23
+
24
+ def close_client(url, suppress_close_frame: false)
25
+ cache[url]&.close(suppress_close_frame: suppress_close_frame)
26
+ cache.delete(url)
27
+ end
28
+
29
+ # Returns :OPEN, :CLOSED, or nil (no client)
30
+ def get_state(url)
31
+ c = cache[url]
32
+ return nil unless c
33
+ c.open? ? :OPEN : :CLOSED
34
+ end
35
+
36
+ private
37
+
38
+ def cache
39
+ @cache ||= {}
40
+ end
41
+ end
42
+
43
+ def initialize(url)
44
+ @uri = URI.parse(url)
45
+ raise "Only ws:// or wss:// URLs are supported" unless %w[ws wss].include?(@uri.scheme)
46
+
47
+ @host = @uri.host
48
+ @port = @uri.port || default_port
49
+ @path = (@uri.path.nil? || @uri.path.empty?) ? '/' : @uri.path
50
+ @path += "?#{@uri.query}" if @uri.query
51
+
52
+ @socket = open_socket
53
+ @handshake = WebSocket::Handshake::Client.new(url: url) # masks handled by client frames
54
+ perform_handshake
55
+ @incoming = WebSocket::Frame::Incoming::Client.new(version: @handshake.version)
56
+ end
57
+
58
+ # message can be an Array<Integer 0..255> or a String of bytes
59
+ def send_message(message)
60
+ data =
61
+ case message
62
+ when String then message.b
63
+ when Array then message.pack('C*')
64
+ else raise ArgumentError, "Unsupported message type: #{message.class}"
65
+ end
66
+
67
+ frame = WebSocket::Frame::Outgoing::Client.new(
68
+ version: @handshake.version,
69
+ data: data,
70
+ type: :binary
71
+ )
72
+ write_all(frame.to_s)
73
+ true
74
+ end
75
+
76
+ # Returns Array<Integer> (bytes) or nil on timeout
77
+ def receive_message(timeout: 5)
78
+ deadline = Time.now + timeout
79
+ payload_chunks = []
80
+
81
+ loop do
82
+ # try to parse any buffered data first
83
+ if (frame = @incoming.next)
84
+ case frame.type
85
+ when :binary, :text, :continuation
86
+ payload_chunks << frame.data
87
+ return payload_chunks.join.bytes
88
+ when :ping
89
+ send_pong(frame.data)
90
+ when :close
91
+ send_close_reply
92
+ return nil
93
+ end
94
+ next
95
+ end
96
+
97
+ # no complete frame yet—read from socket or timeout
98
+ remaining = deadline - Time.now
99
+ return nil if remaining <= 0
100
+
101
+ if IO.select([@socket], nil, nil, [remaining, 0.05].max)
102
+ begin
103
+ chunk = @socket.read_nonblock(64 * 1024, exception: false)
104
+ case chunk
105
+ when nil
106
+ # peer closed
107
+ return nil
108
+ when :wait_readable
109
+ next
110
+ else
111
+ @incoming << chunk
112
+ end
113
+ rescue IO::WaitReadable
114
+ next
115
+ rescue EOFError
116
+ return nil
117
+ end
118
+ end
119
+ end
120
+ end
121
+
122
+ def open?
123
+ return false if @socket.closed?
124
+ true
125
+ rescue IOError, SystemCallError
126
+ false
127
+ end
128
+
129
+ def close(suppress_close_frame: false)
130
+ begin
131
+ send_close_reply unless suppress_close_frame || @socket.closed?
132
+ rescue Errno::EPIPE, Errno::ECONNRESET, IOError, SystemCallError
133
+ # peer already gone — ignore
134
+ ensure
135
+ @socket.close unless @socket.closed?
136
+ end
137
+ end
138
+
139
+ private
140
+
141
+ def default_port
142
+ @uri.scheme == 'wss' ? 443 : 80
143
+ end
144
+
145
+ def open_socket
146
+ tcp = TCPSocket.new(@host, @port)
147
+ tcp.sync = true
148
+
149
+ return tcp unless @uri.scheme == 'wss'
150
+
151
+ ctx = OpenSSL::SSL::SSLContext.new
152
+ # NOTE: for production, set VERIFY_PEER and provide a store/ca_file.
153
+ ctx.set_params(verify_mode: OpenSSL::SSL::VERIFY_NONE)
154
+
155
+ ssl = OpenSSL::SSL::SSLSocket.new(tcp, ctx)
156
+ ssl.sync_close = true
157
+ ssl.hostname = @host
158
+ ssl.connect
159
+ ssl
160
+ end
161
+
162
+ def perform_handshake
163
+ write_all(@handshake.to_s)
164
+ # Read until the handshake object reports finished or the server closes
165
+ loop do
166
+ break if @handshake.finished?
167
+ if IO.select([@socket], nil, nil, 5)
168
+ begin
169
+ data = @socket.read_nonblock(4096, exception: false)
170
+ case data
171
+ when nil
172
+ break
173
+ when :wait_readable
174
+ next
175
+ else
176
+ @handshake << data
177
+ end
178
+ rescue IO::WaitReadable
179
+ next
180
+ end
181
+ else
182
+ raise "WebSocket handshake timeout"
183
+ end
184
+ end
185
+
186
+ raise "WebSocket handshake failed!" unless @handshake.finished? && @handshake.valid?
187
+ end
188
+
189
+ def write_all(data)
190
+ total = 0
191
+ while total < data.bytesize
192
+ written = @socket.write_nonblock(data.byteslice(total..-1), exception: false)
193
+ case written
194
+ when :wait_writable
195
+ IO.select(nil, [@socket])
196
+ next
197
+ when 0, nil
198
+ raise IOError, "socket closed while writing"
199
+ else
200
+ total += written
201
+ end
202
+ end
203
+ rescue IO::WaitWritable
204
+ IO.select(nil, [@socket]); retry
205
+ rescue Errno::EPIPE, Errno::ECONNRESET
206
+ # bubble up for send_message to handle reconnect logic
207
+ raise
208
+ end
209
+
210
+ def send_pong(data)
211
+ pong = WebSocket::Frame::Outgoing::Client.new(
212
+ version: @handshake.version, type: :pong, data: data
213
+ )
214
+ write_all(pong.to_s)
215
+ rescue Errno::EPIPE, Errno::ECONNRESET, IOError, SystemCallError
216
+ # ignore: socket already gone; next send will recreate
217
+ end
218
+
219
+ def send_close_reply
220
+ return if @socket.closed?
221
+ frame = WebSocket::Frame::Outgoing::Client.new(
222
+ version: @handshake.version, type: :close
223
+ )
224
+ write_all(frame.to_s)
225
+ rescue Errno::EPIPE, Errno::ECONNRESET, IOError, SystemCallError
226
+ # ignore: socket already gone
227
+ end
228
+ end