Orocos Real-Time Toolkit  2.9.0
Public Types | Static Public Member Functions | List of all members
RTT::internal::create_sequence_impl< List, size > Struct Template Reference

#include <rtt/internal/CreateSequence.hpp>

Public Types

typedef create_sequence< typename mpl::pop_front< List >::typetail
 The tail is ourselves minus the head. More...
 
typedef mpl::front< List >::type arg_type
 The argument type. More...
 
typedef AStore< arg_typearg_store_type
 The argument storage type. More...
 
typedef remove_cr< arg_type >::type ds_arg_type
 The data source value type of an assignable data source is non-const, non-reference. More...
 
typedef mpl::if_< typename is_pure_reference< arg_type >::type, typename AssignableDataSource< ds_arg_type >::shared_ptr, typename DataSource< ds_arg_type >::shared_ptr >::type ds_type
 The type of a single element of the vector. More...
 
typedef AssignableDataSource< ds_arg_type >::shared_ptr ads_type
 
typedef tail::type tail_type
 The type of the tail (List - head) of our sequence. More...
 
typedef bf::cons< ds_type, tail_typetype
 The joint DataSource<T>::shared_ptr type of head and tail, again a fusion cons. More...
 
typedef tail::atype atail_type
 
typedef bf::cons< ads_type, atail_typeatype
 
typedef tail::data_type arg_tail_type
 
typedef tail::data_store_type arg_store_tail_type
 
typedef bf::cons< arg_type, arg_tail_typedata_type
 The joint T data type of head and tail. More...
 
typedef bf::cons< arg_store_type, arg_store_tail_typedata_store_type
 The joint T data storage type of head and tail. More...
 

Static Public Member Functions

static type sources (std::vector< base::DataSourceBase::shared_ptr >::const_iterator args, int argnbr=1)
 Converts a std::vector of DataSourceBase types into a boost::fusion Sequence of DataSources of the types given in List. More...
 
static atype assignable (std::vector< base::DataSourceBase::shared_ptr >::const_iterator args, int argnbr=1)
 Converts a std::vector of DataSourceBase types into a boost::fusion Sequence of AssignableDataSources of the types given in List. More...
 
static data_type data (const type &seq)
 Returns the data contained in the data sources as a Fusion Sequence. More...
 
static void set (const data_type &in, const atype &seq)
 Sets the values of a sequence of AssignableDataSource<T> data sources ot the values contained in in using set(). More...
 
static void load (const data_store_type &in, const atype &seq)
 Sets the values of a sequence of AssignableDataSource<T> data sources ot the values contained in in using set(). More...
 
static data_store_type store (const data_type &in)
 Stores the values of a sequence of data_type into a data_store_type sequence for later retrieval during load. More...
 
static void update (const type &seq)
 Calls the DataSourceBase::updated() function for each element in sequence seq, in case the element is a non-const reference type. More...
 
static type copy (const type &seq, std::map< const base::DataSourceBase *, base::DataSourceBase * > &alreadyCloned)
 Copies a sequence of DataSource<T>::shared_ptr according to the copy/clone semantics of data sources. More...
 
static const types::TypeInfoGetTypeInfo (int i)
 Returns the i'th argument type info as returned by DataSource<ArgI>::GetTypeInfo(), starting from 1. More...
 
static std::string GetType (int i)
 Returns the i'th argument type name as returned by DataSource<ArgI>::GetType(), starting from 1. More...
 

Detailed Description

template<class List, int size>
struct RTT::internal::create_sequence_impl< List, size >

Definition at line 151 of file CreateSequence.hpp.

Member Typedef Documentation

template<class List, int size>
typedef AssignableDataSource< ds_arg_type >::shared_ptr RTT::internal::create_sequence_impl< List, size >::ads_type

Definition at line 217 of file CreateSequence.hpp.

template<class List, int size>
typedef tail::data_store_type RTT::internal::create_sequence_impl< List, size >::arg_store_tail_type

Definition at line 234 of file CreateSequence.hpp.

template<class List, int size>
typedef AStore<arg_type> RTT::internal::create_sequence_impl< List, size >::arg_store_type

The argument storage type.

Definition at line 203 of file CreateSequence.hpp.

template<class List, int size>
typedef tail::data_type RTT::internal::create_sequence_impl< List, size >::arg_tail_type

Definition at line 233 of file CreateSequence.hpp.

template<class List, int size>
typedef mpl::front<List>::type RTT::internal::create_sequence_impl< List, size >::arg_type

The argument type.

Definition at line 198 of file CreateSequence.hpp.

template<class List, int size>
typedef tail::atype RTT::internal::create_sequence_impl< List, size >::atail_type

Definition at line 230 of file CreateSequence.hpp.

template<class List, int size>
typedef bf::cons<ads_type, atail_type> RTT::internal::create_sequence_impl< List, size >::atype

Definition at line 231 of file CreateSequence.hpp.

template<class List, int size>
typedef bf::cons<arg_store_type, arg_store_tail_type> RTT::internal::create_sequence_impl< List, size >::data_store_type

The joint T data storage type of head and tail.

Definition at line 244 of file CreateSequence.hpp.

template<class List, int size>
typedef bf::cons<arg_type, arg_tail_type> RTT::internal::create_sequence_impl< List, size >::data_type

The joint T data type of head and tail.

Definition at line 239 of file CreateSequence.hpp.

template<class List, int size>
typedef remove_cr<arg_type>::type RTT::internal::create_sequence_impl< List, size >::ds_arg_type

The data source value type of an assignable data source is non-const, non-reference.

Definition at line 208 of file CreateSequence.hpp.

