module Aws::RpcV2

@api private

Public Class Methods

decode(bytes) click to toggle source
# File lib/aws-sdk-core/rpc_v2.rb, line 37
def decode(bytes)
  bytes.force_encoding(Encoding::BINARY)
  @engine.decode(bytes)
end
encode(data) click to toggle source
# File lib/aws-sdk-core/rpc_v2.rb, line 33
def encode(data)
  @engine.encode(data)
end
engine() click to toggle source

@return [Class] Returns the default engine.

One of:

* {CborEngine}
# File lib/aws-sdk-core/rpc_v2.rb, line 28
def engine
  set_default_engine unless @engine
  @engine
end
engine=(engine) click to toggle source

@param [Symbol,Class] engine

Must be one of the following values:

* :cbor
# File lib/aws-sdk-core/rpc_v2.rb, line 19
def engine=(engine)
  @engine = Class === engine ? engine : load_engine(engine)
end
set_default_engine() click to toggle source
# File lib/aws-sdk-core/rpc_v2.rb, line 42
def set_default_engine
  [:cbor].each do |name|
    @engine ||= try_load_engine(name)
  end

  unless @engine
    raise 'Unable to find a compatible cbor library.'
  end
end

Private Class Methods

load_engine(name) click to toggle source
# File lib/aws-sdk-core/rpc_v2.rb, line 54
def load_engine(name)
  require "aws-sdk-core/rpc_v2/#{name}_engine"
  const_name = name[0].upcase + name[1..-1] + 'Engine'
  const_get(const_name)
end
try_load_engine(name) click to toggle source
# File lib/aws-sdk-core/rpc_v2.rb, line 60
def try_load_engine(name)
  load_engine(name)
rescue LoadError
  false
end