class Orocos::Async::SubPortProxy

Public Class Methods

new(port_proxy,subfield = Array.new) click to toggle source
Calls superclass method
# File lib/orocos/async/task_context_proxy.rb, line 337
def initialize(port_proxy,subfield = Array.new)
    super(port_proxy)
    @subfield = Array(subfield).map do |field|
        if field.respond_to?(:to_i) && field.to_i.to_s == field
            field.to_i
        else
            field
        end
    end
end

Public Instance Methods

full_name() click to toggle source
Calls superclass method
# File lib/orocos/async/task_context_proxy.rb, line 374
def full_name
    super + "." + @subfield.join(".")
end
last_sample() click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 390
def last_sample
    subfield(__getobj__.last_sample,@subfield)
end
name() click to toggle source
Calls superclass method
# File lib/orocos/async/task_context_proxy.rb, line 378
def name
    super + "." + @subfield.join(".")
end
new_sample() click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 386
def new_sample
    type.new
end
on_data(policy = Hash.new) { |sample| ... } click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 356
def on_data(policy = Hash.new)
    on_raw_data(policy) do |sample|
        sample = Typelib.to_ruby(sample) if sample 
        yield(sample)
    end
end
on_raw_data(policy = Hash.new,&block) click to toggle source
Calls superclass method
# File lib/orocos/async/task_context_proxy.rb, line 363
def on_raw_data(policy = Hash.new,&block)
    p = proc do |sample|
        block.call subfield(sample,@subfield)
    end
    super(policy,&p)
end
orocos_type_name() click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 382
def orocos_type_name
    type.name
end
raw_last_sample() click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 394
def raw_last_sample
    subfield(__getobj__.raw_last_sample,@subfield)
end
sub_port(subfield) click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 398
def sub_port(subfield)
    raise RuntimeError , "Port #{name} is not an output port" if !output?
    SubPortProxy.new(__getobj__,@subfield+subfield)
end
to_async(options=Hash.new) click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 348
def to_async(options=Hash.new)
    task.to_async(options).port(port.name,:subfield => @subfield)
end
to_proxy(options=Hash.new) click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 352
def to_proxy(options=Hash.new)
    self
end
type() click to toggle source
Calls superclass method
# File lib/orocos/async/task_context_proxy.rb, line 403
def type
    @sub_type ||= if !@subfield.empty?
                  type ||= super
                  @subfield.each do |f|
                      type = if type.respond_to? :deference
                                 type.deference
                             else
                                 type[f]
                             end
                  end
                  type
              else
                  super
              end
end
type_name() click to toggle source
# File lib/orocos/async/task_context_proxy.rb, line 370
def type_name
    type.name
end