7#ifndef _ADTF_UCOM_ANT_CLASS_INFO_DETAIL_INCLUDES_HEADER_
8#define _ADTF_UCOM_ANT_CLASS_INFO_DETAIL_INCLUDES_HEADER_
32 struct yes {
char x[1]; };
34 struct no {
char x[2]; };
42 static yes exists(
typename C::template class_dependencies<
static_cast<C*
>(
nullptr)>* =
nullptr);
48 template<
typename C>
static no exists(...);
52 static const bool value =
sizeof(exists<T>(
nullptr)) ==
sizeof(yes);
64 struct yes {
char x[1]; };
66 struct no {
char x[2]; };
74 static yes exists(
typename C::template class_versions<
static_cast<C*
>(
nullptr)>* =
nullptr);
80 template<
typename C>
static no exists(...);
84 static const bool value =
sizeof(exists<T>(
nullptr)) ==
sizeof(yes);
88template<
typename EnclosingType>
92 template<typename U, bool = has_class_dependencies_type<U>::value>
93 struct class_dependency_traits
96 static std::size_t dependency_size() {
return 0; }
100 struct class_dependency_traits <U, true>
104 return U::template class_dependencies<(U*)
nullptr>::get_dependencies().data();
107 static std::size_t dependency_size()
109 return U::template class_dependencies<(U*)
nullptr>::get_dependencies().size();
113 template<typename U, bool = has_class_versions_type<U>::value>
114 struct class_versions_traits
116 static const tNamedVersion* version_data() {
return &DefaultCVersion(); }
117 static std::size_t version_size() {
return 1; }
121 struct class_versions_traits <U, true>
125 return U::template class_versions<(U*)
nullptr>::get_versions().data();
128 static std::size_t version_size()
130 return U::template class_versions<(U*)
nullptr>::get_versions().size();
138 static const tNamedVersion oVersion{ UCOM_VERSION_ID, adtf::ucom::get_ucom_version_information() };
146 return GetClass_Info().GetCVersions();
153 return GetClass_Info().GetCDependencies();
162 class_dependency_traits<EnclosingType>::dependency_data(),
163 class_dependency_traits<EnclosingType>::dependency_size(),
164 class_versions_traits<EnclosingType>::version_data(),
165 class_versions_traits<EnclosingType>::version_size());
Definition class_info.h:27
Definition class_info_detail.h:30
static const bool value
Evaluates to either size of yes or no, depending on existence of class_dependencies<>
Definition class_info_detail.h:52
Definition class_info_detail.h:62
static const bool value
Evaluates to either size of yes or no, depending on existence of class_versions<>
Definition class_info_detail.h:84
Namespace for all internally used functionality implemented.
Definition class_info.h:17
Namespace for all functionality of the ADTF UCOM SDK provided since v3.0.
Definition test_runtime.h:14
Namespace for all internally used functionality implemented.
Definition class_info_detail.h:174
Namespace for the ADTF uCOM SDK.
Definition adtf_system.h:324
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
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14
Definition class_info_detail.h:90
Adapter for begin and end iterators - usable as return and parameter value in interfaces.
Definition iterator_intf.h:190
Empty struct template to specialize implementations of iterator interfaces.
Definition iterator_intf.h:28
Dependency description usable for ADTF_CLASS_DEPENDENCIES()
Definition class_info_intf.h:31
Named version information consisting of the modules name and its adtf_util::tVersion.
Definition class_info_intf.h:22