Class: Wamp::Client::Message::Event

Inherits:
Base
  • Object
show all
Defined in:
lib/wamp/client/message.rb

Overview

Event Event dispatched by Broker to Subscribers for subscriptions the event was matching. Formats:

[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict]
[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list]
[EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentsKw|dict]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Check

included

Constructor Details

#initialize(subscribed_subscription, published_publication, details, publish_arguments = nil, publish_argumentskw = nil) ⇒ Event

Returns a new instance of Event.



601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
# File 'lib/wamp/client/message.rb', line 601

def initialize(subscribed_subscription, published_publication, details, publish_arguments=nil, publish_argumentskw=nil)

  self.class.check_id('subscribed_subscription', subscribed_subscription)
  self.class.check_id('published_publication', published_publication)
  self.class.check_dict('details', details)
  self.class.check_list('publish_arguments', publish_arguments, true)
  self.class.check_dict('publish_argumentskw', publish_argumentskw, true)

  self.subscribed_subscription = subscribed_subscription
  self.published_publication = published_publication
  self.details = details
  self.publish_arguments = publish_arguments
  self.publish_argumentskw = publish_argumentskw

end

Instance Attribute Details

#detailsObject

Returns the value of attribute details.



599
600
601
# File 'lib/wamp/client/message.rb', line 599

def details
  @details
end

#publish_argumentsObject

Returns the value of attribute publish_arguments.



599
600
601
# File 'lib/wamp/client/message.rb', line 599

def publish_arguments
  @publish_arguments
end

#publish_argumentskwObject

Returns the value of attribute publish_argumentskw.



599
600
601
# File 'lib/wamp/client/message.rb', line 599

def publish_argumentskw
  @publish_argumentskw
end

#published_publicationObject

Returns the value of attribute published_publication.



599
600
601
# File 'lib/wamp/client/message.rb', line 599

def published_publication
  @published_publication
end

#subscribed_subscriptionObject

Returns the value of attribute subscribed_subscription.



599
600
601
# File 'lib/wamp/client/message.rb', line 599

def subscribed_subscription
  @subscribed_subscription
end

Class Method Details

.parse(params) ⇒ Object



621
622
623
624
625
626
627
628
629
# File 'lib/wamp/client/message.rb', line 621

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

.typeObject



617
618
619
# File 'lib/wamp/client/message.rb', line 617

def self.type
  Types::EVENT
end

Instance Method Details

#payloadObject



631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
# File 'lib/wamp/client/message.rb', line 631

def payload
  self.publish_arguments ||= []
  self.publish_argumentskw ||= {}

  payload = [self.class.type]
  payload.push(self.subscribed_subscription)
  payload.push(self.published_publication)
  payload.push(self.details)

  return payload if (self.publish_arguments.empty? and self.publish_argumentskw.empty?)
  payload.push(self.publish_arguments)

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

  payload
end

#to_sObject



649
650
651
# File 'lib/wamp/client/message.rb', line 649

def to_s
  'EVENT > ' + self.payload.to_s
end