class Bell::Ami::Stream
Attributes
ami_stream[RW]
event_handlers[RW]
host[RW]
logger[RW]
password[RW]
port[RW]
user[RW]
Public Class Methods
new(host,port,user,password, logger)
click to toggle source
# File lib/bell/ami/stream.rb, line 8 def initialize(host,port,user,password, logger) @host=host @port=port @user=user @password=password @logger=logger @ami_stream = RubyAMI::Stream.new @host, @port, @user, @password, lambda{|e| self.handle_event(e) }, @logger, 10 @event_handlers=[] end
Public Instance Methods
async_run()
click to toggle source
# File lib/bell/ami/stream.rb, line 45 def async_run @ami_stream.async.run end
handle_event(event)
click to toggle source
# File lib/bell/ami/stream.rb, line 22 def handle_event(event) if event.class.name=='RubyAMI::Stream::Disconnected' #handle disconnection event_handlers.each do |event_handler| if event_handler.class.method_defined? :handle_disconnected event_handler.handle_disconnected end end elsif event.class.name=='RubyAMI::Stream::Connected' event_handlers.each do |event_handler| if event_handler.class.method_defined? :handle_connected event_handler.handle_connected end end elsif event.class.name=='RubyAMI::Event' event_handlers.each do |event_handler| if event_handler.class.method_defined? :handle_event event_handler.handle_event(event) end end end end
login()
click to toggle source
# File lib/bell/ami/stream.rb, line 18 def login @ami_stream.login end
queue_status(queue_name)
click to toggle source
# File lib/bell/ami/stream.rb, line 53 def queue_status(queue_name) @ami_stream.send_action('Queuestatus',{"Queue"=>queue_name }) end
register_handler(handler)
click to toggle source
# File lib/bell/ami/stream.rb, line 57 def register_handler(handler) @event_handlers << handler end
status()
click to toggle source
# File lib/bell/ami/stream.rb, line 49 def status @ami_stream.send_action('Status') end
terminate()
click to toggle source
# File lib/bell/ami/stream.rb, line 65 def terminate if @ami_stream.alive? && @ami_stream.started? @ami_stream.send_action('LOGOFF') end end
unregister_handler(handler)
click to toggle source
# File lib/bell/ami/stream.rb, line 61 def unregister_handler(handler) @event_handlers.delete(handler) end