class Sumac::Message::Exchange::CallRequest

Public Class Methods

new(connection) click to toggle source
Calls superclass method Sumac::Message::Exchange::ID::new
# File lib/sumac/message/exchange/call_request.rb, line 7
def initialize(connection)
  super
  @exposed_object = nil
  @child = nil
  @method_name = nil
  @arguments = nil
end

Public Instance Methods

arguments() click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 68
def arguments
  raise MessageError unless setup?
  @arguments.map(&:to_native_object)
end
arguments=(new_arguments) click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 73
def arguments=(new_arguments)
  raise MessageError unless new_arguments.is_a?(Array)
  @arguments = new_arguments.map do |native_argument|
    Object.from_native_object(@connection, native_argument)
  end
end
exposed_object() click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 45
def exposed_object
  raise MessageError unless setup?
  @exposed_object.to_native_object
end
exposed_object=(new_exposed_object) click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 50
def exposed_object=(new_exposed_object)
  unless new_exposed_object.is_a?(RemoteObject) || new_exposed_object.is_a?(RemoteObjectChild) ||
         new_exposed_object.respond_to?(:__sumac_exposed_object__)
    raise MessageError
  end
  @exposed_object = Object.from_native_object(@connection, new_exposed_object)
end
invert_orgin() click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 80
def invert_orgin
  raise MessageError unless setup?
  @exposed_object.invert_orgin
  @arguments.each { |argument| argument.invert_orgin if argument.respond_to?(:invert_orgin) }
  nil
end
method_name() click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 58
def method_name
  raise MessageError unless setup?
  @method_name
end
method_name=(new_method_name) click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 63
def method_name=(new_method_name)
  raise MessageError unless new_method_name.is_a?(String)
  @method_name = new_method_name
end
parse_json_structure(json_structure) click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 15
def parse_json_structure(json_structure)
  raise MessageError unless json_structure.is_a?(Hash) &&
    json_structure['message_type'] == 'exchange' &&
    json_structure['exchange_type'] == 'call_request'
  raise MessageError unless json_structure['id'].is_a?(Integer)
  @id = json_structure['id']
  exposed_object = Object.from_json_structure(@connection, json_structure['exposed_object'])
  raise MessageError unless exposed_object.is_a?(Object::Exposed) || exposed_object.is_a?(Object::ExposedChild)
  @exposed_object = exposed_object
  raise MessageError unless json_structure['method_name'].is_a?(String)
  @method_name = json_structure['method_name']
  raise MessageError unless json_structure['arguments'].is_a?(Array)
  @arguments = json_structure['arguments'].map do |argument_json_structure|
    Object.from_json_structure(@connection, argument_json_structure)
  end
  nil
end
to_json_structure() click to toggle source
# File lib/sumac/message/exchange/call_request.rb, line 33
def to_json_structure
  raise unless setup?
  {
    'message_type' => 'exchange',
    'exchange_type' => 'call_request',
    'id' => @id,
    'exposed_object' => @exposed_object.to_json_structure,
    'method_name' => @method_name,
    'arguments' => @arguments.map(&:to_json_structure)
  }
end

Private Instance Methods

setup?() click to toggle source
Calls superclass method Sumac::Message::Exchange::ID#setup?
# File lib/sumac/message/exchange/call_request.rb, line 89
def setup?
  super && @exposed_object != nil && @method_name != nil && @arguments != nil
end