class Roby::EventStructure::EventDeadlines

Class used to maintain the event deadlines

Attributes

deadlines[R]

Public Class Methods

new() click to toggle source
# File lib/roby/event_structure/temporal_constraints.rb, line 18
def initialize
    @deadlines = Array.new
end

Public Instance Methods

add(deadline, event, generator) click to toggle source

Adds a deadline to the set

# File lib/roby/event_structure/temporal_constraints.rb, line 23
def add(deadline, event, generator)
    deadlines << [deadline, event, generator]
    @deadlines = deadlines.sort_by(&:first)
end
missed_deadlines(current_time) click to toggle source

Returns the set of deadlines that have been missed at current_time. These deadlines get removed from the set.

# File lib/roby/event_structure/temporal_constraints.rb, line 48
def missed_deadlines(current_time)
    result = []
    while !deadlines.empty? && deadlines.first[0] < current_time
        result << deadlines.shift
    end
    result
end
remove_deadline_for(generator, time) click to toggle source

Remove the first deadline registered for generator

# File lib/roby/event_structure/temporal_constraints.rb, line 29
def remove_deadline_for(generator, time)
    found = false
    deadlines.delete_if do |deadline, _, gen|
        if found
            false
        else
            found = (deadline > time && generator == gen)
        end
    end
    found
end
size() click to toggle source

Returns the number of queued deadlines

# File lib/roby/event_structure/temporal_constraints.rb, line 42
def size
    @deadlines.size
end