RTT::internal::BinaryDataSource< function > Class Template Reference

#include <DataSources.hpp>

Inheritance diagram for RTT::internal::BinaryDataSource< function >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef boost::intrusive_ptr
< BinaryDataSource< function > > 
shared_ptr
typedef boost::intrusive_ptr
< BinaryDataSource< function > > 
shared_ptr

Public Member Functions

 BinaryDataSource (typename DataSource< first_arg_t >::shared_ptr a, typename DataSource< second_arg_t >::shared_ptr b, function f)
 BinaryDataSource (typename DataSource< first_arg_t >::shared_ptr a, typename DataSource< second_arg_t >::shared_ptr b, function f)
virtual BinaryDataSource
< function > * 
clone () const
virtual BinaryDataSource
< function > * 
clone () const
virtual BinaryDataSource
< function > * 
copy (std::map< const base::DataSourceBase *, base::DataSourceBase * > &alreadyCloned) const
virtual BinaryDataSource
< function > * 
copy (std::map< const base::DataSourceBase *, base::DataSourceBase * > &alreadyCloned) const
virtual value_t get () const
virtual value_t get () const
virtual void reset ()
virtual void reset ()
DataSource< value_t >
::const_reference_t 
rvalue () const
DataSource< value_t >
::const_reference_t 
rvalue () const
virtual value_t value () const
virtual value_t value () const

Private Types

typedef remove_cr< typename
function::first_argument_type >
::type 
first_arg_t
typedef remove_cr< typename
function::first_argument_type >
::type 
first_arg_t
typedef remove_cr< typename
function::second_argument_type >
::type 
second_arg_t
typedef remove_cr< typename
function::second_argument_type >
::type 
second_arg_t
typedef remove_cr< typename
function::result_type >::type 
value_t
typedef remove_cr< typename
function::result_type >::type 
value_t

Private Attributes

function fun
value_t mdata
DataSource< first_arg_t >
::shared_ptr 
mdsa
DataSource< second_arg_t >
::shared_ptr 
mdsb

Detailed Description

template<typename function>
class RTT::internal::BinaryDataSource< function >

A generic binary composite DataSource. It takes a function object which is a model of the STL Adaptable Binary Function concept, and two DataSource's with result types matching the argument types of the given function. Its get() method then applies the function to the results of the get() methods of the two DataSource's given.

The parser system uses a hell of a lot of these for evaluating expressions, comparisons etc. I must say I think this is pretty cool ;) C++ rocks ! ;)

Definition at line 600 of file install/include/rtt/internal/DataSources.hpp.


Member Typedef Documentation

template<typename function>
typedef remove_cr<typename function::first_argument_type>::type RTT::internal::BinaryDataSource< function >::first_arg_t [private]

Definition at line 604 of file rtt/internal/DataSources.hpp.

template<typename function>
typedef remove_cr<typename function::first_argument_type>::type RTT::internal::BinaryDataSource< function >::first_arg_t [private]
template<typename function>
typedef remove_cr<typename function::second_argument_type>::type RTT::internal::BinaryDataSource< function >::second_arg_t [private]

Definition at line 605 of file rtt/internal/DataSources.hpp.

template<typename function>
typedef remove_cr<typename function::second_argument_type>::type RTT::internal::BinaryDataSource< function >::second_arg_t [private]
template<typename function>
typedef boost::intrusive_ptr<BinaryDataSource<function> > RTT::internal::BinaryDataSource< function >::shared_ptr

Use this type to store a pointer to a DataSourceBase.

Reimplemented from RTT::internal::DataSource< remove_cr< function::result_type >::type >.

Definition at line 611 of file rtt/internal/DataSources.hpp.

template<typename function>
typedef boost::intrusive_ptr<BinaryDataSource<function> > RTT::internal::BinaryDataSource< function >::shared_ptr

Use this type to store a pointer to a DataSourceBase.

Reimplemented from RTT::internal::DataSource< remove_cr< function::result_type >::type >.

Definition at line 611 of file install/include/rtt/internal/DataSources.hpp.

template<typename function>
typedef remove_cr<typename function::result_type>::type RTT::internal::BinaryDataSource< function >::value_t [private]

The bare type of T is extracted into value_t.

Reimplemented from RTT::internal::DataSource< remove_cr< function::result_type >::type >.

