Generic smart pointer. More...
#include <pointer.hh>
Public Types | |
typedef Manager::base_type | base_type |
Pointed type. | |
typedef base_type * | pointer_type |
basic pointer type | |
typedef base_type & | reference_type |
Basic reference type. | |
Public Member Functions | |
bool | null () const |
Check if null. | |
bool | operator! () const |
Check if null. | |
bool | operator!= (pointer const &other) const |
Difference test. | |
reference_type | operator* () const |
dereference operator | |
pointer_type | operator-> () const |
Access operator. | |
pointer & | operator= (pointer const &other) |
Assignement operator. | |
bool | operator== (pointer const &other) const |
Equality test. | |
pointer (pointer_type ptr=0) | |
Constructor. | |
pointer (pointer const &other) | |
Copy constructor. | |
void | reset (pointer_type ptr=0) |
Checnging pointed value. | |
void | swap (pointer &other) |
pointed cell exchange | |
~pointer () | |
Destructor. | |
Private Attributes | |
singleton::use< Manager > | manager |
Manager::mem_cell | pointee |
Generic smart pointer.
This class is a generic definition of smart pointer. It uses a memory manager to manage the pointers.
Manager | The memory manager |
s
Definition at line 52 of file pointer.hh.
typedef Manager::base_type utilmm::smart::pointer< Manager >::base_type |
Pointed type.
This is the type of the element pointed by this pointer
Definition at line 61 of file pointer.hh.
typedef base_type* utilmm::smart::pointer< Manager >::pointer_type |
basic pointer type
This is the type of the classical C/C++ pointer for base_type
Definition at line 67 of file pointer.hh.
typedef base_type& utilmm::smart::pointer< Manager >::reference_type |
Basic reference type.
This is the type of the classical C++ reference for base_type
Definition at line 73 of file pointer.hh.
utilmm::smart::pointer< Manager >::pointer | ( | pointer_type | ptr = 0 | ) | [explicit] |
Constructor.
ptr | The basic pointer we want to manage |
Create a new instance managing ptr
utilmm::smart::pointer< Manager >::pointer | ( | pointer< Manager > const & | other | ) |
Copy constructor.
other | The instance to copy. |
Create a new instance pôinting to the same cell as other.
This will probably influence the life time of the pointed cell
utilmm::smart::pointer< Manager >::~pointer | ( | ) |
Destructor.
This destructor informs the manager that the smart pointer does not use enymore the stored pointer. It may have probably a strong influence on the pointed cell life time.
bool utilmm::smart::pointer< Manager >::null | ( | ) | const |
Check if null.
true | if current insatnce is pointing to nothing |
false | else |
bool utilmm::smart::pointer< Manager >::operator! | ( | ) | const |
Check if null.
true | if current insatnce is pointing to nothing |
false | else |
bool utilmm::smart::pointer< Manager >::operator!= | ( | pointer< Manager > const & | other | ) | const |
Difference test.
other | The instance to compare |
!operator==
(other)reference_type utilmm::smart::pointer< Manager >::operator* | ( | ) | const |
dereference operator
utilmm::null_access | This insatnce points to nothing |
pointer_type utilmm::smart::pointer< Manager >::operator-> | ( | ) | const |
Access operator.
Thsi operator gives direct access to the attributes of pointed value
utilmm::null_access | This insatnce points to nothing |
pointer& utilmm::smart::pointer< Manager >::operator= | ( | pointer< Manager > const & | other | ) |
Assignement operator.
other | The instance to assign |
Change the value of current instance to a value pointing to the same cell as toher.
bool utilmm::smart::pointer< Manager >::operator== | ( | pointer< Manager > const & | other | ) | const |
Equality test.
other | The instance to compare |
true | If current insatnce points to the samme cell as other |
false | else |
void utilmm::smart::pointer< Manager >::reset | ( | pointer_type | ptr = 0 | ) |
Checnging pointed value.
ptr | The new pointer to manage |
This function release the old pointed value (ie it informa the manager that this instnace no more use the pointed value) and sets the new pointed value to ptr.
void utilmm::smart::pointer< Manager >::swap | ( | pointer< Manager > & | other | ) |
pointed cell exchange
other | another instance |
This function swaps the values of current instance and other.
singleton::use<Manager> utilmm::smart::pointer< Manager >::manager [private] |
Definition at line 54 of file pointer.hh.
Manager::mem_cell utilmm::smart::pointer< Manager >::pointee [private] |
Definition at line 201 of file pointer.hh.