ADTF
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
object_ptr_locked< T >

Implementation for a exclusive lock guard. More...

#include <lockedobject_intf.h>

Inheritance diagram for object_ptr_locked< T >:
[legend]

Public Member Functions

 object_ptr_locked ()=default
 CTOR.
 
 object_ptr_locked (object_ptr_locked &&o_oOther)=default
 move-CTOR
 
 ~object_ptr_locked ()
 DTOR.
 
object_ptr_lockedoperator= (object_ptr_locked &&o_oOther)
 move-assignment-operator
 
object_ptr_lockedoperator= (std::nullptr_t)
 null assignment-operator to Reset the value
 
virtual T * Get () const override
 returns the value as pointer
 
virtual tResult Reset (const iobject_ptr< T > &i_oOther) override
 Sets the value as pointer.
 
- Public Member Functions inherited from object_ptr_locked_common< T >
T * operator-> () const
 arrow access
 
T & operator* () const
 
 operator bool () const
 

Protected Member Functions

void UnlockObject () override
 unlock the object
 
- Protected Member Functions inherited from object_ptr_locked_common< T >
 object_ptr_locked_common (object_ptr_locked_common &&o_oOther)
 
tResult Reset (const iobject_ptr< T > &i_oOther)
 
void Release ()
 
void Swap (object_ptr_locked_common &i_oOther)
 
T * GetPtr () const
 

Private Types

typedef detail::object_ptr_locked_common< T > base_type
 

Additional Inherited Members

- Protected Attributes inherited from object_ptr_locked_common< T >
object_ptr< T > m_pObjectPtr
 

Detailed Description

template<typename T>
class adtf::ucom::ant::object_ptr_locked< T >

Implementation for a exclusive lock guard.

This template can be used with any implementation for ILockedObject.

Template Parameters
TType for a ILockedObject derived interface.

Definition at line 204 of file lockedobject_intf.h.

Member Typedef Documentation

◆ base_type

template<typename T>
typedef detail::object_ptr_locked_common<T> base_type
private

Definition at line 209 of file lockedobject_intf.h.

Constructor & Destructor Documentation

◆ object_ptr_locked()

template<typename T>
object_ptr_locked ( object_ptr_locked< T > && o_oOther)
default

move-CTOR

Parameters
o_oOther[in] ...

References object_ptr_locked().

◆ ~object_ptr_locked()

template<typename T>
~object_ptr_locked ( )
inline

DTOR.

Definition at line 220 of file lockedobject_intf.h.

Member Function Documentation

◆ Get()

template<typename T>
virtual T * Get ( ) const
inlineoverridevirtual

returns the value as pointer

Returns
the pointer to the value of the locked object.

Implements iobject_ptr_locked< T >.

Definition at line 240 of file lockedobject_intf.h.

◆ operator=() [1/2]

template<typename T>
object_ptr_locked & operator= ( object_ptr_locked< T > && o_oOther)
inline

move-assignment-operator

Parameters
o_oOther[in] ...

Definition at line 227 of file lockedobject_intf.h.

References object_ptr_locked().

◆ operator=() [2/2]

template<typename T>
object_ptr_locked & operator= ( std::nullptr_t )
inline

null assignment-operator to Reset the value

Definition at line 234 of file lockedobject_intf.h.

References object_ptr_locked().

◆ Reset()

template<typename T>
virtual tResult Reset ( const iobject_ptr< T > & i_oOther)
inlineoverridevirtual

Sets the value as pointer.

Parameters
i_oOther[in] Reference to the locked object.
Returns
Standard Result

Implements iobject_ptr_locked< T >.

Definition at line 245 of file lockedobject_intf.h.

◆ UnlockObject()

template<typename T>
void UnlockObject ( )
inlineoverrideprotectedvirtual

unlock the object

Implements object_ptr_locked_common< T >.

Definition at line 252 of file lockedobject_intf.h.

References adtf::ucom::ant::ucom_cast(), and ILockedObject::Unlock().