ADTF
Loading...
Searching...
No Matches
object_intf.h
Go to the documentation of this file.
1
7#pragma once
8
9#define _ADTF_UCOM_ANT_OBJECT_INTERFACE_INCLUDES_HEADER_
10
11#include <adtfucom3/adtf_iid.h>
12
13namespace adtf
14{
15namespace ucom
16{
17namespace ant
18{
19
20namespace detail
21{
22
23//forward declaration needed for friend classes in different namespaces
24class object_reference_counter;
25
26}//ns detail
33{
34public:
39 ADTF_IID(IObject, "object.ant.ucom.adtf.iid");
40
41private:
44
46 template<typename InterfaceType, bool>
48
49 // ucom_cast functionality
70 virtual tResult GetInterface(const char* i_strIID, void*& o_pInterface) = 0;
71
76 virtual tResult GetInterface(const char* i_strIID, const void*& o_pInterface) const = 0;
77
97 [[deprecated("Use of Destroy results in a mismatched deallocation. Use adtf::ucom::allocate_object_ptr "
98 "instead.")]] virtual void
99 Destroy() const = 0;
100
101protected:
103 ~IObject() = default;
104}; // class IObject
105
106} // namespace ant
107
110
111} // namespace ucom
112} // namespace adtf
113
114//*************************************************************************************************
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
Definition object_intf.h:33
ADTF_IID(IObject, "object.ant.ucom.adtf.iid")
friend class detail::object_reference_counter
Gain friend access to private Destroy() method for the object_ptr.
Definition object_intf.h:43
~IObject()=default
Protected destructor --> Only the final implementation can be destroyed!
friend struct detail::ucom_cast_to_implicit_cast
Gain friend access to private GetInterface() methods for ucom_cast_to_implicit_cast<>
Definition object_intf.h:47
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 the ADTF uCOM SDK.
Definition adtf_system.h:324
ant::IObject IObject
Alias always bringing the latest version of ant::IObject into scope.
Definition object_intf.h:109
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14