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.