module Orocos::RobyPlugin::Flows::DataFlow

Attributes

pending_changes[RW]

The set of connection changes that have been applied to the DataFlow relation graph, but not yet applied on the actual components (i.e. not yet present in the ActualDataFlow graph).

Public Class Methods

add_relation(from, to, info) click to toggle source
Calls superclass method
# File lib/orocos/roby/connection_graphs.rb, line 574
def DataFlow.add_relation(from, to, info)
    if !info.kind_of?(Hash)
        raise ArgumentError, "the DataFlow relation requires a hash as info object"
    end

    super

    if !from.transaction_proxy? && !to.transaction_proxy?
        if from.kind_of?(Orocos::RobyPlugin::TaskContext)
            modified_tasks << from
        end
        if to.kind_of?(Orocos::RobyPlugin::TaskContext)
            modified_tasks << to
        end
    end
end
merge_info(source, sink, current_mappings, additional_mappings) click to toggle source

Called by the relation graph management to update the DataFlow edge information when connections are added or removed.

Calls superclass method
# File lib/orocos/roby/connection_graphs.rb, line 606
def DataFlow.merge_info(source, sink, current_mappings, additional_mappings)
    super

    current_mappings.merge(additional_mappings) do |(from, to), old_options, new_options|
        RobyPlugin.update_connection_policy(old_options, new_options)
    end
end
modified_tasks() click to toggle source

Returns the set of tasks whose data flow has been changed that has not yet been applied.

# File lib/orocos/roby/connection_graphs.rb, line 570
def DataFlow.modified_tasks
    @modified_tasks ||= ValueSet.new
end
remove_relation(from, to) click to toggle source
Calls superclass method
# File lib/orocos/roby/connection_graphs.rb, line 591
def DataFlow.remove_relation(from, to)
    super

    if !from.transaction_proxy? && !to.transaction_proxy?
        if from.kind_of?(Orocos::RobyPlugin::TaskContext)
            modified_tasks << from
        end
        if to.kind_of?(Orocos::RobyPlugin::TaskContext)
            modified_tasks << to
        end
    end
end
updated_info(source, sink, mappings) click to toggle source
Calls superclass method
# File lib/orocos/roby/connection_graphs.rb, line 614
def DataFlow.updated_info(source, sink, mappings)
    super

    if !source.transaction_proxy? && !sink.transaction_proxy?
        if source.kind_of?(Orocos::RobyPlugin::TaskContext)
            modified_tasks << source
        end
        if sink.kind_of?(Orocos::RobyPlugin::TaskContext)
            modified_tasks << sink
        end
    end
end