class Wamp::Client::Message::Call

Call Call as originally issued by the Caller to the Dealer. Formats:

[CALL, Request|id, Options|dict, Procedure|uri]
[CALL, Request|id, Options|dict, Procedure|uri, Arguments|list]
[CALL, Request|id, Options|dict, Procedure|uri, Arguments|list, ArgumentsKw|dict]

Attributes

arguments[RW]
argumentskw[RW]
options[RW]
procedure[RW]
request[RW]

Public Class Methods

new(request, options, procedure, arguments=nil, argumentskw=nil) click to toggle source
# File lib/wamp/client/message.rb, line 664
def initialize(request, options, procedure, arguments=nil, argumentskw=nil)

  self.class.check_id('request', request)
  self.class.check_dict('options', options)
  self.class.check_uri('procedure', procedure)
  self.class.check_list('arguments', arguments, true)
  self.class.check_dict('argumentskw', argumentskw, true)

  self.request = request
  self.options = options
  self.procedure = procedure
  self.arguments = arguments
  self.argumentskw = argumentskw

end
parse(params) click to toggle source
# File lib/wamp/client/message.rb, line 684
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 680
def self.type
  Types::CALL
end

Public Instance Methods

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

  payload = [self.class.type]
  payload.push(self.request)
  payload.push(self.options)
  payload.push(self.procedure)

  return payload if (self.arguments.empty? and self.argumentskw.empty?)
  payload.push(self.arguments)

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

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