Fast RTPS  Version 2.14.5
Fast RTPS
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. More...
 
 ~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. More...
 

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]

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()

~RefCountedPointer ( )
default

◆ RefCountedPointer() [2/3]

RefCountedPointer ( const RefCountedPointer< T > &  )
delete

◆ RefCountedPointer() [3/3]

RefCountedPointer ( RefCountedPointer< T > &&  )
delete

Member Function Documentation

◆ deactivate()

void deactivate ( )
inline

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

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

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