|
Orocos Real-Time Toolkit
2.8.3
|
This class can create three kinds of Boost Fusion Sequences. More...
#include <rtt/internal/CreateSequence.hpp>
Public Types | |
| typedef create_sequence< typename mpl::pop_front< List >::type > | tail |
| The tail is ourselves minus the head. More... | |
| typedef mpl::front< List >::type | arg_type |
| The argument 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_type > | type |
| 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_type > | atype |
| typedef tail::data_type | arg_tail_type |
| typedef bf::cons< arg_type, arg_tail_type > | data_type |
| The joint T data 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 | 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::TypeInfo * | GetTypeInfo (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... | |
This class can create three kinds of Boost Fusion Sequences.
sources() creates a fusion sequence of (Assignable)DataSource<T>::shared_ptr from an mpl sequence and a std::vector<DataSourceBase*>. Both must have same length. The mpl sequence is typically obtained from the function_types parameter_types traits class.
assignable() creates a fusion sequence of AssignableDataSource<T>::shared_ptr from an mpl sequence and a std::vector<DataSourceBase*>. Both must have same length. The mpl sequence is typically obtained from the function_types parameter_types traits class. If the mpl sequence elements contain const qualifiers, these are removed, so T is always a value type.
data() creates a fusion sequence of T,U,V,... from the fusion sequence returned by operator(). It contains the values of the data sources obtained by calling get().
copy() creates a fusion sequence of DataSource<T>::shared_ptr from an mpl sequence and a sequence returned by operator() to do the scripting copy/clone semantics on each element of the sequence.
This is a typical head-tail recursive implementation where operator() calls itself, but in another type specialisation.
Definition at line 179 of file CreateSequence.hpp.
|
inherited |
Definition at line 209 of file CreateSequence.hpp.
|
inherited |
Definition at line 225 of file CreateSequence.hpp.
|
inherited |
The argument type.
Definition at line 195 of file CreateSequence.hpp.
|
inherited |
Definition at line 222 of file CreateSequence.hpp.
|
inherited |
Definition at line 223 of file CreateSequence.hpp.
|
inherited |
The joint T data type of head and tail.
Definition at line 230 of file CreateSequence.hpp.
|
inherited |
The data source value type of an assignable data source is non-const, non-reference.
Definition at line 200 of file CreateSequence.hpp.
|
inherited |
The type of a single element of the vector.
Definition at line 207 of file CreateSequence.hpp.
|
inherited |
The tail is ourselves minus the head.
Definition at line 190 of file CreateSequence.hpp.
|
inherited |
The type of the tail (List - head) of our sequence.
It is recursively formulated in terms of create_sequence.
Definition at line 215 of file CreateSequence.hpp.
|
inherited |
The joint DataSource<T>::shared_ptr type of head and tail, again a fusion cons.
Definition at line 220 of file CreateSequence.hpp.
|
inlinestaticinherited |
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.
| args | A vector of data sources |
| argnbr | Leave as default. Used internally to count recursive calls. |
Definition at line 256 of file CreateSequence.hpp.
|
inlinestaticinherited |
Copies a sequence of DataSource<T>::shared_ptr according to the copy/clone semantics of data sources.
| seq | A Fusion Sequence of DataSource<T>::shared_ptr |
| alreadyCloned | the copy/clone map |
Definition at line 302 of file CreateSequence.hpp.
Referenced by RTT::internal::FusedFunctorDataSource< Signature, Enable >::copy(), RTT::internal::FusedFunctorDataSource< Signature, typename boost::enable_if< is_pure_reference< typename boost::function_traits< Signature >::result_type > >::type >::copy(), RTT::internal::FusedMCallDataSource< Signature >::copy(), RTT::internal::FusedMSendDataSource< Signature >::copy(), and RTT::internal::FusedMCollectDataSource< Signature >::copy().
|
inlinestaticinherited |
Returns the data contained in the data sources as a Fusion Sequence.
| seq | A Fusion Sequence of DataSource<T> types. |
Definition at line 270 of file CreateSequence.hpp.
Referenced by RTT::internal::FusedFunctorDataSource< Signature, Enable >::evaluate(), RTT::internal::FusedFunctorDataSource< Signature, typename boost::enable_if< is_pure_reference< typename boost::function_traits< Signature >::result_type > >::type >::evaluate(), RTT::internal::FusedMCallDataSource< Signature >::evaluate(), RTT::internal::FusedMSendDataSource< Signature >::get(), and RTT::internal::FusedMCollectDataSource< Signature >::get().
|
inlinestaticinherited |
Returns the i'th argument type name as returned by DataSource<ArgI>::GetType(), starting from 1.
| i | A number between 1..N with N being the number of types in the mpl List of this class. |
Definition at line 332 of file CreateSequence.hpp.
References RTT::internal::DataSourceTypeInfo< T >::getType().
|
inlinestaticinherited |
Returns the i'th argument type info as returned by DataSource<ArgI>::GetTypeInfo(), starting from 1.
| i | A number between 1..N with N being the number of types in the mpl List of this class. |
Definition at line 315 of file CreateSequence.hpp.
References RTT::internal::DataSourceTypeInfo< T >::getTypeInfo().
|
inlinestaticinherited |
Sets the values of a sequence of AssignableDataSource<T> data sources ot the values contained in in using set().
| in | The values to write. |
| seq | The receiving assignable data sources. |
Definition at line 280 of file CreateSequence.hpp.
References RTT::internal::AssignHelper< Seq, Data, Enable >::set().
Referenced by RTT::internal::FusedMSignal< Signature >::invoke().
|
inlinestaticinherited |
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.
| args | A vector of data sources |
| argnbr | Leave as default. Used internally to count recursive calls. |
Definition at line 240 of file CreateSequence.hpp.
References RTT::internal::DataSourceTypeInfo< T >::getType().
Referenced by RTT::types::TemplateConstructor< S >::build(), and RTT::internal::newFunctorDataSource().
|
inlinestaticinherited |
Calls the DataSourceBase::updated() function for each element in sequence seq, in case the element is a non-const reference type.
| seq | A sequence of DataSource<T> objects |
Definition at line 290 of file CreateSequence.hpp.
References RTT::internal::UpdateHelper< T >::update().
Referenced by RTT::internal::FusedFunctorDataSource< Signature, Enable >::evaluate(), RTT::internal::FusedFunctorDataSource< Signature, typename boost::enable_if< is_pure_reference< typename boost::function_traits< Signature >::result_type > >::type >::evaluate(), RTT::internal::FusedMCallDataSource< Signature >::evaluate(), and RTT::internal::FusedMCollectDataSource< Signature >::get().
1.8.11