Definition at line 603 of file rtt/internal/DataSources.hpp.

template<typename function>
typedef remove_cr<typename function::result_type>::type RTT::internal::BinaryDataSource< function >::value_t [private]

The bare type of T is extracted into value_t.

Reimplemented from RTT::internal::DataSource< remove_cr< function::result_type >::type >.

Definition at line 603 of file install/include/rtt/internal/DataSources.hpp.


Constructor & Destructor Documentation

template<typename function>
RTT::internal::BinaryDataSource< function >::BinaryDataSource ( typename DataSource< first_arg_t >::shared_ptr  a,
typename DataSource< second_arg_t >::shared_ptr  b,
function  f 
) [inline]

Create a DataSource which returns the return value of a function f which is given argument a and b.

Definition at line 617 of file install/include/rtt/internal/DataSources.hpp.

template<typename function>
RTT::internal::BinaryDataSource< function >::BinaryDataSource ( typename DataSource< first_arg_t >::shared_ptr  a,
typename DataSource< second_arg_t >::shared_ptr  b,
function  f 
) [inline]

Create a DataSource which returns the return value of a function f which is given argument a and b.

Definition at line 617 of file rtt/internal/DataSources.hpp.


Member Function Documentation

template<typename function>
virtual BinaryDataSource<function>* RTT::internal::BinaryDataSource< function >::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::DataSource< remove_cr< function::result_type >::type >.

Definition at line 647 of file rtt/internal/DataSources.hpp.

template<typename function>
virtual BinaryDataSource<function>* RTT::internal::BinaryDataSource< function >::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::DataSource< remove_cr< function::result_type >::type >.

Definition at line 647 of file install/include/rtt/internal/DataSources.hpp.

template<typename function>
virtual BinaryDataSource<function>* RTT::internal::BinaryDataSource< function >::copy ( std::map< const base::DataSourceBase *, base::DataSourceBase * > &  alreadyCloned  )  const [inline, virtual]
template<typename function>
virtual BinaryDataSource<function>* RTT::internal::BinaryDataSource< function >::copy ( std::map< const base::DataSourceBase *, base::DataSourceBase * > &  alreadyCloned  )  const [inline, virtual]
template<typename function>
virtual value_t RTT::internal::BinaryDataSource< function >::get (  )  const [inline, virtual]
template<typename function>
virtual value_t RTT::internal::BinaryDataSource< function >::get (  )  const [inline, virtual]
template<typename function>
virtual void RTT::internal::BinaryDataSource< function >::reset (  )  [inline, virtual]

Reset the data to initial values.

Reimplemented from RTT::base::DataSourceBase.

Definition at line 641 of file rtt/internal/DataSources.hpp.

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

Reset the data to initial values.

Reimplemented from RTT::base::DataSourceBase.

Definition at line 641 of file install/include/rtt/internal/DataSources.hpp.

template<typename function>
DataSource<value_t>::const_reference_t RTT::internal::BinaryDataSource< function >::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< remove_cr< function::result_type >::type >.

Definition at line 636 of file rtt/internal/DataSources.hpp.

template<typename function>
DataSource<value_t>::const_reference_t RTT::internal::BinaryDataSource< function >::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< remove_cr< function::result_type >::type >.

Definition at line 636 of file install/include/rtt/internal/DataSources.hpp.

template<typename function>
virtual value_t RTT::internal::BinaryDataSource< function >::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< remove_cr< function::result_type >::type >.

Definition at line 631 of file rtt/internal/DataSources.hpp.

template<typename function>
virtual value_t RTT::internal::BinaryDataSource< function >::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< remove_cr< function::result_type >::type >.

Definition at line 631 of file install/include/rtt/internal/DataSources.hpp.


Member Data Documentation

template<typename function>
function RTT::internal::BinaryDataSource< function >::fun [private]
template<typename function>
value_t RTT::internal::BinaryDataSource< function >::mdata [mutable, private]
template<typename function>
DataSource< first_arg_t >::shared_ptr RTT::internal::BinaryDataSource< function >::mdsa [private]
template<typename function>
DataSource< second_arg_t >::shared_ptr RTT::internal::BinaryDataSource< function >::mdsb [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


rtt
Author(s): RTT Developers
autogenerated on Fri Jan 11 09:49:58 2013