Sha256: 8b1ffbc6c86080e8c3d8f0c5a74d1a63a9e666fdc5c86d578e271c1856b5a058

Contents?: true

Size: 1.03 KB

Versions: 16

Compression:

Stored size: 1.03 KB

Contents

require_relative 'type_serializer'
require_relative '../../utils/command'
require_relative '../../utils/runtime_name'
require_relative '../../utils/tcp_connection_data'

class CommandSerializer
  def initialize
    @buffer = []
  end

  def serialize(root_command, connection_data = nil, runtime_version = 0)
    insert_into_buffer([root_command.runtime_name, runtime_version])
    if connection_data.nil?
      insert_into_buffer([0, 0, 0, 0, 0, 0, 0])
    else
      insert_into_buffer(connection_data.serialize_connection_data)
    end
    insert_into_buffer([RuntimeName::PYTHON, root_command.command_type])
    serialize_recursively(root_command)
    @buffer
  end

  def serialize_recursively(command)
    command.payload.each do |item|
      if item.is_a?(Command)
        insert_into_buffer(TypeSerializer.serialize_command(item))
        serialize_recursively(item)
      else
        insert_into_buffer(TypeSerializer.serialize_primitive(item))
      end
    end
  end

  def insert_into_buffer(arguments)
    @buffer += arguments
  end
end

Version data entries

16 entries across 8 versions & 1 rubygems

Version Path
javonet-ruby-sdk-2.5.12 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.12 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.11 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.11 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.10 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.10 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.9 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.9 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.8 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.8 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.7 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.7 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.6 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.6 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.5 lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb
javonet-ruby-sdk-2.5.5 lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb