utilmm::smart::ref_count::manager< Memory > Class Template Reference
[Smart pointers]

Reference counting management. More...

#include <utilmm/smart/bits/ref_count_manager.hh>

List of all members.

Public Types

typedef Memory::base_type base_type
 public type of pointed cells
typedef Memory::mem_cell mem_cell
 real type of pointed cells

Public Member Functions

mem_cell manage (base_type *ptr)
 Add new pointer in management.
mem_cell assign (mem_cell c)
 Assignment of a cell.
void release (mem_cell c)
 Unassignement of a cell.
bool null (mem_cell c)
 Check if null.
base_typeget_ptr (mem_cell c)
 real pointer value.

Friends

class singleton::wrapper


Detailed Description

template<class Memory>
class utilmm::smart::ref_count::manager< Memory >

Reference counting management.

Parameters:
Memory a model for the memory
This class is a manager for smart::pointer that control the life time policy of memory cells managed by Memory

Note:
utilmm::smart::simple_memory is a quite simple and illustrative model for Memory
Author:
Frédéric Py <fpy@laas.fr>

Member Typedef Documentation

template<class Memory>
typedef Memory::base_type utilmm::smart::ref_count::manager< Memory >::base_type

public type of pointed cells

template<class Memory>
typedef Memory::mem_cell utilmm::smart::ref_count::manager< Memory >::mem_cell

real type of pointed cells

This type will store all the information of the reference counter it may be compatible with the std::pair<base_type,size_t>* type.


Member Function Documentation

template<class Memory>
mem_cell utilmm::smart::ref_count::manager< Memory >::manage ( base_type ptr  ) 

Add new pointer in management.

Parameters:
ptr The pointer to manage
This function is called by smart::pointer when this one wants to add a new pointer to the manager management.

Returns:
The cell corresponding to this pointer.

template<class Memory>
mem_cell utilmm::smart::ref_count::manager< Memory >::assign ( mem_cell  c  ) 

Assignment of a cell.

This function is called by utilmm::smart::pointer to indicate to the manager that a given cell is assigned to a new pointer.

Parameters:
c The cell assigned
Postcondition:
reference counter of c is incremented by 1
Returns:
c ater the operation

template<class Memory>
void utilmm::smart::ref_count::manager< Memory >::release ( mem_cell  c  ) 

Unassignement of a cell.

This function is called by utilmm::smart::pointer to indicate that a pointer has stopped to used a given cell.

Parameters:
c The cell released
Postcondition:
The counter for c is decrmented by 1 and, if this counter has reached the 0 value the cell is detroyed.

template<class Memory>
bool utilmm::smart::ref_count::manager< Memory >::null ( mem_cell  c  )  [inline]

Check if null.

Check if a given cell points to nothing

Parameters:
c The cell to check
Return values:
true if c is null
false else

template<class Memory>
base_type* utilmm::smart::ref_count::manager< Memory >::get_ptr ( mem_cell  c  )  [inline]

real pointer value.

This function give an access to the real pointer value of a given cell.

Parameters:
c The cell
Returns:
the pointer value of the cell


Friends And Related Function Documentation

template<class Memory>
friend class singleton::wrapper [friend]


The documentation for this class was generated from the following file:
Generated on Tue Feb 19 10:51:02 2008 for Util-- by doxygen 1.5.3
SourceForge.net Project Page