Class: Orocos::Async::Log::OutputReader
- Inherits:
-
ObjectBase
- Object
- ObjectBase
- Orocos::Async::Log::OutputReader
- Extended by:
- ObjectBase::Periodic::ClassMethods, Utilrb::EventLoop::Forwardable
- Includes:
- ObjectBase::Periodic
- Defined in:
- lib/orocos/async/log/ports.rb
Instance Attribute Summary collapse
-
#policy ⇒ Object
readonly
Returns the value of attribute policy.
-
#port ⇒ Object
readonly
Returns the value of attribute port.
Attributes included from ObjectBase::Periodic::ClassMethods
Attributes inherited from ObjectBase
#emitting, #event_loop, #name, #options, #pending_adds
Instance Method Summary collapse
-
#initialize(port, reader, options = Hash.new) ⇒ OutputReader
constructor
A new instance of OutputReader.
- #really_add_listener(listener) ⇒ Object
Methods included from ObjectBase::Periodic
#default_period, #period, #period=
Methods inherited from ObjectBase
#add_listener, define_event, define_events, #disable_emitting, #event, event_names, #event_names, #invalidate_delegator!, #listener?, #listeners, #number_of_listeners, #on_event, #proxy_event, #reachable!, #reachable?, #remove_all_listeners, #remove_listener, #remove_proxy_event, #unreachable!, #valid_delegator?, valid_event?, #valid_event?, validate_event, #validate_event, #wait
Constructor Details
#initialize(port, reader, options = Hash.new) ⇒ OutputReader
Returns a new instance of OutputReader
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/orocos/async/log/ports.rb', line 15 def initialize(port,reader,=Hash.new) super(port.name,port.event_loop) @options = Kernel. , :period => default_period @port = port # do not queue reachable event no listeners are registered so far disable_emitting do reachable! reader end @port.connect_to do |sample| emit_raw_data @delegator_obj.raw_read # TODO just emit raw_data and convert it to ruby # if someone is listening to (see PortProxy) emit_data sample end end |
Instance Attribute Details
#policy ⇒ Object (readonly)
Returns the value of attribute policy
9 10 11 |
# File 'lib/orocos/async/log/ports.rb', line 9 def policy @policy end |
#port ⇒ Object (readonly)
Returns the value of attribute port
10 11 12 |
# File 'lib/orocos/async/log/ports.rb', line 10 def port @port end |
Instance Method Details
#really_add_listener(listener) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/orocos/async/log/ports.rb', line 31 def really_add_listener(listener) return super unless listener.use_last_value? if listener.event == :raw_data sample = @delegator_obj.raw_read if sample event_loop.once do listener.call sample end end elsif listener.event == :data sample = @delegator_obj.read if sample event_loop.once do listener.call sample end end end super end |