31template<
typename TSize>
32class DOEXPORT iobject_ptr_ref
35 typedef TSize size_type;
39 ~iobject_ptr_ref() =
default;
42 virtual void IncreaseUseCount() = 0;
43 virtual void DecreaseUseCount() = 0;
45 virtual void IncreaseWeakCount() = 0;
46 virtual void DecreaseWeakCount() = 0;
48 virtual bool IncreaseUseCountNonZero() = 0;
73 virtual T*
Get()
const = 0;
93 virtual detail::iobject_ptr_ref<size_t>* GetObjPtrRef()
const = 0;
147template<
typename T,
typename U>
150 return i_oLHS.
Get() == i_pRHS;
161template<
typename T,
typename U>
175template<
typename T,
typename U>
189template<
typename T,
typename U>
203template<
typename T,
typename U>
206 return i_oLHS.
Get() == i_oRHS.
Get();
217template<
typename T,
typename U>
231template<
typename T,
typename U>
234 typedef typename std::common_type<T*, U*>::type common_pointer_type;
235 return std::less<common_pointer_type>()(i_oLHS.
Get(), i_oRHS.
Get());
246template<
typename T,
typename U>
260template<
typename T,
typename U>
274template<
typename T,
typename U>
289 return !i_oLHS.
Get();
301 return i_oRHS ==
nullptr;
313 return nullptr != i_oLHS.
Get();
325 return i_oRHS !=
nullptr;
337 return std::less<T*>()(i_oLHS.
Get(),
nullptr);
349 return std::less<T*>()(
nullptr, i_oRHS.
Get());
Copyright © Audi Electronics Venture GmbH.
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Base class for every interface type within the uCOM.
const IObject object_type
Provided for single point of const correct type access.
~iobject_ptr()=default
Destructor.
Base class for iobject_ptr<T> defining their commonly used interface methods.
virtual T * Get() const =0
Get raw pointer to shared object.
virtual T * operator->() const =0
Operator-> overload to treat object_ptr<> types like real pointers.
~iobject_ptr_base()=default
Destructor.
virtual tResult Reset(const iobject_ptr< T > &i_oOther)=0
Reset this object_ptr<> with the content of another iobject_ptr<>
T element_type
Contained type to manage an object of.
Base object pointer to realize binary compatible reference counting in interface methods.
~iobject_ptr()=default
Destructor.
Namespace for all internally used uCOM functionality implemented.
Namespace for all functionality provided since v3.0.
bool operator<=(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Less-than-or-equal operator for forward_iterator.
bool operator>=(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Greater-than-or-equal operator for forward_iterator.
bool operator!=(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Inequality operator for forward_iterator.
bool operator==(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Equality operator for forward_iterator.
bool operator<(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Less-than operator for forward_iterator.
bool operator>(const forward_iterator< T > &oLHS, const forward_iterator< T > &oRHS) noexcept
Greater-than operator for forward_iterator.
Namespace for the ADTF uCOM3 SDK.
ant::iobject_ptr< T > iobject_ptr
Alias always bringing the latest version of ant::iobject_ptr into scope.
Namespace for entire ADTF SDK.
Copyright © Audi Electronics Venture GmbH.