class Wamp::Client::Message::Invocation

Invocation Actual invocation of an endpoint sent by Dealer to a Callee. Formats:

[INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict]
[INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list]
[INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list, CALL.ArgumentsKw|dict]

Attributes

call_arguments[RW]
call_argumentskw[RW]
details[RW]
registered_registration[RW]
request[RW]

Public Class Methods

new(request, registered_registration, details, call_arguments=nil, call_argumentskw=nil) click to toggle source
# File lib/wamp/client/message.rb, line 971
def initialize(request, registered_registration, details, call_arguments=nil, call_argumentskw=nil)

  self.class.check_id('request', request)
  self.class.check_id('registered_registration', registered_registration)
  self.class.check_dict('details', details)
  self.class.check_list('call_arguments', call_arguments, true)
  self.class.check_dict('call_argumentskw', call_argumentskw, true)

  self.request = request
  self.registered_registration = registered_registration
  self.details = details
  self.call_arguments = call_arguments
  self.call_argumentskw = call_argumentskw

end
parse(params) click to toggle source
# File lib/wamp/client/message.rb, line 991
def self.parse(params)

  self.check_gte('params list', 4, params.count)
  self.check_equal('message type', self.type, params[0])

  params.shift
  self.new(*params)

end
type() click to toggle source
# File lib/wamp/client/message.rb, line 987
def self.type
  Types::INVOCATION
end

Public Instance Methods

payload() click to toggle source
# File lib/wamp/client/message.rb, line 1001
def payload
  self.call_arguments ||= []
  self.call_argumentskw ||= {}

  payload = [self.class.type]
  payload.push(self.request)
  payload.push(self.registered_registration)
  payload.push(self.details)

  return payload if (self.call_arguments.empty? and self.call_argumentskw.empty?)
  payload.push(self.call_arguments)

  return payload if (self.call_argumentskw.empty?)
  payload.push(self.call_argumentskw)

  payload
end
to_s() click to toggle source
# File lib/wamp/client/message.rb, line 1019
def to_s
  'INVOCATION > ' + self.payload.to_s
end