Fast RTPS  Version 2.14.5
Fast RTPS
Loading...
Searching...
No Matches
RefCountedPointer< T > Class Template Reference

Class to manage a local pointer with reference counting. More...

#include <RefCountedPointer.hpp>

Classes

class  Instance
 Class to manage the local pointer instance. More...
 

Public Member Functions

 RefCountedPointer (T *ptr)
 Explicit constructor.
 
 ~RefCountedPointer ()=default
 
 RefCountedPointer (const RefCountedPointer &)=delete
 
RefCountedPointeroperator= (const RefCountedPointer &)=delete
 
 RefCountedPointer (RefCountedPointer &&)=delete
 
RefCountedPointeroperator= (RefCountedPointer &&)=delete
 
void deactivate ()
 Ensure no more valid local pointer instances are created, and wait for current ones to die.
 

Detailed Description

template<typename T>
class eprosima::fastrtps::RefCountedPointer< T >

Class to manage a local pointer with reference counting.

It is similar to std::shared_ptr, but designed for cases where a shared pointer cannot be used due to API restrictions.

USAGE:

  • On T class:
    • Add a shared_ptr<RefCountedPointer<T>> local_ptr_ member.
    • Call local_ptr_->deactivate() before destroying T.
  • On classes that need to use a pointer to T:
    • Keep a copy of the shared_ptr<RefCountedPointer<T>>.
    • Whenever you need to access T: RefCountedPointer<T>::Instance instance(local_ptr_) if (instance) { ptr->method(); }

Constructor & Destructor Documentation

◆ RefCountedPointer() [1/3]

template<typename T >
RefCountedPointer ( T * ptr)
inlineexplicit

Explicit constructor.

Parameters
ptrPointer to manage.
Precondition
nullptr != ptr. We must ensure that the pointer we are manaing is valid.

◆ ~RefCountedPointer()

template<typename T >
~RefCountedPointer ( )
default

◆ RefCountedPointer() [2/3]

template<typename T >
RefCountedPointer ( const RefCountedPointer< T > & )
delete

◆ RefCountedPointer() [3/3]

template<typename T >
RefCountedPointer ( RefCountedPointer< T > && )
delete

Member Function Documentation

◆ deactivate()

template<typename T >
void deactivate ( )
inline

Ensure no more valid local pointer instances are created, and wait for current ones to die.

◆ operator=() [1/2]

template<typename T >
RefCountedPointer & operator= ( const RefCountedPointer< T > & )
delete

◆ operator=() [2/2]

template<typename T >
RefCountedPointer & operator= ( RefCountedPointer< T > && )
delete

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