class Gossiperl::Client::Supervisor

Public Instance Methods

connect(options, &block) click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 8
def connect options, &block
  ::Gossiperl::Client::Util::Validation.validate_connect( options )
  overlay_name = options[:overlay_name].to_sym
  raise ArgumentError.new("Client for #{overlay_name} already present.") if self.connections.has_key?(overlay_name)
  if block_given?
    self.connections[ overlay_name ] = ::Gossiperl::Client::OverlayWorker.new(self, options, block)
  else
    self.connections[ overlay_name ] = ::Gossiperl::Client::OverlayWorker.new(self, options, nil)
  end
  self.connections[ overlay_name ].start
end
disconnect(overlay_name) click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 20
def disconnect overlay_name
  overlay_name = overlay_name.to_sym
  if self.connections.has_key? overlay_name
    self.connections[ overlay_name ].stop
    self.connections.delete overlay_name
  else
    raise ArgumentError.new("[supervisor] No overlay connection: #{overlay_name}.")
  end
end
send(overlay_name, digest_type, digest_data) click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 66
def send overlay_name, digest_type, digest_data
  overlay_name = overlay_name.to_sym
  if self.connections.has_key? overlay_name
    self.connections[ overlay_name ].send digest_type, digest_data
  else
    raise ArgumentError.new("[supervisor] No overlay connection: #{overlay_name}.")
  end
end
state(overlay_name) click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 39
def state overlay_name
  overlay_name = overlay_name.to_sym
  if self.connections.has_key? overlay_name
    self.connections[ overlay_name ].current_state
  else
    raise ArgumentError.new("[supervisor] No overlay connection: #{overlay_name}.")
  end
end
stop() click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 75
def stop
  self.connections.keys.each_value {|ow|
    ow.stop
  }
end
subscribe(overlay_name, event_types) click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 48
def subscribe overlay_name, event_types
  overlay_name = overlay_name.to_sym
  if self.connections.has_key? overlay_name
    self.connections[ overlay_name ].subscribe event_types
  else
    raise ArgumentError.new("[supervisor] No overlay connection: #{overlay_name}.")
  end
end
subscriptions(overlay_name) click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 30
def subscriptions overlay_name
  overlay_name = overlay_name.to_sym
  if self.connections.has_key? overlay_name
    self.connections[ overlay_name ].subscriptions
  else
    raise ArgumentError.new("[supervisor] No overlay connection: #{overlay_name}.")
  end
end
unsubscribe(overlay_name, event_types) click to toggle source
# File lib/gossiperl_client/supervisor.rb, line 57
def unsubscribe overlay_name, event_types
  overlay_name = overlay_name.to_sym
  if self.connections.has_key? overlay_name
    self.connections[ overlay_name ].unsubscribe event_types
  else
    raise ArgumentError.new("[supervisor] No overlay connection: #{overlay_name}.")
  end
end