INET Framework for OMNeT++/OMNEST
inet::IntrusivePtrCounter< T > Class Template Reference

#include <IntrusivePtr.h>

Public Member Functions

INET_ALWAYS_INLINE IntrusivePtrCounter () noexcept
 
INET_ALWAYS_INLINE IntrusivePtrCounter (IntrusivePtrCounter const &) noexcept
 
INET_ALWAYS_INLINE unsigned int use_count () const noexcept
 
INET_ALWAYS_INLINE IntrusivePtrCounteroperator= (IntrusivePtrCounter const &) noexcept
 
INET_ALWAYS_INLINE IntrusivePtr< Tshared_from_this ()
 

Protected Member Functions

INET_ALWAYS_INLINE ~IntrusivePtrCounter ()=default
 

Private Attributes

unsigned int c
 

Friends

void intrusivePtrCounterIncrement (const IntrusivePtrCounter< T > *p) noexcept
 
void intrusivePtrCounterDecrement (const IntrusivePtrCounter< T > *p) noexcept
 

Constructor & Destructor Documentation

◆ IntrusivePtrCounter() [1/2]

template<typename T >
INET_ALWAYS_INLINE inet::IntrusivePtrCounter< T >::IntrusivePtrCounter ( )
inlinenoexcept
245 : c(0) {}

◆ IntrusivePtrCounter() [2/2]

template<typename T >
INET_ALWAYS_INLINE inet::IntrusivePtrCounter< T >::IntrusivePtrCounter ( IntrusivePtrCounter< T > const &  )
inlinenoexcept
246 : c(0) {}

◆ ~IntrusivePtrCounter()

template<typename T >
INET_ALWAYS_INLINE inet::IntrusivePtrCounter< T >::~IntrusivePtrCounter ( )
protecteddefault

Member Function Documentation

◆ operator=()

template<typename T >
INET_ALWAYS_INLINE IntrusivePtrCounter& inet::IntrusivePtrCounter< T >::operator= ( IntrusivePtrCounter< T > const &  )
inlinenoexcept
250 { return *this; }

◆ shared_from_this()

template<typename T >
INET_ALWAYS_INLINE IntrusivePtr<T> inet::IntrusivePtrCounter< T >::shared_from_this ( )
inline
252 { return IntrusivePtr<T>(static_cast<T *>(this)); }

◆ use_count()

template<typename T >
INET_ALWAYS_INLINE unsigned int inet::IntrusivePtrCounter< T >::use_count ( ) const
inlinenoexcept
248 { return c; }

Friends And Related Function Documentation

◆ intrusivePtrCounterDecrement

template<typename T >
void intrusivePtrCounterDecrement ( const IntrusivePtrCounter< T > *  p)
friend
269 {
270  if (--(p->c) == 0)
271  delete static_cast<const T *>(p);
272 }

◆ intrusivePtrCounterIncrement

template<typename T >
void intrusivePtrCounterIncrement ( const IntrusivePtrCounter< T > *  p)
friend
263 {
264  ++(p->c);
265 }

Member Data Documentation

◆ c

template<typename T >
unsigned int inet::IntrusivePtrCounter< T >::c
mutableprivate

The documentation for this class was generated from the following file:
inet::units::units::T
compose< Wb, pow< m, -2 > > T
Definition: Units.h:951
inet::IntrusivePtrCounter::c
unsigned int c
Definition: IntrusivePtr.h:242