class OmfCommon::Comm::Local::Topic

Public Class Methods

marshall_messages=(flag) click to toggle source

If set to ‘true’ marshall and immediately unmarshall before handing it on messages

# File lib/omf_common/comm/local/local_topic.rb, line 16
def self.marshall_messages=(flag)
  @@marshall_messages = (flag == true)
end

Public Instance Methods

address() click to toggle source
# File lib/omf_common/comm/local/local_topic.rb, line 28
def address
  @id
end
on_subscribed(&block) click to toggle source
# File lib/omf_common/comm/local/local_topic.rb, line 32
def on_subscribed(&block)
  return unless block

  OmfCommon.eventloop.after(0) do
    block.arity == 1 ? block.call(self) : block.call
  end
end
to_s() click to toggle source

def self.address_for(name) “#{name}@local” end

# File lib/omf_common/comm/local/local_topic.rb, line 24
def to_s
  "Local::Topic<#{id}>"
end

Private Instance Methods

_send_message(msg, block = nil) click to toggle source
Calls superclass method OmfCommon::Comm::Topic#_send_message
# File lib/omf_common/comm/local/local_topic.rb, line 42
def _send_message(msg, block = nil)
  super
  debug "(#{id}) Send message #{msg.inspect}"
  if @@marshall_messages
    content_type, payload = msg.marshall(self)
    Message.parse(payload, content_type) do
      OmfCommon.eventloop.after(0) do
        on_incoming_message(msg)
      end
    end
  else
    OmfCommon.eventloop.after(0) do
      on_incoming_message(msg)
    end
  end
end