ADTF
object.h File Reference

Copyright © Audi Electronics Venture GmbH. More...

Go to the source code of this file.

Classes

class  has_interface_type< T >
 template that checks whether a type has an accessible interface_type property. More...
 
struct  is_interface< T, typename std::enable_if<!has_interface_type< T >::value >::type >
 
struct  is_interface< T, typename std::enable_if< has_interface_type< T >::value &&!is_interface_helper< T >::value >::type >
 
struct  is_interface< T, typename std::enable_if< has_interface_type< T >::value &&is_interface_helper< T >::value >::type >
 
class  has_get_interface< T >
 template that checks whether a type has an accessible (protected or public) GetInterface method. More...
 
struct  base_dispatcher< void, void >
 
struct  base_dispatcher< BaseClass, typename std::enable_if<!is_interface< BaseClass >::value &&!has_get_interface< BaseClass >::value >::type >
 This template is for base classes that are no interfaces and do not implement IObject. More...
 
struct  base_dispatcher< BaseClass, typename std::enable_if<!is_interface< BaseClass >::value &&has_get_interface< BaseClass >::value >::type >
 This template forwards a GetInterface call to a base class. More...
 
struct  base_dispatcher< Interface, typename std::enable_if< is_interface< Interface >::value >::type >
 This template returns a pointer to the implemented Interface if requested. More...
 
class  derive_from_without_hierarchy< Base, NextBase >
 This template checks if the first base implements the requested interface, otherwise checks the next base. More...
 
class  derive_from_with_hierarchy< Base, NextBase >
 This template checks if the first base implements the requested interface, otherwise checks the next base. More...
 
class  expose_additional_interfaces< Base, Interfaces >
 
class  object_without_iobject< Bases >
 This template is used to prevent an ambiguous base of ucom::ant::IObject. More...
 
class  derive_from< Base, NextBase >
 This template checks if the first base implements the requested interface, otherwise checks the next base. More...
 
struct  parent_follows_child< Bases >
 this template checks if parent interfaces are not specified before their children More...
 
struct  parent_follows_child< Base, NextBase, Bases... >
 this template checks if parent interfaces are not specified before their children More...
 
class  object_without_iobject< Base, Bases... >
 This template is used to prevent an ambiguous base of ucom::ant::IObject. More...
 
class  object< Bases >
 Use this template if you want to implement an ucom::ant::IObject based Interface and/or subclass an existing class that implements ucom::ant::IObject. More...
 
class  object< Base, Bases... >
 Use this template if you want to implement an ucom::ant::IObject based Interface and/or subclass an existing class that implements ucom::ant::IObject. More...
 

Namespaces

 adtf
 Namespace for entire ADTF SDK.
 
 adtf::ucom
 Namespace for the ADTF uCOM3 SDK.
 
 adtf::ucom::catwo
 Namespace for all functionality provided since v3.2.
 
 adtf::ucom::catwo::detail
 Namespace for all internally used uCOM functionality implemented.
 

Typedefs

template<typename T >
using is_interface_helper = std::is_same< T, typename T::interface_type >
 
template<typename Base , typename NextBase >
using derive_from_type = typename std::conditional< std::is_same< NextBase, object_without_iobject<> >::value, expose_additional_interfaces< Base >, typename std::conditional< std::is_base_of< Base, NextBase >::value, expose_additional_interfaces< NextBase, Base >, typename std::conditional< std::is_base_of< ucom::ant::IObject, Base >::value, derive_from_with_hierarchy< Base, NextBase >, derive_from_without_hierarchy< Base, NextBase > >::type >::type >::type
 this intermediate type is used to keep binary compatibility
 
template<typename Base , typename... Bases>
using object_base_type_helper = typename std::conditional< std::is_base_of< object<>, Base >::value, detail::derive_from< Base, detail::object_without_iobject< Bases... > >, detail::derive_from< Base, object< Bases... > >>::type
 

Detailed Description

Copyright © Audi Electronics Venture GmbH.

All rights reserved

Definition in file object.h.