EventAnalysis  1.0.0
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
EA::ObjPtr< T > Class Template Reference

Class describing a pointer to an object retrieved from an ObjectMap. More...

#include <ObjPtr.h>

Inheritance diagram for EA::ObjPtr< T >:
EA::observer_ptr< T >

Public Member Functions

 ObjPtr ()
 Default constructor. More...
 
 ObjPtr (const ObjPtr< T > &objPtr)
 Copy constructor. More...
 
 ObjPtr (const ObjPtr< T > &&objPtr)
 Move constructor. More...
 
 ObjPtr (std::nullptr_t)
 Constructor from nullptr. More...
 
ObjPtroperator= (const ObjPtr &rhs)
 Assignment operator. More...
 
ObjPtroperator= (std::nullptr_t)
 Assignment operator from nullptr. More...
 
ObjPtroperator= (const ObjPtr &&rhs)
 Move assignment operator. More...
 
RetrievalResult GetRetrievalResult ()
 Getter for the result of the retrieve operation that generated this object. More...
 
- Public Member Functions inherited from EA::observer_ptr< T >
 observer_ptr ()
 Default constructor. More...
 
 observer_ptr (std::nullptr_t)
 Null constructor. More...
 
template<typename W >
 observer_ptr (const observer_ptr< W > p)
 Copy constructor. More...
 
template<typename W >
observer_ptroperator= (const observer_ptr< W > &p)
 Assignment operator. More...
 
template<typename W >
 observer_ptr (W *p)
 Constructor from raw pointer. More...
 
template<typename W >
observer_ptroperator= (W *p)
 Assignment operator from raw pointer. More...
 
template<typename W >
 observer_ptr (const std::unique_ptr< W > &p)
 Constructor from std::unique_ptr. More...
 
template<typename W >
observer_ptroperator= (const std::unique_ptr< W > &p)
 Assignment operator from std::unique_ptr. More...
 
template<typename W >
 observer_ptr (const std::shared_ptr< W > p)
 Constructor from std::shared_ptr. More...
 
template<typename W >
observer_ptroperator= (const std::shared_ptr< W > &p)
 Assignment operator from std::shared_ptr. More...
 
 operator bool () const
 Conversion to boolean. More...
 
 operator int () const =delete
 
template<typename W >
 operator W* ()
 Conversion to raw pointer. More...
 
T * get () const
 Getter for pointed address. More...
 
T * operator-> () const
 Arrow operator. More...
 
T & operator* () const
 Indirection operator. More...
 

Private Member Functions

 ObjPtr (const observer_ptr< T > &&obsPtr)
 Allow friend classes to set the observer_ptr. More...
 

Private Attributes

RetrievalResult _result
 

Friends

class ObjectMap
 
class DataStore
 
class EventDataStore
 

Detailed Description

template<typename T>
class EA::ObjPtr< T >

Class describing a pointer to an object retrieved from an ObjectMap.

This class is the return type of #ObjectMap::GetObject. It is a smart pointer to the retrieved object, storing also additional information about the result of the GetObject operation.

ObjPtr objects are constructed only in ObjectMap and derived, from the return value of a call to wrapper_cast. This is why a private move constructor from an observer_ptr is defined. There are public copy/move constructors and assignment operators to allow the user to create an ObjPtr and set it equal to another one.

Constructor & Destructor Documentation

◆ ObjPtr() [1/5]

template<typename T>
EA::ObjPtr< T >::ObjPtr ( )
inline

Default constructor.

Creates a pointer pointing to nothing, with a retrieve result equal to NOTFOUND.

◆ ObjPtr() [2/5]

template<typename T>
EA::ObjPtr< T >::ObjPtr ( const ObjPtr< T > &  objPtr)
inline

Copy constructor.

Parameters
objPtrThe ObjPtr to be moved into this one.

◆ ObjPtr() [3/5]

template<typename T>
EA::ObjPtr< T >::ObjPtr ( const ObjPtr< T > &&  objPtr)
inline

Move constructor.

Parameters
objPtrThe ObjPtr to be moved into this one.

◆ ObjPtr() [4/5]

template<typename T>
EA::ObjPtr< T >::ObjPtr ( std::nullptr_t  )
inline

Constructor from nullptr.

Parameters
objPtrThe ObjPtr to be moved into this one.

◆ ObjPtr() [5/5]

template<typename T>
EA::ObjPtr< T >::ObjPtr ( const observer_ptr< T > &&  obsPtr)
inlineprivate

Allow friend classes to set the observer_ptr.

Move constructor from observer_ptr.

The constructed object has a retrieve result equal to NOTFOUND. This constructor is meant to be used for building a ObjPtr from the return value of a wrapper_cast. It is private to avoid the possibility of creating an ObjPtr with an invalid _result.

Parameters
obsPtrThe observer_ptr to be moved into this one.

Member Function Documentation

◆ GetRetrievalResult()

template<typename T>
RetrievalResult EA::ObjPtr< T >::GetRetrievalResult ( )
inline

Getter for the result of the retrieve operation that generated this object.

Returns
a RetrievalResult value.

◆ operator=() [1/3]

template<typename T>
ObjPtr& EA::ObjPtr< T >::operator= ( const ObjPtr< T > &  rhs)
inline

Assignment operator.

Parameters
rhsThe ObjPtr to be copied into this one.
Returns
reference to this ObjPtr.

◆ operator=() [2/3]

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

Assignment operator from nullptr.

Parameters
rhsThe ObjPtr to be copied into this one.
Returns
reference to this ObjPtr.

◆ operator=() [3/3]

template<typename T>
ObjPtr& EA::ObjPtr< T >::operator= ( const ObjPtr< T > &&  rhs)
inline

Move assignment operator.

Parameters
rhsThe ObjPtr to be moved into this one.
Returns
reference to this ObjPtr.

Friends And Related Function Documentation

◆ DataStore

template<typename T>
friend class DataStore
friend

◆ EventDataStore

template<typename T>
friend class EventDataStore
friend

◆ ObjectMap

template<typename T>
friend class ObjectMap
friend

Member Data Documentation

◆ _result

template<typename T>
RetrievalResult EA::ObjPtr< T >::_result
private

The documentation for this class was generated from the following file: