ADTF
class_info_intf.h
Go to the documentation of this file.
1 
8 #ifndef _ADTF_UCOM_ANT_CLASS_INFO_INTERFACE_INCLUDES_HEADER_
9 #define _ADTF_UCOM_ANT_CLASS_INFO_INTERFACE_INCLUDES_HEADER_
10 
11 namespace adtf
12 {
13 namespace ucom
14 {
15 namespace ant
16 {
17 
22 {
23  const char* m_strName;
24  adtf_util::tVersion m_sVersion;
25 };//struct tNamedVersion
26 
31 {
33  enum class eDescriptionType : uint32_t
34  {
35  DT_REQUIRE = 0,
36  DT_PROVIDE = 1,
38  };//enum class DD_Type
39 
41  const char* m_strIid;
42 };//struct tDependencyDescription
43 
44 //#################################################################################################
45 //#################################### INTERFACES #################################################
46 //#################################################################################################
50 class DOEXPORT IClassInfo : public IObject
51 {
52 public:
57  ADTF_IID(IClassInfo, "class_info.ant.ucom.adtf.iid");
58 
59 public:
64  virtual const char* GetCID() const = 0;
65  virtual const char* GetCLabel() const = 0;
67  const = 0;
68  virtual iterator_adapter<const tNamedVersion, pointer_iterator> GetCVersions() const = 0;
69 
70 protected:
72  ~IClassInfo() = default;
73 };//class IClassInfo
74 
75 }//namespace ant
76 
79 
82 
85 
86 }//namespace ucom
87 }//namespace adtf
88 
89 #endif //_ADTF_UCOM_ANT_CLASS_INFO_INTERFACE_INCLUDES_HEADER_
@ brief The IClassInfo interface provides a standardized way to access type information.
ADTF_IID(IClassInfo, "class_info.ant.ucom.adtf.iid")
Marks the IClassInfo to be castable with the ucom_cast<>
~IClassInfo()=default
Protected destructor --> Use implemented Destroy() instead of delete!
virtual const char * GetCID() const =0
Get class identifier.
Base class for every interface type within the uCOM.
Definition: object_intf.h:31
ant::tDependencyDescription tDependencyDescription
Alias alwas bringing the latest version of ant::tDependencyDescription into scope.
ant::IClassInfo IClassInfo
Alias always bringing the latest version of ant::IClassInfo into scope.
ant::tNamedVersion tNamedVersion
Alias alwas bringing the latest version of ant::tNamedVersion into scope.
Namespace for entire ADTF SDK.
Adapter for begin and end iterators - usable as return and parameter value in interfaces.
Dependency description usable for ADTF_CLASS_DEPENDENCIES()
eDescriptionType
Enumerating the different dependency types.
@ DT_PROVIDE
The given interface describes a mandatory provided dependency.
@ DT_REQUIRE_OPTIONAL
The given interface describes an optional required dependency.
@ DT_REQUIRE
The given interface describes a mandatory required dependency.
const char * m_strIid
Interface id which is required/provided.
eDescriptionType m_nType
Either provider, mandatory or optional requester.
Named version information consisting of the modules name and its adtf_util::tVersion.
const char * m_strName
Product name that the version is given for.
adtf_util::tVersion m_sVersion
The actual version for the product.