class Orocos::Async::NameService

Public Class Methods

new(*name_services) click to toggle source
Calls superclass method Orocos::Async::NameServiceBase.new
# File lib/orocos/async/name_service.rb, line 134
def initialize(*name_services)
    options = if name_services.last.is_a? Hash
                  name_services.pop
              else
                  Hash.new
              end
    name_services = name_services.map { |ns| ns.to_async }
    name_service = Orocos::NameService.new *name_services
    super(name_service,options)
end

Public Instance Methods

add(name_service) click to toggle source

(see Orocos::NameServiceBase#add)

Emits the name_service_added event

# File lib/orocos/async/name_service.rb, line 175
def add(name_service)
    name_service = name_service.to_async
    orig_add(name_service)
    event :name_service_added,name_service
end
add_front(name_service) click to toggle source

(see Orocos::NameServiceBase#add_front)

Emits the name_service_added event

# File lib/orocos/async/name_service.rb, line 184
def add_front(name_service)
    name_service = name_service.to_async
    orig_add_front(name_service)
    event :name_service_added,name_service
end
add_listener(listener) click to toggle source

Overloaded to emit the name_service_added event for already registered name services

Calls superclass method
# File lib/orocos/async/name_service.rb, line 160
def add_listener(listener)
    if listener.event == :name_service_added
        services = name_services.dup
        event_loop.once do
            services.each do |ns|
                listener.call ns
            end
        end
    end
    super
end
clear() click to toggle source
# File lib/orocos/async/name_service.rb, line 145
def clear
    task_context_proxies.clear
    orig_clear
end
proxy(name,options = Hash.new) click to toggle source
Calls superclass method Orocos::Async::NameServiceBase#proxy
# File lib/orocos/async/name_service.rb, line 150
def proxy(name,options = Hash.new)
    if(name_services.empty?)
        Vizkit.error "Orocos is not initialized!" unless Orocos.initialized?
        raise "No name service available."
    end
    super
end
remove(name_service) click to toggle source

(see Orocos::NameServiceBase#remove)

Emits the name_service_removed event

# File lib/orocos/async/name_service.rb, line 193
def remove(name_service)
    removed = false
    name_services.delete_if do |ns|
        if name_service == ns || ns.delegator_obj == ns
            true
        end
    end
    if removed
        event :name_service_removed,name_service
        true
    end
end