Public Types | Public Member Functions | Private Attributes
RTT::internal::InputPortSource< T > Class Template Reference

#include <InputPortSource.hpp>

Inheritance diagram for RTT::internal::InputPortSource< T >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef boost::intrusive_ptr
< InputPortSource< T > > 
shared_ptr

Public Member Functions

AssignableDataSource< T > * clone () const
AssignableDataSource< T > * copy (std::map< const base::DataSourceBase *, base::DataSourceBase * > &alreadyCloned) const
bool evaluate () const
DataSource< T >::result_t get () const
 InputPortSource (InputPort< T > &port)
void reset ()
DataSource< T >::const_reference_t rvalue () const
virtual void set (typename AssignableDataSource< T >::param_t t)
virtual AssignableDataSource
< T >::reference_t 
set ()
DataSource< T >::result_t value () const

Private Attributes

mvalue
InputPort< T > * port

Detailed Description

template<typename T>
class RTT::internal::InputPortSource< T >

This class represents a read port using the data source interface. Beware that, depending on the connection used, ports actually change their state when read. For instance, a buffer connection *will* lose one element when get() or evaluate() are called. For that reason, it is considered bad practice to use a data source on a read port that is bound to a buffer connection.

This class should not be used directly in normal code. What you would usually do is create a new read port using OutputPort::antiClone() and call base::InputPortInterface::getDataSource() to get the corresponding data source. This is your duty to destroy the port when it is not needed anymore.

Note:
Although this DataSource is assignable, writing to it is not causing any change in the port. You should not use the set() functions of this object. We provide this interface in order to allow other code to take a non-const reference to the read data.

Definition at line 67 of file InputPortSource.hpp.


Member Typedef Documentation

template<typename T>
typedef boost::intrusive_ptr<InputPortSource<T> > RTT::internal::InputPortSource< T >::shared_ptr

Use this type to store a pointer to an AssignableDataSource.

Reimplemented from RTT::internal::AssignableDataSource< T >.

Definition at line 73 of file InputPortSource.hpp.


Constructor & Destructor Documentation

template<typename T>
RTT::internal::InputPortSource< T >::InputPortSource ( InputPort< T > &  port) [inline]

Definition at line 75 of file InputPortSource.hpp.


Member Function Documentation

template<typename T>
AssignableDataSource<T>* RTT::internal::InputPortSource< T >::clone ( ) const [inline, virtual]

Return a shallow clone of this DataSource. This method returns a duplicate of this instance which re-uses the DataSources this internal::DataSource holds reference to. The clone() function is thus a non-deep copy.

Implements RTT::internal::AssignableDataSource< T >.

Definition at line 105 of file InputPortSource.hpp.

template<typename T>
AssignableDataSource<T>* RTT::internal::InputPortSource< T >::copy ( std::map< const base::DataSourceBase *, base::DataSourceBase * > &  alreadyCloned) const [inline, virtual]

Implements RTT::internal::AssignableDataSource< T >.

Definition at line 107 of file InputPortSource.hpp.

template<typename T>
bool RTT::internal::InputPortSource< T >::evaluate ( ) const [inline, virtual]

Force an evaluation of the DataSourceBase.

Returns:
true on successful evaluation.

Reimplemented from RTT::internal::DataSource< T >.

Definition at line 81 of file InputPortSource.hpp.

template<typename T>
DataSource<T>::result_t RTT::internal::InputPortSource< T >::get ( ) const [inline, virtual]

Return the data as type T.

Implements RTT::internal::DataSource< T >.

Definition at line 90 of file InputPortSource.hpp.

template<typename T>
void RTT::internal::InputPortSource< T >::reset ( void  ) [inline, virtual]

Reset the data to initial values.

Reimplemented from RTT::base::DataSourceBase.

Definition at line 80 of file InputPortSource.hpp.

template<typename T>
DataSource<T>::const_reference_t RTT::internal::InputPortSource< T >::rvalue ( ) const [inline, virtual]

Get a const reference to the value of this DataSource. You must call evaluate() prior to calling this function in order to get the most recent value of this attribute.

Note:
Getting a reference to an internal data structure is not thread-safe.

Implements RTT::internal::DataSource< T >.

Definition at line 88 of file InputPortSource.hpp.

template<typename T>
virtual void RTT::internal::InputPortSource< T >::set ( typename AssignableDataSource< T >::param_t  t) [inline, virtual]

Definition at line 97 of file InputPortSource.hpp.

template<typename T>
virtual AssignableDataSource<T>::reference_t RTT::internal::InputPortSource< T >::set ( ) [inline, virtual]

Get a reference to the value of this DataSource. Getting a reference to an internal data structure is not thread-safe.

Implements RTT::internal::AssignableDataSource< T >.

Definition at line 101 of file InputPortSource.hpp.

template<typename T>
DataSource<T>::result_t RTT::internal::InputPortSource< T >::value ( ) const [inline, virtual]

Return the result of the last evaluate() function. You must call evaluate() prior to calling this function in order to get the most recent value of this attribute.

Implements RTT::internal::DataSource< T >.

Definition at line 86 of file InputPortSource.hpp.


Member Data Documentation

template<typename T>
T RTT::internal::InputPortSource< T >::mvalue [mutable, private]

Definition at line 70 of file InputPortSource.hpp.

template<typename T>
InputPort<T>* RTT::internal::InputPortSource< T >::port [private]

Definition at line 69 of file InputPortSource.hpp.


The documentation for this class was generated from the following file:


rtt
Author(s): RTT Developers
autogenerated on Thu Jan 2 2014 11:35:44