class Citrus::ConsoleModules::MasterWatcher
MaterWatcher
Public Class Methods
new(args={})
click to toggle source
Initialize the module
@param [Hash] args @param [Object] console_service
# File lib/citrus/modules/master_watcher.rb, line 24 def initialize args={}, console_service @app = args[:app] @service = console_service @server_id = @app.server_id @watchdog = Master::WatchDog.new @app, @service @service.on('register') { |*args| on_server_add *args } @service.on('disconnect') { |*args| on_server_leave *args } @service.on('reconnect') { |*args| on_server_reconnect *args } end
Public Instance Methods
master_handler(agent, msg, &block)
click to toggle source
Master
handler
@param [Object] agent @param [Hash] msg
# File lib/citrus/modules/master_watcher.rb, line 43 def master_handler agent, msg, &block return if !msg case msg[:action] when 'subscribe' handle_subscribe agent, msg, &block else end end
start() { || ... }
click to toggle source
Start the module
# File lib/citrus/modules/master_watcher.rb, line 35 def start &block block_given? and yield end
Private Instance Methods
handle_subscribe(agent, msg) { |nil, query| ... }
click to toggle source
Handle subscribe
@param [Object] agent @param [Hash] msg
@private
# File lib/citrus/modules/master_watcher.rb, line 81 def handle_subscribe agent, msg, &block return if !msg @watchdog.subscribe msg[:server_id] block_given? and yield nil, @watchdog.query end
on_server_add(record)
click to toggle source
Server
add listener
@param [Hash] record @private
# File lib/citrus/modules/master_watcher.rb, line 58 def on_server_add record return if !record || record[:type] == 'client' || !record[:server_type] @watchdog.add_server record end
on_server_leave()
click to toggle source
Server
leave listener
@private
# File lib/citrus/modules/master_watcher.rb, line 66 def on_server_leave end
on_server_reconnect()
click to toggle source
Server
reconnect listener
@private
# File lib/citrus/modules/master_watcher.rb, line 72 def on_server_reconnect end