DART  6.6.2
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... > Struct Template Reference

#include <CompositeData.hpp>

Inheritance diagram for dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >:
dart::common::detail::ComposeData< CompositeType, GetData, Remainder... >

Classes

struct  ConvertIfComposite
 
struct  ConvertIfData
 

Public Types

enum  DelegateTag { Delegate }
 
using ThisClass = ComposeData< CompositeType, GetData, AspectT, Remainder... >
 
using Base = typename GetData< AspectT >::Type
 
using Data = typename Base::Data
 
using AspectType = typename GetAspect< AspectT >::Type
 

Public Member Functions

 ComposeData ()=default
 
virtual ~ComposeData ()=default
 
template<typename Arg1 , typename... Args>
 ComposeData (const Arg1 &arg1, const Args &... args)
 
 ComposeData (const CompositeType &composite)
 Grab relevant data out of a composite object. More...
 
template<typename... Aspects>
 ComposeData (const ComposeData< CompositeType, GetData, Aspects... > &composite)
 
 ComposeData (CompositeType &&composite)
 
 operator CompositeType () const
 
void setFrom (const CompositeType &composite)
 
ComposeDataoperator= (const CompositeType &composite)
 
template<typename... Args>
void copy (const Args &... args)
 Grab any relevant data and copy it into this composite. More...
 

Static Public Member Functions

template<typename... Args>
static EIGEN_MAKE_ALIGNED_OPERATOR_NEW std::shared_ptr< ThisClasscreateShared (Args &&... args)
 

Protected Member Functions

template<typename... Args>
 ComposeData (DelegateTag, const Args &... args)
 
template<typename... Args>
 ComposeData (DelegateTag, const Data &arg1, const Args &... args)
 
void _setBaseFrom (const CompositeType &composite)
 
void _addData (CompositeType &composite) const
 
void _findData ()
 
template<typename Arg1 , typename... Args>
void _findData (const Arg1 &arg1, const Args &... args)
 
template<typename Arg >
void _attemptToUse (const Arg &)
 
void _attemptToUse (const typename Base::Data &data)
 
void _attemptToUse (const CompositeType &composite)
 

Member Typedef Documentation

◆ AspectType

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
using dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::AspectType = typename GetAspect<AspectT>::Type

◆ Base

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
using dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::Base = typename GetData<AspectT>::Type

◆ Data

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
using dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::Data = typename Base::Data

◆ ThisClass

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
using dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ThisClass = ComposeData<CompositeType, GetData, AspectT, Remainder...>

Member Enumeration Documentation

◆ DelegateTag

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
enum dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::DelegateTag
Enumerator
Delegate 

Constructor & Destructor Documentation

◆ ComposeData() [1/7]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ComposeData ( )
default

◆ ~ComposeData()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
virtual dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::~ComposeData ( )
virtualdefault

◆ ComposeData() [2/7]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename Arg1 , typename... Args>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ComposeData ( const Arg1 &  arg1,
const Args &...  args 
)
inline

◆ ComposeData() [3/7]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ComposeData ( const CompositeType &  composite)
inline

Grab relevant data out of a composite object.

◆ ComposeData() [4/7]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename... Aspects>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ComposeData ( const ComposeData< CompositeType, GetData, Aspects... > &  composite)
inline

◆ ComposeData() [5/7]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ComposeData ( CompositeType &&  composite)
inline

◆ ComposeData() [6/7]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename... Args>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ComposeData ( DelegateTag  ,
const Args &...  args 
)
inlineprotected

◆ ComposeData() [7/7]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename... Args>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::ComposeData ( DelegateTag  ,
const Data arg1,
const Args &...  args 
)
inlineprotected

Member Function Documentation

◆ _addData()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::_addData ( CompositeType &  composite) const
inlineprotected

◆ _attemptToUse() [1/3]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename Arg >
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::_attemptToUse ( const Arg &  )
inlineprotected

◆ _attemptToUse() [2/3]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::_attemptToUse ( const CompositeType &  composite)
inlineprotected

◆ _attemptToUse() [3/3]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::_attemptToUse ( const typename Base::Data &  data)
inlineprotected

◆ _findData() [1/2]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::_findData ( )
inlineprotected

◆ _findData() [2/2]

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename Arg1 , typename... Args>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::_findData ( const Arg1 &  arg1,
const Args &...  args 
)
inlineprotected

◆ _setBaseFrom()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::_setBaseFrom ( const CompositeType &  composite)
inlineprotected

◆ copy()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename... Args>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::copy ( const Args &...  args)
inline

Grab any relevant data and copy it into this composite.

Note that there will be NO compilation error, even if there is no relevant data in any of the arguments that get passed in. It will simply ignore all the arguments silently.

◆ createShared()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
template<typename... Args>
static EIGEN_MAKE_ALIGNED_OPERATOR_NEW std::shared_ptr< ThisClass > dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::createShared ( Args &&...  args)
inlinestatic

Create shared instance of this class

◆ operator CompositeType()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::operator CompositeType ( ) const
inline

◆ operator=()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
ComposeData& dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::operator= ( const CompositeType &  composite)
inline

◆ setFrom()

template<class CompositeType , template< class > class GetData, class AspectT , typename... Remainder>
void dart::common::detail::ComposeData< CompositeType, GetData, AspectT, Remainder... >::setFrom ( const CompositeType &  composite)
inline