smart pointer class similar to boost::intrusive_ptr More...
#include <ptr.h>
Classes | |
class | Tester |
Public Member Functions | |
Ptr () | |
Create an empty smart pointer. More... | |
Ptr (T *ptr) | |
Ptr (T *ptr, bool ref) | |
Ptr (Ptr const &o) | |
template<typename U > | |
Ptr (Ptr< U > const &o) | |
~Ptr () | |
operator Tester * () const | |
bool | operator! () |
const T & | operator* () const |
T & | operator* () |
T * | operator-> () const |
T * | operator-> () |
Ptr< T > & | operator= (Ptr const &o) |
Private Member Functions | |
void | Acquire (void) const |
Private Attributes | |
T * | m_ptr |
Friends | |
template<typename U > | |
U * | GetPointer (const Ptr< U > &p) |
template<typename U > | |
U * | PeekPointer (const Ptr< U > &p) |
class | Ptr< const T > |
Related Functions | |
(Note that these are not member functions.) | |
template<typename T > | |
T * | GetPointer (const Ptr< T > &p) |
template<typename T > | |
T * | PeekPointer (const Ptr< T > &p) |
smart pointer class similar to boost::intrusive_ptr
This smart-pointer class assumes that the underlying type provides a pair of Ref and Unref methods which are expected to increment and decrement the internal refcount of the object instance.
This implementation allows you to manipulate the smart pointer as if it was a normal pointer: you can compare it with zero, compare it against other pointers, assign zero to it, etc.
It is possible to extract the raw pointer from this smart pointer with the GetPointer and PeekPointer methods.
If you want to store a newed object into a smart pointer, we recommend you to use the Create template functions to create the object and store it in a smart pointer to avoid memory leaks. These functions are really small convenience functions and their goal is just is save you a small bit of typing.
ptr | raw pointer to manage |
Create a smart pointer which points to the object pointed to by the input raw pointer ptr. This method creates its own reference to the pointed object. The caller is responsible for Unref()'ing its own reference, and the smart pointer will eventually do the same, so that object is deleted if no more references to it remain.
Definition at line 421 of file ptr.h.
References ns3::Ptr< T >::Acquire().
ptr | raw pointer to manage |
ref | if set to true, this method calls Ref, otherwise, it does not call Ref. |
Create a smart pointer which points to the object pointed to by the input raw pointer ptr.
Definition at line 428 of file ptr.h.
References ns3::Ptr< T >::Acquire().
Definition at line 438 of file ptr.h.
References ns3::Ptr< T >::Acquire().
Definition at line 445 of file ptr.h.
References ns3::Ptr< T >::Acquire().
|
inlineprivate |
Definition at line 406 of file ptr.h.
Referenced by ns3::GetPointer(), and ns3::Ptr< T >::Ptr().
const T & ns3::Ptr< T >::operator* | ( | ) | const |
Definition at line 462 of file ptr.h.
References ns3::Ptr< T >::m_ptr.
|
related |
|
related |
|
private |
Definition at line 62 of file ptr.h.
Referenced by ns3::GetPointer(), ns3::Ptr< T >::operator=(), and ns3::PeekPointer().