Module: Client::Listenable

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

Overview

The Listenable module

Instance Method Summary collapse

Instance Method Details

#add_listener(*listener) ⇒ Object



227
228
229
230
231
# File 'lib/client.rb', line 227

def add_listener(*listener)
  listeners.addAll(listener)
ensure
  log.trace "Listeners: #{listeners}"
end

#listenersObject



223
224
225
# File 'lib/client.rb', line 223

def listeners
  @listeners ||= java.util.concurrent.CopyOnWriteArrayList.new
end

#notify(event, *args) ⇒ Object



242
243
244
245
246
247
248
# File 'lib/client.rb', line 242

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



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

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

#replace_listeners(*listener) ⇒ Object



237
238
239
240
# File 'lib/client.rb', line 237

def replace_listeners(*listener)
  listeners.clear
  add_listener(*listener)
end