Class: Roby::Transaction::ReachabilityPlanVisitor

Inherits:
ReachabilityVisitor show all
Defined in:
lib/roby/transaction.rb

Instance Attribute Summary collapse

Attributes inherited from ReachabilityVisitor

#start_vertex, #transaction

Instance Method Summary collapse

Methods inherited from ReachabilityVisitor

#handle_start_vertex

Constructor Details

#initialize(graph, transaction, transaction_seeds, plan_set) ⇒ ReachabilityPlanVisitor

Returns a new instance of ReachabilityPlanVisitor.



1007
1008
1009
1010
1011
# File 'lib/roby/transaction.rb', line 1007

def initialize(graph, transaction, transaction_seeds, plan_set)
    super(graph, transaction)
    @transaction_seeds = transaction_seeds
    @plan_set = plan_set
end

Instance Attribute Details

#plan_setObject (readonly)

Returns the value of attribute plan_set.



1005
1006
1007
# File 'lib/roby/transaction.rb', line 1005

def plan_set
  @plan_set
end

#transaction_seedsObject (readonly)

Returns the value of attribute transaction_seeds.



1004
1005
1006
# File 'lib/roby/transaction.rb', line 1004

def transaction_seeds
  @transaction_seeds
end

Instance Method Details

#follow_edge?(u, v) ⇒ Boolean

Returns:

  • (Boolean)


1013
1014
1015
1016
1017
1018
# File 'lib/roby/transaction.rb', line 1013

def follow_edge?(u, v)
    if transaction.find_local_object_for_task(u) && transaction.find_local_object_for_task(v)
        false
    else true
    end
end

#handle_examine_vertex(v) ⇒ Object



1020
1021
1022
1023
1024
1025
1026
# File 'lib/roby/transaction.rb', line 1020

def handle_examine_vertex(v)
    if (start_vertex != v) && plan_set.include?(v)
        throw :reachable, true
    elsif proxy = transaction.find_local_object_for_task(v)
        transaction_seeds << proxy
    end
end