Class: Appcelerator::InmemoryServiceBroker

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/appcelerator/servicebroker/inmemory_service_broker.rb

Instance Method Summary collapse

Constructor Details

#initializeInmemoryServiceBroker

Returns a new instance of InmemoryServiceBroker.



11
12
13
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 11

def initialize 
  @listeners={}
end

Instance Method Details

#clear_listenersObject



28
29
30
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 28

def clear_listeners
  @listeners.clear
end

#diagnosticsObject



45
46
47
48
49
50
51
52
53
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 45

def diagnostics
  all = []
  @listeners.each do |k,v|
    v.each do |proc|
      all << proc.to_s
    end
  end
  all.join "\n"
end

#register_listener(msgtype, listener) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 15

def register_listener(msgtype,listener)      
  begin
    @listeners[msgtype] << listener
  rescue
    @listeners[msgtype] = LastInSet.new << listener
  end
end

#send(msg) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 32

def send(msg)
  begin
    array = @listeners[msg.message_type] || []
    
    array.map do |listener|
      listener.call(msg.clone)
    end
  rescue => error
    puts $!
    raise error
  end
end

#unregister_listener(msgtype, listener) ⇒ Object



23
24
25
26
# File 'lib/appcelerator/servicebroker/inmemory_service_broker.rb', line 23

def unregister_listener(msgtype,listener)
  array = @listeners[msgtype]
  array.delete_if { |a| a == listener } if array
end