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