class Pione::Agent::Messenger

Messenger is an agent for receiveing message logs.

Public Class Methods

new(tuple_space, receiver, session_id) click to toggle source

@param tuple_space [TupleSpace::TupleSpaceServer]

tuple space

@param receiver [Log::MessageLogReceiver]

message log receiver
Calls superclass method
# File lib/pione/agent/messenger.rb, line 11
def initialize(tuple_space, receiver, session_id)
  super(tuple_space)

  # message log receiver
  @receiver = receiver
  @session_id = session_id
end

Public Instance Methods

transit_to_pass() click to toggle source

Transits to the state ‘pass`.

# File lib/pione/agent/messenger.rb, line 33
def transit_to_pass
  tuples = take_all(TupleSpace::MessageTuple.any)
  tuples.sort{|a,b| a.timestamp <=> b.timestamp}.each do |tuple|
    tuple.contents.tap do |contents|
      (contents.kind_of?(String) ? [contents] : contents).each do |msg|
        @receiver.receive(msg, tuple.level, tuple.head, tuple.color, @session_id)
      end
    end
  end
end