class Roby::EventConstraints::UnboundTaskPredicate::FollowedBy
Representation of UnboundPredicateSupport#followed_by
See documentation from UnboundTaskPredicate
Public Instance Methods
code()
click to toggle source
# File lib/roby/event_constraints.rb, line 689 def code this_event = predicates[0].event_name other_event = predicates[1].event_name "(task_#{this_event} && task_#{other_event} && task_#{other_event}.time > task_#{this_event}.time)" end
explain_false(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 649 def explain_false(task) return if evaluate(task) this_generator = task.event(predicates[0].event_name) other_generator = task.event(predicates[1].event_name) if !this_generator.last Explanation.new(false, self, [this_generator]) else Explanation.new(false, self, [other_generator]) end end
explain_static(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 660 def explain_static(task) return if !static?(task) if predicates[0].static?(task) this_generator = task.event(predicates[0].event_name) if !predicates[0].evaluate(task) || evaluate(task) Explanation.new(nil, self, [this_generator]) else # first event emitted, second event cannot be emitted (static) other_generator = task.event(predicates[1].event_name) Explanation.new(nil, self, [other_generator]) end else other_generator = task.event(predicates[1].event_name) Explanation.new(nil, self, [other_generator]) end end
explain_true(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 642 def explain_true(task) return if !evaluate(task) this_event = task.event(predicates[0].event_name).last other_event = task.event(predicates[1].event_name).last Explanation.new(true, self, [this_event, other_event]) end
static?(task)
click to toggle source
# File lib/roby/event_constraints.rb, line 676 def static?(task) event0 = task.event(predicates[0].event_name) event1 = task.event(predicates[1].event_name) if event0.unreachable? (!predicates[0].evaluate(task) || # will stay false as pred[0] can't emit evaluate(task) || # will stay true as pred[0] can't emit predicates[1].static?(task)) elsif event1.unreachable? !evaluate(task) end end
to_s()
click to toggle source
# File lib/roby/event_constraints.rb, line 694 def to_s; "#{predicates[0].event_name}.followed_by(#{predicates[1].event_name})" end