javonet-ruby-sdk 2.6.10 → 2.6.12

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 (434) 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 +12 -10
  121. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/PassDelegateHandler.cjs +13 -5
  122. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/interpreter/Interpreter.cjs +4 -13
  123. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandDeserializer.cjs +1 -1
  124. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandSerializer.cjs +5 -5
  125. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/receiver/Receiver.cjs +4 -7
  126. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/InvocationContext.cjs +6 -18
  127. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/Javonet.cjs +3 -1
  128. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeContext.cjs +29 -11
  129. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeFactory.cjs +0 -22
  130. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/Handler.d.ts +11 -11
  131. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/PassDelegateHandler.d.ts +0 -5
  132. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/interpreter/Interpreter.d.ts +2 -7
  133. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/protocol/CommandSerializer.d.ts +2 -2
  134. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/receiver/Receiver.d.ts +0 -1
  135. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/Javonet.d.ts +2 -2
  136. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/RuntimeContext.d.ts +8 -3
  137. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/RuntimeFactory.d.ts +0 -8
  138. 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
  139. 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
  140. 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
  141. 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
  142. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  143. 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
  144. 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
  145. 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
  146. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  147. 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
  148. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +96 -96
  149. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Exception/SdkExceptionHelper.pm +3 -3
  150. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/PerlHandler.pm +1 -1
  151. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Interpreter/Interpreter.pm +6 -14
  152. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/CommandDeserializer.pm +198 -136
  153. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/CommandSerializer.pm +64 -54
  154. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/TypeDeserializer.pm +11 -12
  155. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Protocol/TypeSerializer.pm +17 -20
  156. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Receiver/Receiver.pm +4 -3
  157. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Core/PerlCommand.pm +166 -54
  158. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +0 -2
  159. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +0 -1
  160. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-events.bat +0 -0
  161. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-highlight.bat +0 -0
  162. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load-dump.bat +0 -0
  163. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load.bat +0 -0
  164. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-parse-emit.bat +0 -0
  165. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  166. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  167. 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
  168. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  169. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  170. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +26 -26
  171. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Exception/SdkExceptionHelper.pm +3 -3
  172. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Handler/PerlHandler.pm +1 -1
  173. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Interpreter/Interpreter.pm +6 -14
  174. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/CommandDeserializer.pm +198 -136
  175. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/CommandSerializer.pm +64 -54
  176. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/TypeDeserializer.pm +11 -12
  177. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Protocol/TypeSerializer.pm +17 -20
  178. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Receiver/Receiver.pm +4 -3
  179. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Core/PerlCommand.pm +166 -54
  180. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +0 -2
  181. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +0 -1
  182. data/lib/javonet-ruby-sdk/Binaries/Php/composer.json +6 -5
  183. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/AbstractHandler.php +1 -2
  184. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/Handler.php +74 -58
  185. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/LoadLibraryHandler.php +110 -0
  186. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/interpreter/Interpreter.php +25 -23
  187. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/protocol/CommandSerializer.php +5 -5
  188. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/receiver/Receiver.php +7 -4
  189. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/webSocketClient/WebSocketClient.php +77 -35
  190. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/Command.php +86 -22
  191. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/DynamicMethodFactory.php +1 -2
  192. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/ExceptionSerializer.php +15 -1
  193. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/RuntimeNameHandler.php +32 -0
  194. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/UtilsConst.php +6 -3
  195. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/IConnectionData.php +1 -1
  196. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/InMemoryConnectionData.php +1 -1
  197. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/TcpConnectionData.php +6 -1
  198. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/connectiondata/WsConnectionData.php +1 -1
  199. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/callback/callbackFunc.py +4 -4
  200. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/Handler.py +72 -52
  201. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/PassDelegateHandler.py +1 -1
  202. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/Interpreter.py +13 -13
  203. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/CommandDeserializer.py +143 -155
  204. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/CommandSerializer.py +7 -5
  205. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/Receiver.py +64 -21
  206. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/Command.py +114 -45
  207. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/callback/callbackFunc.py +2 -3
  208. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/ArrayGetItemHandler.py +3 -6
  209. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/ArraySetItemHandler.py +24 -3
  210. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/GetKwargHandler.py +5 -0
  211. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/Handler.py +30 -12
  212. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/InvokeDelegateHandler.py +2 -2
  213. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/handler/InvokeGlobalFunctionHandler.py +2 -2
  214. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/interpreter/Interpreter.py +9 -9
  215. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/protocol/CommandDeserializer.py +137 -180
  216. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/protocol/CommandSerializer.py +32 -28
  217. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/receiver/Receiver.py +11 -10
  218. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/utils/Command.py +89 -24
  219. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  220. data/lib/javonet-ruby-sdk/core/handler/abstract_command_handler.rb +23 -23
  221. data/lib/javonet-ruby-sdk/core/handler/abstract_handler.rb +4 -4
  222. data/lib/javonet-ruby-sdk/core/handler/add_event_listener_handler.rb +12 -12
  223. data/lib/javonet-ruby-sdk/core/handler/array_get_item_handler.rb +47 -47
  224. data/lib/javonet-ruby-sdk/core/handler/array_get_rank_handler.rb +22 -22
  225. data/lib/javonet-ruby-sdk/core/handler/array_get_size_handler.rb +36 -36
  226. data/lib/javonet-ruby-sdk/core/handler/array_handler.rb +12 -12
  227. data/lib/javonet-ruby-sdk/core/handler/array_reference_handler.rb +12 -12
  228. data/lib/javonet-ruby-sdk/core/handler/array_set_item_handler.rb +46 -46
  229. data/lib/javonet-ruby-sdk/core/handler/as_kwargs_handler.rb +12 -12
  230. data/lib/javonet-ruby-sdk/core/handler/as_out_handler.rb +12 -12
  231. data/lib/javonet-ruby-sdk/core/handler/as_ref_handler.rb +11 -11
  232. data/lib/javonet-ruby-sdk/core/handler/casting_handler.rb +11 -11
  233. data/lib/javonet-ruby-sdk/core/handler/convert_type_handler.rb +11 -11
  234. data/lib/javonet-ruby-sdk/core/handler/create_class_instance_handler.rb +34 -34
  235. data/lib/javonet-ruby-sdk/core/handler/create_null_handler.rb +12 -12
  236. data/lib/javonet-ruby-sdk/core/handler/destruct_reference_handler.rb +20 -20
  237. data/lib/javonet-ruby-sdk/core/handler/enable_namespace_handler.rb +30 -30
  238. data/lib/javonet-ruby-sdk/core/handler/enable_type_handler.rb +32 -32
  239. data/lib/javonet-ruby-sdk/core/handler/exception_handler.rb +12 -12
  240. data/lib/javonet-ruby-sdk/core/handler/generate_lib_handler.rb +12 -12
  241. data/lib/javonet-ruby-sdk/core/handler/get_async_operation_result_handler.rb +12 -12
  242. data/lib/javonet-ruby-sdk/core/handler/get_enum_item_handler.rb +12 -12
  243. data/lib/javonet-ruby-sdk/core/handler/get_enum_name_handler.rb +12 -12
  244. data/lib/javonet-ruby-sdk/core/handler/get_enum_value_handler.rb +12 -12
  245. data/lib/javonet-ruby-sdk/core/handler/get_global_field_handler.rb +11 -11
  246. data/lib/javonet-ruby-sdk/core/handler/get_instance_field_handler.rb +34 -34
  247. data/lib/javonet-ruby-sdk/core/handler/get_instance_method_as_delegate_handler.rb +11 -11
  248. data/lib/javonet-ruby-sdk/core/handler/get_module_handler.rb +11 -11
  249. data/lib/javonet-ruby-sdk/core/handler/get_ref_value_handler.rb +11 -11
  250. data/lib/javonet-ruby-sdk/core/handler/get_result_type_handler.rb +12 -12
  251. data/lib/javonet-ruby-sdk/core/handler/get_static_field_handler.rb +34 -34
  252. data/lib/javonet-ruby-sdk/core/handler/get_static_method_as_delegate_handler.rb +11 -11
  253. data/lib/javonet-ruby-sdk/core/handler/get_type_handler.rb +70 -71
  254. data/lib/javonet-ruby-sdk/core/handler/handler.rb +227 -225
  255. data/lib/javonet-ruby-sdk/core/handler/handler_dictionary.rb +7 -7
  256. data/lib/javonet-ruby-sdk/core/handler/heartbeat_handler.rb +12 -12
  257. data/lib/javonet-ruby-sdk/core/handler/invoke_delegate_handler.rb +12 -12
  258. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_method_handler.rb +11 -11
  259. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_static_method_handler.rb +12 -12
  260. data/lib/javonet-ruby-sdk/core/handler/invoke_global_function_handler.rb +45 -45
  261. data/lib/javonet-ruby-sdk/core/handler/invoke_instance_method_handler.rb +35 -35
  262. data/lib/javonet-ruby-sdk/core/handler/invoke_static_method_handler.rb +38 -38
  263. data/lib/javonet-ruby-sdk/core/handler/load_library_handler.rb +49 -49
  264. data/lib/javonet-ruby-sdk/core/handler/optimize_handler.rb +12 -12
  265. data/lib/javonet-ruby-sdk/core/handler/pass_delegate_handler.rb +11 -11
  266. data/lib/javonet-ruby-sdk/core/handler/plugin_wrapper_handler.rb +12 -12
  267. data/lib/javonet-ruby-sdk/core/handler/register_for_update_handler.rb +28 -28
  268. data/lib/javonet-ruby-sdk/core/handler/resolve_instance_handler.rb +29 -29
  269. data/lib/javonet-ruby-sdk/core/handler/retrieve_array_handler.rb +12 -12
  270. data/lib/javonet-ruby-sdk/core/handler/set_instance_field_handler.rb +35 -35
  271. data/lib/javonet-ruby-sdk/core/handler/set_static_field_handler.rb +31 -31
  272. data/lib/javonet-ruby-sdk/core/handler/value_for_update_handler.rb +11 -11
  273. data/lib/javonet-ruby-sdk/core/handler/value_handler.rb +6 -6
  274. data/lib/javonet-ruby-sdk/core/interpreter/interpreter.rb +26 -28
  275. data/lib/javonet-ruby-sdk/core/namespace_cache/namespace_cache.rb +42 -42
  276. data/lib/javonet-ruby-sdk/core/protocol/command_deserializer.rb +184 -184
  277. data/lib/javonet-ruby-sdk/core/protocol/command_serializer.rb +36 -36
  278. data/lib/javonet-ruby-sdk/core/protocol/type_deserializer.rb +65 -65
  279. data/lib/javonet-ruby-sdk/core/protocol/type_serializer.rb +120 -120
  280. data/lib/javonet-ruby-sdk/core/receiver/{receiver_new.rb → receiver.rb} +38 -42
  281. data/lib/javonet-ruby-sdk/core/reference_cache/references_cache.rb +39 -39
  282. data/lib/javonet-ruby-sdk/core/transmitter/transmitter.rb +58 -58
  283. data/lib/javonet-ruby-sdk/core/transmitter/transmitter_wrapper.rb +31 -31
  284. data/lib/javonet-ruby-sdk/core/type_cache/type_cache.rb +41 -41
  285. data/lib/javonet-ruby-sdk/core/web_socket_client/web_socket_client.rb +228 -228
  286. data/lib/javonet-ruby-sdk/sdk/config_runtime_factory.rb +132 -132
  287. data/lib/javonet-ruby-sdk/sdk/configuration/config.rb +32 -0
  288. data/lib/javonet-ruby-sdk/sdk/configuration/config_priority.rb +27 -0
  289. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/config_resolver.rb +80 -0
  290. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/connection_string_config_resolver.rb +89 -0
  291. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/json_config_resolver.rb +66 -0
  292. data/lib/javonet-ruby-sdk/sdk/configuration/config_resolvers/yaml_config_resolver.rb +77 -0
  293. data/lib/javonet-ruby-sdk/sdk/configuration/config_source_resolver.rb +70 -0
  294. data/lib/javonet-ruby-sdk/sdk/configuration/configs_dictionary.rb +48 -0
  295. data/lib/javonet-ruby-sdk/sdk/internal/abstract_config_runtime_factory.rb +33 -33
  296. data/lib/javonet-ruby-sdk/sdk/internal/abstract_invocation_context.rb +70 -70
  297. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_context.rb +10 -10
  298. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_factory.rb +37 -37
  299. data/lib/javonet-ruby-sdk/sdk/internal/invocation_context_iterator.rb +27 -27
  300. data/lib/javonet-ruby-sdk/sdk/invocation_context.rb +314 -319
  301. data/lib/javonet-ruby-sdk/sdk/javonet.rb +132 -106
  302. data/lib/javonet-ruby-sdk/sdk/runtime_context.rb +259 -218
  303. data/lib/javonet-ruby-sdk/sdk/runtime_factory.rb +78 -78
  304. data/lib/javonet-ruby-sdk/sdk/tools/activation_helper.rb +37 -37
  305. data/lib/javonet-ruby-sdk/sdk/tools/json_file_resolver.rb +62 -62
  306. data/lib/javonet-ruby-sdk/sdk/tools/sdk_message_helper.rb +71 -71
  307. data/lib/javonet-ruby-sdk/utils/command.rb +79 -93
  308. data/lib/javonet-ruby-sdk/utils/command_type.rb +154 -154
  309. data/lib/javonet-ruby-sdk/utils/connection_type.rb +5 -5
  310. data/lib/javonet-ruby-sdk/utils/exceptions/exception_serializer.rb +116 -116
  311. data/lib/javonet-ruby-sdk/utils/exceptions/exception_thrower.rb +65 -65
  312. data/lib/javonet-ruby-sdk/utils/exceptions/exception_type.rb +10 -10
  313. data/lib/javonet-ruby-sdk/utils/os_helper.rb +21 -21
  314. data/lib/javonet-ruby-sdk/utils/runtime_logger.rb +46 -46
  315. data/lib/javonet-ruby-sdk/utils/runtime_name_handler.rb +71 -40
  316. data/lib/javonet-ruby-sdk/utils/runtime_name_javonet.rb +13 -13
  317. data/lib/javonet-ruby-sdk/utils/string_encoding_mode_javonet.rb +6 -6
  318. data/lib/javonet-ruby-sdk/utils/tcp_connection_data.rb +36 -36
  319. data/lib/javonet-ruby-sdk/utils/type.rb +15 -15
  320. data/lib/javonet-ruby-sdk/utils/types_handler.rb +10 -10
  321. data/lib/javonet-ruby-sdk/utils/ws_connection_data.rb +23 -19
  322. metadata +14 -117
  323. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libcrypto-3-arm64.dll +0 -0
  324. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libssl-3-arm64.dll +0 -0
  325. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxml2.dll +0 -0
  326. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxmlsec-openssl.dll +0 -0
  327. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxmlsec.dll +0 -0
  328. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/libxslt.dll +0 -0
  329. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libcrypto-3-x64.dll +0 -0
  330. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libssl-3-x64.dll +0 -0
  331. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxml2.dll +0 -0
  332. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxmlsec-openssl.dll +0 -0
  333. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxmlsec.dll +0 -0
  334. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/libxslt.dll +0 -0
  335. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libcrypto-3.dll +0 -0
  336. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libssl-3.dll +0 -0
  337. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxml2.dll +0 -0
  338. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxmlsec-openssl.dll +0 -0
  339. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxmlsec.dll +0 -0
  340. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/libxslt.dll +0 -0
  341. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/__pycache__/__init__.cpython-312.pyc +0 -0
  342. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/DelegatesCache.cpython-312.pyc +0 -0
  343. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/__init__.cpython-312.pyc +0 -0
  344. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractCommandHandler.cpython-312.pyc +0 -0
  345. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractHandler.cpython-312.pyc +0 -0
  346. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AddEventListenerHandler.cpython-312.pyc +0 -0
  347. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetItemHandler.cpython-312.pyc +0 -0
  348. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetRankHandler.cpython-312.pyc +0 -0
  349. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetSizeHandler.cpython-312.pyc +0 -0
  350. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayHandler.cpython-312.pyc +0 -0
  351. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayReferenceHandler.cpython-312.pyc +0 -0
  352. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArraySetItemHandler.cpython-312.pyc +0 -0
  353. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsOutHandler.cpython-312.pyc +0 -0
  354. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsRefHandler.cpython-312.pyc +0 -0
  355. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CastingHandler.cpython-312.pyc +0 -0
  356. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ConvertTypeHandler.cpython-312.pyc +0 -0
  357. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateClassInstanceHandler.cpython-312.pyc +0 -0
  358. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateNullHandler.cpython-312.pyc +0 -0
  359. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/DestructReferenceHandler.cpython-312.pyc +0 -0
  360. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableNamespaceHandler.cpython-312.pyc +0 -0
  361. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableTypeHandler.cpython-312.pyc +0 -0
  362. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ExceptionHandler.cpython-312.pyc +0 -0
  363. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GenerateLibHandler.cpython-312.pyc +0 -0
  364. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetAsyncOperationResultHandler.cpython-312.pyc +0 -0
  365. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumItemHandler.cpython-312.pyc +0 -0
  366. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumNameHandler.cpython-312.pyc +0 -0
  367. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumValueHandler.cpython-312.pyc +0 -0
  368. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetGlobalFieldHandler.cpython-312.pyc +0 -0
  369. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceFieldHandler.cpython-312.pyc +0 -0
  370. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceMethodAsDelegateHandler.cpython-312.pyc +0 -0
  371. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetKwargHandler.cpython-312.pyc +0 -0
  372. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetModuleHandler.cpython-312.pyc +0 -0
  373. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetRefValueHandler.cpython-312.pyc +0 -0
  374. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetResultTypeHandler.cpython-312.pyc +0 -0
  375. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticFieldHandler.cpython-312.pyc +0 -0
  376. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticMethodAsDelegateHandler.cpython-312.pyc +0 -0
  377. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetTypeHandler.cpython-312.pyc +0 -0
  378. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/Handler.cpython-312.pyc +0 -0
  379. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HandlerDictionary.cpython-312.pyc +0 -0
  380. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HeartBeatHandler.cpython-312.pyc +0 -0
  381. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeDelegateHandler.cpython-312.pyc +0 -0
  382. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericMethodHandler.cpython-312.pyc +0 -0
  383. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericStaticMethodHandler.cpython-312.pyc +0 -0
  384. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGlobalFunctionHandler.cpython-312.pyc +0 -0
  385. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeInstanceMethodHandler.cpython-312.pyc +0 -0
  386. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeStaticMethodHandler.cpython-312.pyc +0 -0
  387. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/LoadLibraryHandler.cpython-312.pyc +0 -0
  388. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/OptimizeHandler.cpython-312.pyc +0 -0
  389. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PassDelegateHandler.cpython-312.pyc +0 -0
  390. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PluginWrapperHandler.cpython-312.pyc +0 -0
  391. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RegisterForUpdateHandler.cpython-312.pyc +0 -0
  392. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ResolveInstanceHandler.cpython-312.pyc +0 -0
  393. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RetrieveArrayHandler.cpython-312.pyc +0 -0
  394. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetInstanceFieldHandler.cpython-312.pyc +0 -0
  395. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetStaticFieldHandler.cpython-312.pyc +0 -0
  396. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueForUpdateHandler.cpython-312.pyc +0 -0
  397. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueHandler.cpython-312.pyc +0 -0
  398. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/__init__.cpython-312.pyc +0 -0
  399. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/Interpreter.cpython-312.pyc +0 -0
  400. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/__init__.cpython-312.pyc +0 -0
  401. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/NamespaceCache.cpython-312.pyc +0 -0
  402. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  403. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-312.pyc +0 -0
  404. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandSerializer.cpython-312.pyc +0 -0
  405. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-312.pyc +0 -0
  406. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeSerializer.cpython-312.pyc +0 -0
  407. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/__init__.cpython-312.pyc +0 -0
  408. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/Receiver.cpython-312.pyc +0 -0
  409. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/__init__.cpython-312.pyc +0 -0
  410. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/ReferencesCache.cpython-312.pyc +0 -0
  411. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  412. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/TypeCache.cpython-312.pyc +0 -0
  413. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/__init__.cpython-312.pyc +0 -0
  414. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Command.cpython-312.pyc +0 -0
  415. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/CommandType.cpython-312.pyc +0 -0
  416. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ConnectionType.cpython-312.pyc +0 -0
  417. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ExceptionType.cpython-312.pyc +0 -0
  418. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/LazyModuleLoader.cpython-312.pyc +0 -0
  419. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeLogger.cpython-312.pyc +0 -0
  420. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeName.cpython-312.pyc +0 -0
  421. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/StringEncodingMode.cpython-312.pyc +0 -0
  422. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Type.cpython-312.pyc +0 -0
  423. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/TypesHandler.cpython-312.pyc +0 -0
  424. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/UtilsConst.cpython-312.pyc +0 -0
  425. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  426. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/IConnectionData.cpython-312.pyc +0 -0
  427. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/InMemoryConnectionData.cpython-312.pyc +0 -0
  428. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/__init__.cpython-312.pyc +0 -0
  429. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionSerializer.cpython-312.pyc +0 -0
  430. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionThrower.cpython-312.pyc +0 -0
  431. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/JavonetException.cpython-312.pyc +0 -0
  432. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/__init__.cpython-312.pyc +0 -0
  433. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/MessageHelper.cpython-312.pyc +0 -0
  434. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/__init__.cpython-312.pyc +0 -0
