ADTF
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
class_id.h File Reference

Copyright © Audi Electronics Venture GmbH. More...

Go to the source code of this file.

Namespaces

namespace  adtf
 Namespace for entire ADTF SDK.
 
namespace  adtf::ucom
 Namespace for the ADTF uCOM3 SDK.
 
namespace  adtf::ucom::ant
 Namespace for all functionality provided since v3.0.
 

Macros

#define ADTF_CLASS_ID_NAME(_class, _strcid, _strclabel)
 Common macro to enable correct treatment of class identifier AND Class Name by IClassInfo.
 
#define ADTF_CLASS_INFO_IMPL(_class)
 Common macro to implement correct treatment of IClassInfo.
 
#define ADTF_CLASS_ID(_class, _strcid)
 ADTF_CLASS_INFO_IMPL.
 

Functions

template<typename classT>
constexpr const char * get_class_id ()
 Get the class id (CID) of the Class type.
 
template<typename classT>
constexpr const char * get_class_id (const classT &)
 Convenience function usable with a reference to an object of type classT.
 
template<typename classT>
constexpr const char * get_class_id (const classT *)
 Convenience function usable with a pointer to an object of type classT.
 
template<typename classT>
constexpr const char * get_class_label ()
 Get the class label (corresponding to the CID) of the Class type (a readable name !)
 
template<typename classT>
constexpr const char * get_class_label (const classT &)
 Convenience function usable with a reference to an object of type class.
 
template<typename classT>
constexpr const char * get_class_label (const classT *)
 Convenience function usable with a pointer to an object of type class.
 
template<typename classT>
constexpr const char * get_class_id ()
 Alias always bringing the latest version of ant::get_class_id into scope.
 
template<typename classT>
constexpr const char * get_class_label ()
 Alias always bringing the latest version of ant::get_class_label into scope.
 

Detailed Description

Copyright © Audi Electronics Venture GmbH.

All rights reserved

Definition in file class_id.h.

Macro Definition Documentation

◆ ADTF_CLASS_ID

#define ADTF_CLASS_ID ( _class,
_strcid )
Value:
ADTF_CLASS_ID_NAME(_class, _strcid, nullptr)
#define ADTF_CLASS_ID_NAME(_class, _strcid, _strclabel)
Common macro to enable correct treatment of class identifier AND Class Name by IClassInfo.
Definition class_id.h:33

ADTF_CLASS_INFO_IMPL.

Common macro to enable correct treatment of class identifier by IClassInfo.

Parameters
[in]_className of the class (decltype of _class)
[in]_strcidClass IDentifier the containing type is identified with
Remarks
Put this into public scope of your class definiton. It will define your class identifier as well as the implementation of IClassInfo::GetCID.
See also
Class IDs and Object IDs

Definition at line 91 of file class_id.h.

◆ ADTF_CLASS_ID_NAME

#define ADTF_CLASS_ID_NAME ( _class,
_strcid,
_strclabel )
Value:
typedef _class class_type; \
template<_class*> struct class_info : \
{ \
using adtf::ucom::ant::detail::class_info_detail<class_type>::CVersions; \
using adtf::ucom::ant::detail::class_info_detail<class_type>::CDependencies; \
static const char* CID() { return _strcid; } \
static const char* CLabel() { return _strclabel ? _strclabel : CID();} \
}

Common macro to enable correct treatment of class identifier AND Class Name by IClassInfo.

Parameters
[in]_className of the class (decltype of _class)
[in]_strcidClass IDentifier the containing type is identified with
[in]_strclabelClass IDentifier. A readable name corresponding to given _strcid
Remarks
Put this into public scope of your class definiton. It will define your class identifier as well as the implementation of IClassInfo::GetCID. (see also IClassInfo::GetCLabel)
See also
page_ucom_object_id_and_class_id

Definition at line 33 of file class_id.h.

◆ ADTF_CLASS_INFO_IMPL

#define ADTF_CLASS_INFO_IMPL ( _class)
Value:
const char* GetCID() const override \
{ \
} \
const char* GetCLabel() const override \
{ \
} \
adtf::ucom::ant::iterator_adapter<const adtf::ucom::ant::tDependencyDescription, \
adtf::ucom::ant::pointer_iterator> \
GetCDependencies() const override \
{ \
} \
adtf::ucom::ant::iterator_adapter<const adtf::ucom::ant::tNamedVersion, \
adtf::ucom::ant::pointer_iterator> \
GetCVersions() const override \
{ \
}
constexpr iterator_adapter< const tDependencyDescription, pointer_iterator > get_class_dependencies()
Alias always bringing the latest version of ant::get_class_dependencies into scope.
constexpr iterator_adapter< const tNamedVersion, pointer_iterator > get_class_versions()
Alias always bringing the latest version of ant::get_class_versions() into scope.
constexpr const char * get_class_id()
Alias always bringing the latest version of ant::get_class_id into scope.
Definition class_id.h:110
constexpr const char * get_class_label()
Alias always bringing the latest version of ant::get_class_label into scope.
Definition class_id.h:143

Common macro to implement correct treatment of IClassInfo.

Parameters
[in]_className of the class (decltype of _class)
Remarks
Put this into public scope of your class definiton. It will define your class identifier as well as the implementation of IClassInfo::GetCID. (see also IClassInfo::GetCLabel)
See also
page_ucom_object_id_and_class_id

Definition at line 57 of file class_id.h.