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