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);
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);
84 static const bool value =
sizeof(exists<T>(
nullptr)) ==
sizeof(
yes);
88 template<
typename EnclosingType>
92 template<typename U, bool = has_class_dependencies_type<U>::value>
96 static std::size_t dependency_size() {
return 0; }
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>
116 static const tNamedVersion* version_data() {
return &DefaultCVersion(); }
117 static const std::size_t version_size() {
return 1; }
125 return U::template class_versions<(U*)
nullptr>::get_versions().data();
128 static const 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();
160 adtf::ucom::get_class_id<EnclosingType>(),
161 adtf::ucom::get_class_label<EnclosingType>(),
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());
176 using ant::detail::class_info_detail;
The Helper Storage Class for a IClassInfo.
Usable for enable_if<>: Compile time check whether a struct class_dependencies<> is available.
static const bool value
Evaluates to either size of yes or no, depending on existence of class_dependencies<>
static yes exists(typename C::template class_dependencies< static_cast< C * >(nullptr)> *=nullptr)
Overload taken if the class_dependencies<> exists.
static no exists(...)
Overload taken if the class_dependencies<> does not exist.
Usable for enable_if<>: Compile time check whether a struct class_versions<> is available.
static const bool value
Evaluates to either size of yes or no, depending on existence of class_versions<>
static no exists(...)
Overload taken if the class_versions<> does not exist.
static yes exists(typename C::template class_versions< static_cast< C * >(nullptr)> *=nullptr)
Overload taken if the class_versions<> exists.
ant::tDependencyDescription tDependencyDescription
Alias alwas bringing the latest version of ant::tDependencyDescription into scope.
ant::tNamedVersion tNamedVersion
Alias alwas bringing the latest version of ant::tNamedVersion into scope.
Namespace for entire ADTF SDK.
Return value if interface_info<> does not exist.
Return value if interface_info<> exists.
Return value if interface_info<> does not exist.
Return value if interface_info<> exists.
Adapter for begin and end iterators - usable as return and parameter value in interfaces.
Empty struct template to specialize implementations of iterator interfaces.
Dependency description usable for ADTF_CLASS_DEPENDENCIES()
Named version information consisting of the modules name and its adtf_util::tVersion.