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