Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions lib/syskit/log/task_streams.rb
Original file line number Diff line number Diff line change
Expand Up @@ -205,10 +205,11 @@ def as_data_service(srv_m, service_to_component_port = {})
task_m = Syskit::TaskContext.new_submodel do
srv_m.each_port do |p|
component_name = service_to_component_port[p.name] || p.name
type = Roby.app.default_loader.opaque_type_for(p.type)
if p.input?
input_port component_name, p.type
input_port component_name, type
else
output_port component_name, p.type
output_port component_name, type
end
end
provides srv_m, service_to_component_port, as: "replayed_service"
Expand All @@ -229,11 +230,15 @@ def resolve_streams_for_service(srv_m, service_to_component_port)
srv_m.each_port.map do |p|
stream_name = service_to_component_port[p.name] || p.name
stream = find_port_by_name(stream_name)
unless stream
raise ArgumentError,
"cannot find stream #{stream_name} for service port #{p.name}"
next(stream) if stream

available_ports = each_port_stream.sort_by(&:first).map do |name, s|
"#{name} (#{s.type.name})"
end
stream
raise ArgumentError,
"cannot find stream #{stream_name} for "\
"service port #{p.name}, available ports: "\
"#{available_ports.join(", ")}"
end
end
end
Expand Down