module Syskit::TaskContext::Proxying
Public Instance Methods
commit_transaction()
click to toggle source
Create dynamically instantiated ports on the real task
Calls superclass method
# File lib/syskit/task_context.rb, line 1120 def commit_transaction super if defined? super if specialized_model? Syskit::Models.merge_orogen_task_context_models(__getobj__.model.orogen_model, [model.orogen_model]) end end
transaction_modifies_static_ports?()
click to toggle source
# File lib/syskit/task_context.rb, line 1127 def transaction_modifies_static_ports? new_connections_to_static = Hash.new each_concrete_input_connection do |source_task, source_port, sink_port, policy| if find_input_port(sink_port).static? sources = (new_connections_to_static[sink_port] ||= Set.new) sources << [source_task.orocos_name, source_port] end end each_concrete_output_connection do |source_port, sink_port, sink_task, policy| if find_output_port(source_port).static? sinks = (new_connections_to_static[source_port] ||= Set.new) sinks << [sink_task.orocos_name, sink_port] end end current_connections_to_static = Hash.new ActualDataFlow.each_in_neighbour(orocos_task) do |source_task| # Transactions neither touch ActualDataFlow nor the # task-to-orocos_task mapping. It's safe to check it # straight. connections = ActualDataFlow.edge_info(source_task, orocos_task) connections.each_key do |source_port, sink_port| if ActualDataFlow.static?(orocos_task, sink_port) sources = (current_connections_to_static[sink_port] ||= Set.new) sources << [source_task.name, source_port] end end end ActualDataFlow.each_out_neighbour(orocos_task) do |sink_task| # Transactions neither touch ActualDataFlow nor the # task-to-orocos_task mapping. It's safe to check it # straight. connections = ActualDataFlow.edge_info(orocos_task, sink_task) connections.each_key do |source_port, sink_port| if ActualDataFlow.static?(orocos_task, source_port) sinks = (current_connections_to_static[source_port] ||= Set.new) sinks << [sink_task.name, sink_port] end end end current_connections_to_static != new_connections_to_static end