template<class List, int size>
typedef mpl::if_<typename is_pure_reference<arg_type>::type, typename AssignableDataSource< ds_arg_type >::shared_ptr, typename DataSource<ds_arg_type>::shared_ptr>::type RTT::internal::create_sequence_impl< List, size >::ds_type

The type of a single element of the vector.

Definition at line 215 of file CreateSequence.hpp.

template<class List, int size>
typedef create_sequence<typename mpl::pop_front<List>::type> RTT::internal::create_sequence_impl< List, size >::tail

The tail is ourselves minus the head.

Definition at line 193 of file CreateSequence.hpp.

template<class List, int size>
typedef tail::type RTT::internal::create_sequence_impl< List, size >::tail_type

The type of the tail (List - head) of our sequence.

It is recursively formulated in terms of create_sequence.

Definition at line 223 of file CreateSequence.hpp.

template<class List, int size>
typedef bf::cons<ds_type, tail_type> RTT::internal::create_sequence_impl< List, size >::type

The joint DataSource<T>::shared_ptr type of head and tail, again a fusion cons.

Definition at line 228 of file CreateSequence.hpp.

Member Function Documentation

template<class List, int size>
static atype RTT::internal::create_sequence_impl< List, size >::assignable ( std::vector< base::DataSourceBase::shared_ptr >::const_iterator  args,
int  argnbr = 1 
)
inlinestatic

Converts a std::vector of DataSourceBase types into a boost::fusion Sequence of AssignableDataSources of the types given in List.

Will throw if an element of the vector could not be dynamic casted to the respective element type of List.

Parameters
argsA vector of data sources
argnbrLeave as default. Used internally to count recursive calls.
Returns
a Fusion Sequence of DataSource<T>::shared_ptr objects

Definition at line 270 of file CreateSequence.hpp.

template<class List, int size>
static type RTT::internal::create_sequence_impl< List, size >::copy ( const type seq,
std::map< const base::DataSourceBase *, base::DataSourceBase * > &  alreadyCloned 
)
inlinestatic

Copies a sequence of DataSource<T>::shared_ptr according to the copy/clone semantics of data sources.

Parameters
seqA Fusion Sequence of DataSource<T>::shared_ptr
alreadyClonedthe copy/clone map
Returns
A Fusion Sequence of DataSource<T>::shared_ptr containing the copies.

Definition at line 341 of file CreateSequence.hpp.

template<class List, int size>
static data_type RTT::internal::create_sequence_impl< List, size >::data ( const type seq)
inlinestatic

Returns the data contained in the data sources as a Fusion Sequence.

Parameters
seqA Fusion Sequence of DataSource<T> types.
Returns
A sequence of type T holding the values of the DataSource<T>.

Definition at line 284 of file CreateSequence.hpp.

template<class List, int size>
static std::string RTT::internal::create_sequence_impl< List, size >::GetType ( int  i)
inlinestatic

Returns the i'th argument type name as returned by DataSource<ArgI>::GetType(), starting from 1.

Parameters
iA number between 1..N with N being the number of types in the mpl List of this class.
Returns
An full qualified type name.

Definition at line 371 of file CreateSequence.hpp.

template<class List, int size>
static const types::TypeInfo* RTT::internal::create_sequence_impl< List, size >::GetTypeInfo ( int  i)
inlinestatic

Returns the i'th argument type info as returned by DataSource<ArgI>::GetTypeInfo(), starting from 1.

Parameters
iA number between 1..N with N being the number of types in the mpl List of this class.
Returns
An Orocos registered type info object.

Definition at line 354 of file CreateSequence.hpp.

template<class List, int size>
static void RTT::internal::create_sequence_impl< List, size >::load ( const data_store_type in,
const atype seq 
)
inlinestatic

Sets the values of a sequence of AssignableDataSource<T> data sources ot the values contained in in using set().

Parameters
inThe values to write.
seqThe receiving assignable data sources. Because the datasources are shared pointers, it's ok to work on the temporary copies of seq.

Definition at line 307 of file CreateSequence.hpp.

template<class List, int size>
static void RTT::internal::create_sequence_impl< List, size >::set ( const data_type in,
const atype seq 
)
inlinestatic

Sets the values of a sequence of AssignableDataSource<T> data sources ot the values contained in in using set().

Parameters
inThe values to write.
seqThe receiving assignable data sources.

Definition at line 294 of file CreateSequence.hpp.

template<class List, int size>
static type RTT::internal::create_sequence_impl< List, size >::sources ( std::vector< base::DataSourceBase::shared_ptr >::const_iterator  args,
int  argnbr = 1 
)
inlinestatic

Converts a std::vector of DataSourceBase types into a boost::fusion Sequence of DataSources of the types given in List.

Will throw if an element of the vector could not be dynamic casted to the respective element type of List.

Parameters
argsA vector of data sources
argnbrLeave as default. Used internally to count recursive calls.
Returns
a Fusion Sequence of DataSource<T>::shared_ptr objects

Definition at line 254 of file CreateSequence.hpp.

template<class List, int size>
static data_store_type RTT::internal::create_sequence_impl< List, size >::store ( const data_type in)
inlinestatic

Stores the values of a sequence of data_type into a data_store_type sequence for later retrieval during load.

We must return the resulting sequence by value, since boost fusion returns temporaries, which we can't take a reference to.

Parameters
inThe values to store
Returns
The receiving AStore sequence.

Definition at line 320 of file CreateSequence.hpp.

template<class List, int size>
static void RTT::internal::create_sequence_impl< List, size >::update ( const type seq)
inlinestatic

Calls the DataSourceBase::updated() function for each element in sequence seq, in case the element is a non-const reference type.

Parameters
seqA sequence of DataSource<T> objects

Definition at line 329 of file CreateSequence.hpp.


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