Module: Client::Listenable

Included in:
ModularHandler, TCP::Client
Defined in:
lib/tcp_server/client.rb

Overview

The Listenable module

Instance Method Summary collapse

Instance Method Details

#add_listener(*listener) ⇒ Object



236
237
238
# File 'lib/tcp_server/client.rb', line 236

def add_listener(*listener)
  listeners.addAll(listener)
end

#listenersObject



232
233
234
# File 'lib/tcp_server/client.rb', line 232

def listeners
  @listeners ||= CopyOnWriteArrayList.new
end

#notify(event, *args) ⇒ Object



251
252
253
254
255
256
257
# File 'lib/tcp_server/client.rb', line 251

def notify(event, *args)
  listeners.each do |listener|
    next unless listener.respond_to?(event.to_sym)
    log.trace "Notifying listener #{listener} of event: #{event}"
    listener.send(event.to_sym, *args)
  end
end

#remove_listener(*listener) ⇒ Object



240
241
242
# File 'lib/tcp_server/client.rb', line 240

def remove_listener(*listener)
  listeners.removeAll(listener)
end

#replace_listeners(*listener) ⇒ Object



244
245
246
247
248
249
# File 'lib/tcp_server/client.rb', line 244

def replace_listeners(*listener)
  listeners.clear
  add_listener(*listener)
ensure
  log.trace "##{__method__} listeners: #{listeners}"
end