class Tribe::Registry

Public Class Methods

new() click to toggle source
# File lib/tribe/registry.rb, line 3
def initialize
  @mutex = Mutex.new
  @actors_by_name = {}
  @actors_by_oid = {}
end

Public Instance Methods

[](val) click to toggle source
# File lib/tribe/registry.rb, line 29
def [](val)
  @mutex.synchronize do
    return @actors_by_name[val]
  end
end
dispose() click to toggle source
# File lib/tribe/registry.rb, line 35
def dispose
  @mutex.synchronize do
    @actors_by_name.clear
    @actors_by_oid.clear

    return nil
  end
end
inspect() click to toggle source
# File lib/tribe/registry.rb, line 44
def inspect
  @mutex.synchronize do
    return "#<#{self.class.to_s}:0x#{(object_id << 1).to_s(16)} oid_count=#{@actors_by_oid.count}, named_count=#{@actors_by_name.count}>"
  end
end
register(actor) click to toggle source
# File lib/tribe/registry.rb, line 9
def register(actor)
  @mutex.synchronize do
    raise Tribe::RegistryError.new("Actor already exists (#{actor.name}).") if @actors_by_name.key?(actor.name)

    @actors_by_name[actor.name] = actor if actor.name
    @actors_by_oid[actor.object_id] = actor

    return nil
  end
end
unregister(actor) click to toggle source
# File lib/tribe/registry.rb, line 20
def unregister(actor)
  @mutex.synchronize do
    @actors_by_name.delete(actor.name) if actor.name
    @actors_by_oid.delete(actor.object_id)

    return nil
  end
end