class Roby::Tasks::Parallel

Attributes

children_success[R]

Public Class Methods

new(arguments = {}) click to toggle source
Calls superclass method Roby::Tasks::TaskAggregator::new
# File lib/roby/tasks/parallel.rb, line 8
def initialize(arguments = {})
    super

    @children_success = Roby::AndGenerator.new
    @children_success.forward_to success_event
end

Public Instance Methods

<<(task) click to toggle source
# File lib/roby/tasks/parallel.rb, line 30
def <<(task)
    raise "trying to change a running parallel task" if running?
    @tasks << task

    start_event.signals task.start_event
    depends_on task
    children_success << task.success_event

    self
end
child_of(task = nil) click to toggle source
Calls superclass method
# File lib/roby/tasks/parallel.rb, line 15
def child_of(task = nil)
    return super() unless task

    task = task.new unless task.kind_of?(Roby::Task)
    @tasks.each do |t| 
        task.depends_on t
        task.start_event.signals t.start_event
    end
    children_success.forward_to task.success_event

    delete

    task
end
name() click to toggle source
# File lib/roby/tasks/parallel.rb, line 3
def name
    @name || @tasks.map { |t| t.name }.join("|")
end
to_parallel() click to toggle source
# File lib/roby/tasks/parallel.rb, line 41
def to_parallel; self end