@@ -40,7 +40,7 @@ sub send_exception_to_app_insights {
40
40
  }
41
41
  catch ( $e ) {
42
42
  $javonet_version = "2.0.0";
43
- }
43
+ };
44
44
 
45
45
  my $node_name = eval {hostname()} || "Unknown Host";
46
46
 
@@ -86,8 +86,8 @@ sub send_exception_to_app_insights {
86
86
  return $response_code;
87
87
  }
88
88
  catch ( $e ) {
89
- return Exception->new($e);
89
+ return 500;
90
90
  }
91
91
  }
92
92
 
93
- 1;
93
+ 1;
@@ -135,7 +135,7 @@ Javonet::Core::Handler::HandlerDictionary::add_handler_to_dict(
135
135
  );
136
136
 
137
137
  sub handle_command {
138
- my ($self, $command) = @_;
138
+ my ($class, $command) = @_;
139
139
  my $response = Javonet::Core::Handler::HandlerDictionary::get_handler($command->{command_type})->handle_command($command);
140
140
 
141
141
  if (TypesHandler->is_primitive_or_none($response)) {
@@ -9,13 +9,8 @@ use aliased 'Javonet::Core::Protocol::CommandDeserializer' => 'CommandDeserializ
9
9
  use Exporter qw(import);
10
10
  our @EXPORT = qw(execute_ process);
11
11
 
12
- my $handler = PerlHandler->new();
13
-
14
12
  sub execute_ {
15
- my $self = shift;
16
- my $command = shift;
17
- my $connection_type = shift;
18
- my $tcp_address = shift;
13
+ my ($class, $command, $connection_type, $tcp_address) = @_;
19
14
  my @serialized_command = Javonet::Core::Protocol::CommandSerializer->serialize($command, $connection_type, $tcp_address, 0);
20
15
  my $response_byte_array_ref;
21
16
  if ($command->{runtime} eq Javonet::Sdk::Core::RuntimeLib::get_runtime('Perl')) {
@@ -26,18 +21,15 @@ sub execute_ {
26
21
  $response_byte_array_ref = Javonet::Core::Transmitter::PerlTransmitter->t_send_command(\@serialized_command);
27
22
  }
28
23
 
29
- my $commandDeserializer = CommandDeserializer->new($response_byte_array_ref);
30
- return $commandDeserializer->decode();
24
+ return CommandDeserializer->deserialize($response_byte_array_ref);
31
25
  }
32
26
 
33
27
  sub process {
34
- my ($self, $message_byte_array_ref) = @_;
28
+ my ($class, $message_byte_array_ref) = @_;
35
29
  my @message_byte_array = @$message_byte_array_ref;
36
- my $commandDeserializer = CommandDeserializer->new(\@message_byte_array);
37
- my $command = $commandDeserializer->decode();
38
- my $response = $handler->handle_command($command);
39
- my $commandSerializer = CommandSerializer->new();
40
- my @response_byte_array = $commandSerializer->serialize($response, 0, 0, 0);
30
+ my $command = CommandDeserializer->deserialize(\@message_byte_array);
31
+ my $response = PerlHandler->handle_command($command);
32
+ my @response_byte_array = CommandSerializer->serialize($response, 0, 0, 0);
41
33
  return @response_byte_array;
42
34
  }
43
35
 
@@ -1,204 +1,266 @@
1
1
  package Javonet::Core::Protocol::CommandDeserializer;
2
2
  use strict;
3
3
  use warnings;
4
- use Moose;
5
4
  use lib 'lib';
6
5
  use aliased 'Javonet::Sdk::Core::PerlCommand' => 'PerlCommand';
7
6
  use aliased 'Javonet::Sdk::Core::Type' => 'Type', qw(get_type);
8
7
  use aliased 'Javonet::Core::Protocol::TypeDeserializer' => 'TypeDeserializer';
9
8
 
10
9
  use Exporter qw(import);
11
- our @EXPORT = qw(new isAtEnd decode readObject readCommand readCommandRecursively readString readInt readBool readFloat readByte readChar readLongLong readDouble readUnsignedLongLong readUnsignedInt readUndef);
12
-
13
- our $position = 0;
14
- our @buffer = [];
15
- our $command;
16
-
17
- sub new {
18
- my ($self, $array_ref) = @_;
19
- @buffer = @$array_ref;
20
- $command = PerlCommand->new(runtime => $buffer[0],
21
- command_type => $buffer[10], payload => []);
22
- $position = 11;
23
- return $self;
24
- }
25
-
26
- sub isAtEnd {
27
- my $length = @buffer;
28
- return $position == $length;
29
- }
10
+ our @EXPORT = qw(deserialize);
30
11
 
31
- sub decode {
32
- while (!isAtEnd()) {
33
- $command = $command->addArgumentToPayload([ readObject($buffer[$position]) ]);
12
+ # Static deserialize method
13
+ sub deserialize {
14
+ my ($class, $byte_array_ref) = @_;
15
+ my @buffer = ref $byte_array_ref eq 'ARRAY' ? @$byte_array_ref : @$byte_array_ref;
16
+ my $position = 11; # Start position after header
17
+
18
+ my $command = PerlCommand->new(
19
+ runtime => $buffer[0],
20
+ command_type => $buffer[10],
21
+ payload => []
22
+ );
23
+
24
+ # Use position reference to simulate ref parameter
25
+ my $position_ref = \$position;
26
+
27
+ while ($position < @buffer) {
28
+ $command = $command->AddArgToPayload(ReadObject(\@buffer, $position_ref));
34
29
  }
30
+
35
31
  return $command;
36
32
  }
37
33
 
38
- sub readObject {
39
- my $type_num = $_[0];
40
- if ($type_num == Type->get_type('Command')) {
41
- return readCommand();
34
+ # ReadObject
35
+ sub ReadObject {
36
+ my ($buffer_ref, $position_ref) = @_;
37
+ my @buffer = @$buffer_ref;
38
+ my $position = $$position_ref;
39
+
40
+ my $type = $buffer[$position];
41
+
42
+ if ($type == Type->get_type('Command')) {
43
+ return ReadCommand($buffer_ref, $position_ref);
42
44
  }
43
- elsif ($type_num == Type->get_type('JavonetString')) {
44
- return readString();
45
+ elsif ($type == Type->get_type('JavonetString')) {
46
+ return ReadString($buffer_ref, $position_ref);
45
47
  }
46
- elsif ($type_num == Type->get_type('JavonetInteger')) {
47
- return readInt();
48
+ elsif ($type == Type->get_type('JavonetInteger')) {
49
+ return ReadInt($buffer_ref, $position_ref);
48
50
  }
49
- elsif ($type_num == Type->get_type('JavonetBool')) {
50
- return readBool();
51
+ elsif ($type == Type->get_type('JavonetBool')) {
52
+ return ReadBool($buffer_ref, $position_ref);
51
53
  }
52
- elsif ($type_num == Type->get_type('JavonetFloat')) {
53
- return readFloat();
54
+ elsif ($type == Type->get_type('JavonetFloat')) {
55
+ return ReadFloat($buffer_ref, $position_ref);
54
56
  }
55
- elsif ($type_num == Type->get_type('JavonetByte')) {
56
- return readByte();
57
+ elsif ($type == Type->get_type('JavonetByte')) {
58
+ return ReadByte($buffer_ref, $position_ref);
57
59
  }
58
- elsif ($type_num == Type->get_type('JavonetChar')) {
59
- return readChar();
60
+ elsif ($type == Type->get_type('JavonetChar')) {
61
+ return ReadChar($buffer_ref, $position_ref);
60
62
  }
61
- elsif ($type_num == Type->get_type('JavonetLongLong')) {
62
- return readLongLong();
63
+ elsif ($type == Type->get_type('JavonetLongLong')) {
64
+ return ReadLong($buffer_ref, $position_ref);
63
65
  }
64
- elsif ($type_num == Type->get_type('JavonetDouble')) {
65
- return readDouble();
66
+ elsif ($type == Type->get_type('JavonetDouble')) {
67
+ return ReadDouble($buffer_ref, $position_ref);
66
68
  }
67
- elsif ($type_num == Type->get_type('JavonetUnsignedLongLong')) {
68
- return readUnsignedLongLong();
69
+ elsif ($type == Type->get_type('JavonetUnsignedLongLong')) {
70
+ return ReadULong($buffer_ref, $position_ref);
69
71
  }
70
- elsif ($type_num == Type->get_type('JavonetUnsignedInteger')) {
71
- return readUnsignedInt();
72
+ elsif ($type == Type->get_type('JavonetUnsignedInteger')) {
73
+ return ReadUInt($buffer_ref, $position_ref);
72
74
  }
73
- elsif ($type_num == Type->get_type('JavonetNull')) {
74
- return readUndef();
75
+ elsif ($type == Type->get_type('JavonetNull')) {
76
+ return ReadNull($buffer_ref, $position_ref);
75
77
  }
76
78
  else {
77
- die "Type is not supported: $type_num";
79
+ die "NotImplementedException: Type not supported: $type";
78
80
  }
79
81
  }
80
82
 
81
- sub readCommand {
82
- my $p = $position;
83
+ # ReadCommand
84
+ sub ReadCommand {
85
+ my ($buffer_ref, $position_ref) = @_;
86
+ my @buffer = @$buffer_ref;
87
+ my $p = $$position_ref;
88
+
89
+ # Read numberOfElements from bytes p+1 to p+4
83
90
  my @int_buffer = @buffer[$p + 1 .. $p + 4];
84
- my $numberOfArgumentInPayload = TypeDeserializer->deserializeInt(\@int_buffer);
91
+ my $numberOfElements = TypeDeserializer->deserializeInt(\@int_buffer);
92
+
85
93
  my $runtime = $buffer[$p + 5];
86
94
  my $commandType = $buffer[$p + 6];
87
-
88
- $position += 7;
89
- my $returnCommand = PerlCommand->new(runtime => $runtime, command_type => $commandType);
90
- return readCommandRecursively($numberOfArgumentInPayload, $returnCommand);
91
- }
92
-
93
- sub readCommandRecursively {
94
- my $numberOfArgumentInPayloadLeft = $_[0];
95
- my $cmd = $_[1];
96
-
97
- if ($numberOfArgumentInPayloadLeft == 0) {
98
- return $cmd;
99
- }
100
- else {
101
- my $p = $position;
102
- my @int_buffer = @buffer[$p + 1 .. $p + 4];
103
- my $argSize = TypeDeserializer->deserializeInt(\@int_buffer);
104
- $cmd = $cmd->addArgumentToPayload([ readObject($buffer[$p]) ]);
105
- return readCommandRecursively($numberOfArgumentInPayloadLeft - 1, $cmd);
95
+
96
+ $$position_ref += 7;
97
+
98
+ # Read all payload elements at once
99
+ my @payload = ();
100
+ for (my $i = 0; $i < $numberOfElements; $i++) {
101
+ push @payload, ReadObject($buffer_ref, $position_ref);
106
102
  }
103
+
104
+ return PerlCommand->new(
105
+ runtime => $runtime,
106
+ command_type => $commandType,
107
+ payload => \@payload
108
+ );
107
109
  }
108
110
 
109
- sub readString {
110
- my $p = $position;
111
- my $string_encoding_mode = $buffer[$p + 1];
111
+ # ReadString
112
+ sub ReadString {
113
+ my ($buffer_ref, $position_ref) = @_;
114
+ my @buffer = @$buffer_ref;
115
+ my $p = $$position_ref;
116
+
117
+ my $mode = $buffer[$p + 1];
112
118
  my @int_buffer = @buffer[$p + 2 .. $p + 5];
113
119
  my $size = TypeDeserializer->deserializeInt(\@int_buffer);
114
- $position += 6;
115
- $p = $position;
116
- $position += $size;
120
+
121
+ $$position_ref += 6;
122
+ $p = $$position_ref;
123
+ $$position_ref += $size;
124
+
117
125
  my @string_buffer = @buffer[$p .. $p + $size - 1];
118
- my $decodedString = TypeDeserializer->deserializeString($string_encoding_mode, \@string_buffer);
119
-
120
- return $decodedString
126
+ return TypeDeserializer->deserializeString($mode, \@string_buffer);
121
127
  }
122
128
 
123
- sub readInt {
124
- $position += 2;
125
- my $p = $position;
126
- $position += 4;
127
- my @int_buffer = @buffer[$p .. $p + 3];
129
+ # ReadInt
130
+ sub ReadInt {
131
+ my ($buffer_ref, $position_ref) = @_;
132
+ my @buffer = @$buffer_ref;
133
+ my $size = 4;
134
+
135
+ $$position_ref += 2;
136
+ my $p = $$position_ref;
137
+ $$position_ref += $size;
138
+
139
+ my @int_buffer = @buffer[$p .. $p + $size - 1];
128
140
  return TypeDeserializer->deserializeInt(\@int_buffer);
129
141
  }
130
142
 
131
- sub readBool {
132
- $position += 2;
133
- my $p = $position;
134
- $position += 1;
135
- my $bool_buffer = $buffer[$p];
136
- return TypeDeserializer->deserializeBool($bool_buffer);
143
+ # ReadBool
144
+ sub ReadBool {
145
+ my ($buffer_ref, $position_ref) = @_;
146
+ my @buffer = @$buffer_ref;
147
+ my $size = 1;
148
+
149
+ $$position_ref += 2;
150
+ my $p = $$position_ref;
151
+ $$position_ref += $size;
152
+
153
+ return TypeDeserializer->deserializeBool($buffer[$p]);
137
154
  }
138
155
 
139
- sub readFloat {
140
- $position += 2;
141
- my $p = $position;
142
- $position += 4;
143
- my @float_buffer = @buffer[$p .. $p + 3];
156
+ # ReadFloat
157
+ sub ReadFloat {
158
+ my ($buffer_ref, $position_ref) = @_;
159
+ my @buffer = @$buffer_ref;
160
+ my $size = 4;
161
+
162
+ $$position_ref += 2;
163
+ my $p = $$position_ref;
164
+ $$position_ref += $size;
165
+
166
+ my @float_buffer = @buffer[$p .. $p + $size - 1];
144
167
  return TypeDeserializer->deserializeFloat(\@float_buffer);
145
168
  }
146
169
 
147
- sub readByte {
148
- $position += 2;
149
- my $p = $position;
150
- $position += 1;
151
- my $byte_buffer = $buffer[$p];
152
- return TypeDeserializer->deserializeByte($byte_buffer);
170
+ # ReadByte
171
+ sub ReadByte {
172
+ my ($buffer_ref, $position_ref) = @_;
173
+ my @buffer = @$buffer_ref;
174
+ my $size = 1;
175
+
176
+ $$position_ref += 2;
177
+ my $p = $$position_ref;
178
+ $$position_ref += $size;
179
+
180
+ return TypeDeserializer->deserializeByte($buffer[$p]);
153
181
  }
154
182
 
155
- sub readChar {
156
- $position += 2;
157
- my $p = $position;
158
- $position += 1;
159
- my $char_buffer = $buffer[$p];
160
- return TypeDeserializer->deserializeChar($char_buffer);
183
+ # ReadChar
184
+ sub ReadChar {
185
+ my ($buffer_ref, $position_ref) = @_;
186
+ my @buffer = @$buffer_ref;
187
+ my $size = 1;
188
+
189
+ $$position_ref += 2;
190
+ my $p = $$position_ref;
191
+ $$position_ref += $size;
192
+
193
+ return TypeDeserializer->deserializeChar($buffer[$p]);
161
194
  }
162
195
 
163
- sub readLongLong {
164
- $position += 2;
165
- my $p = $position;
166
- $position += 8;
167
- my @longlong_buffer = @buffer[$p .. $p + 7];
196
+ # ReadLong
197
+ sub ReadLong {
198
+ my ($buffer_ref, $position_ref) = @_;
199
+ my @buffer = @$buffer_ref;
200
+ my $size = 8;
201
+
202
+ $$position_ref += 2;
203
+ my $p = $$position_ref;
204
+ $$position_ref += $size;
205
+
206
+ my @longlong_buffer = @buffer[$p .. $p + $size - 1];
168
207
  return TypeDeserializer->deserializeLongLong(\@longlong_buffer);
169
208
  }
170
209
 
171
- sub readDouble {
172
- $position += 2;
173
- my $p = $position;
174
- $position += 8;
175
- my @double_buffer = @buffer[$p .. $p + 7];
210
+ # ReadDouble
211
+ sub ReadDouble {
212
+ my ($buffer_ref, $position_ref) = @_;
213
+ my @buffer = @$buffer_ref;
214
+ my $size = 8;
215
+
216
+ $$position_ref += 2;
217
+ my $p = $$position_ref;
218
+ $$position_ref += $size;
219
+
220
+ my @double_buffer = @buffer[$p .. $p + $size - 1];
176
221
  return TypeDeserializer->deserializeDouble(\@double_buffer);
177
222
  }
178
223
 
179
- sub readUnsignedLongLong {
180
- $position += 2;
181
- my $p = $position;
182
- $position += 8;
183
- my @ulonglong_buffer = @buffer[$p .. $p + 7];
224
+ # ReadULong
225
+ sub ReadULong {
226
+ my ($buffer_ref, $position_ref) = @_;
227
+ my @buffer = @$buffer_ref;
228
+ my $size = 8;
229
+
230
+ $$position_ref += 2;
231
+ my $p = $$position_ref;
232
+ $$position_ref += $size;
233
+
234
+ my @ulonglong_buffer = @buffer[$p .. $p + $size - 1];
184
235
  return TypeDeserializer->deserializeULongLong(\@ulonglong_buffer);
185
236
  }
186
237
 
187
- sub readUnsignedInt {
188
- $position += 2;
189
- my $p = $position;
190
- $position += 4;
191
- my @uint_buffer = @buffer[$p .. $p + 3];
238
+ # ReadUInt
239
+ sub ReadUInt {
240
+ my ($buffer_ref, $position_ref) = @_;
241
+ my @buffer = @$buffer_ref;
242
+ my $size = 4;
243
+
244
+ $$position_ref += 2;
245
+ my $p = $$position_ref;
246
+ $$position_ref += $size;
247
+
248
+ my @uint_buffer = @buffer[$p .. $p + $size - 1];
192
249
  return TypeDeserializer->deserializeUInt(\@uint_buffer);
193
250
  }
194
251
 
195
- sub readUndef {
196
- $position += 2;
197
- my $p = $position;
198
- $position += 1;
199
- my $undef_buffer = $buffer[$p];
200
- return TypeDeserializer->deserializeUndef($undef_buffer);
252
+ # ReadNull
253
+ sub ReadNull {
254
+ my ($buffer_ref, $position_ref) = @_;
255
+ my @buffer = @$buffer_ref;
256
+ my $size = 1;
257
+
258
+ $$position_ref += 2;
259
+ my $p = $$position_ref;
260
+ $$position_ref += $size;
261
+
262
+ # Note: deserializeUndef doesn't use the buffer, but we match C# structure
263
+ return TypeDeserializer->deserializeUndef();
201
264
  }
202
265
 
203
- no Moose;
204
266
  1;
@@ -1,7 +1,6 @@
1
1
  package Javonet::Core::Protocol::CommandSerializer;
2
2
  use strict;
3
3
  use warnings FATAL => 'all';
4
- use Moose;
5
4
 
6
5
  use lib 'lib';
7
6
  use aliased 'Javonet::Sdk::Core::PerlCommand' => 'PerlCommand';
@@ -9,81 +8,92 @@ use aliased 'Javonet::Sdk::Core::RuntimeLib' => 'RuntimeLib', qw(get_runtime);
9
8
  use aliased 'Javonet::Sdk::Core::Type' => 'Type', qw(get_type);
10
9
  use aliased 'Javonet::Core::Protocol::TypeSerializer' => 'TypeSerializer';
11
10
  use aliased 'Javonet::Sdk::Core::TypesHandler' => 'TypesHandler';
11
+ use aliased 'Javonet::Core::Handler::ReferencesCache' => 'ReferencesCache';
12
+ use aliased 'Javonet::Sdk::Core::PerlCommandType' => 'PerlCommandType';
12
13
  use Javonet::Sdk::Internal::ConnectionType;
13
- use Thread::Queue;
14
14
 
15
15
  use Exporter qw(import);
16
- our @EXPORT = qw(serialize serialize_tcp_address serialize_recursively insert_into_buffer);
17
-
18
- my @byte_buffer = ();
19
- my $queue = Thread::Queue->new();
16
+ our @EXPORT = qw(serialize serialize_connection_data);
20
17
 
21
18
  sub serialize {
22
- my ($self, $root_command, $connection_type, $tcp_address, $runtimeVersion) = @_;
23
- @byte_buffer = ();
24
- $queue = Thread::Queue->new();
25
- $queue->insert(0, $root_command);
26
- insert_into_buffer(($root_command->{runtime}, $runtimeVersion));
27
- insert_into_buffer(serialize_tcp_address($connection_type, $tcp_address));
28
- insert_into_buffer(Javonet::Sdk::Core::RuntimeLib::get_runtime('Perl'), $root_command->{command_type});
29
- serialize_recursively();
19
+ my ($class, $root_command, $connection_type, $tcp_address, $runtimeVersion) = @_;
20
+ $runtimeVersion = 0 unless defined $runtimeVersion;
21
+
22
+ # Local buffer instead of global
23
+ my @byte_buffer = ();
24
+
25
+ # Helper to insert data into buffer
26
+ my $insert_into_buffer = sub {
27
+ my (@data) = @_;
28
+ push @byte_buffer, @data;
29
+ };
30
+
31
+ # Write runtime and version
32
+ $insert_into_buffer->($root_command->{runtime}, $runtimeVersion);
33
+
34
+ # Write connection data
35
+ my @connection_data = $class->serialize_connection_data($connection_type, $tcp_address);
36
+ $insert_into_buffer->(@connection_data);
37
+
38
+ # Write runtime name and command type header for Perl runtime
39
+ $insert_into_buffer->(
40
+ Javonet::Sdk::Core::RuntimeLib::get_runtime('Perl'),
41
+ $root_command->{command_type}
42
+ );
43
+
44
+ # Serialize payload recursively
45
+ $class->serialize_recursively($root_command, $insert_into_buffer);
46
+
30
47
  return @byte_buffer;
31
48
  }
32
49
 
33
- sub serialize_tcp_address {
34
- my ($connection_type, $tcp_address) = @_;
35
- my @tcp_byte_array;
36
- if (Javonet::Sdk::Internal::ConnectionType::get_connection_type('Tcp') eq $connection_type) {
50
+ sub serialize_connection_data {
51
+ my ($class, $connection_type, $tcp_address) = @_;
52
+ if (defined $connection_type &&
53
+ Javonet::Sdk::Internal::ConnectionType::get_connection_type('Tcp') eq $connection_type) {
37
54
  my @tcp_array = split(':', $tcp_address);
38
55
  my @tcp_ip = split('\\.', $tcp_array[0]);
39
56
  my @bytes_port = unpack "C*", pack "v", $tcp_array[1];
40
- @tcp_byte_array = (Javonet::Sdk::Internal::ConnectionType::get_connection_type('Tcp'), @tcp_ip, @bytes_port);
41
- return @tcp_byte_array;
57
+ return (Javonet::Sdk::Internal::ConnectionType::get_connection_type('Tcp'), @tcp_ip, @bytes_port);
42
58
  }
43
59
  else {
44
- @tcp_byte_array = (Javonet::Sdk::Internal::ConnectionType::get_connection_type('InMemory'), 0, 0, 0, 0, 0, 0);
45
- return @tcp_byte_array;
60
+ return (Javonet::Sdk::Internal::ConnectionType::get_connection_type('InMemory'), 0, 0, 0, 0, 0, 0);
46
61
  }
47
62
  }
48
63
 
64
+ # Recursively serialize command payload - matches C# SerializeRecursively
49
65
  sub serialize_recursively {
50
- my $left = $queue->pending();
51
- if ($left == 0) {
52
- return @byte_buffer;
53
- }
54
- my $command = $queue->dequeue();
55
- $queue->insert(0, $command->drop_first_payload_argument());
56
- my $current_payload_ref = $command->{payload};
57
- my @cur_payload = @$current_payload_ref;
58
- my $payload_len = @cur_payload;
59
- if ($payload_len > 0) {
60
- if (!defined $cur_payload[0]) {
61
- insert_into_buffer(TypeSerializer->serializePrimitive(undef));
66
+ my ($class, $command, $insert_into_buffer) = @_;
67
+
68
+ my $payload_ref = $command->{payload};
69
+ my @payload = @$payload_ref;
70
+
71
+ foreach my $item (@payload) {
72
+ if (defined $item && ref $item eq 'Javonet::Sdk::Core::PerlCommand') {
73
+ # Item is a Command - serialize it and recurse
74
+ my @command_bytes = TypeSerializer->serializeCommand($item);
75
+ $insert_into_buffer->(@command_bytes);
76
+ $class->serialize_recursively($item, $insert_into_buffer);
62
77
  }
63
- elsif ($cur_payload[0]->isa("Javonet::Sdk::Core::PerlCommand")) {
64
- my $inner_command = $cur_payload[0];
65
- insert_into_buffer(TypeSerializer->serializeCommand($inner_command));
66
- $queue->insert(0, $inner_command);
67
- }
68
- elsif (TypesHandler->is_primitive_or_none($cur_payload[0])) {
69
- my @result = TypeSerializer->serializePrimitive($cur_payload[0]);
70
- insert_into_buffer(@result);
78
+ elsif (TypesHandler->is_primitive_or_none($item)) {
79
+ # Item is primitive or null
80
+ my @primitive_bytes = TypeSerializer->serializePrimitive($item);
81
+ $insert_into_buffer->(@primitive_bytes);
71
82
  }
72
83
  else {
73
- die "Unsupported payload item type: " . ref($cur_payload[0]) . " for payload item: $cur_payload[0].";
84
+ # Item is a reference - cache it and create a Reference command
85
+ my $reference_cache = ReferencesCache->new();
86
+ my $guid = $reference_cache->cache_reference($item);
87
+ my $reference_command = PerlCommand->new(
88
+ runtime => Javonet::Sdk::Core::RuntimeLib::get_runtime('Perl'),
89
+ command_type => PerlCommandType->get_command_type('Reference'),
90
+ payload => [$guid]
91
+ );
92
+ my @command_bytes = TypeSerializer->serializeCommand($reference_command);
93
+ $insert_into_buffer->(@command_bytes);
94
+ $class->serialize_recursively($reference_command, $insert_into_buffer);
74
95
  }
75
- return serialize_recursively();
76
96
  }
77
- else {
78
- $queue->dequeue();
79
- }
80
- return serialize_recursively();
81
- }
82
-
83
- sub insert_into_buffer {
84
- my @arguments = @_;
85
- @byte_buffer = (@byte_buffer, @arguments);
86
97
  }
87
98
 
88
- no Moose;
89
99
  1;