ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <SafeRecycler.hpp>
Public Types | |
typedef Recycler< T, _Allocator >::iterator | iterator |
typedef Recycler< T, _Allocator >::const_iterator | const_iterator |
Public Types inherited from anna::Recycler< T, _Allocator > | |
typedef std::list< T * > | container |
typedef container::iterator | iterator |
typedef container::const_iterator | const_iterator |
typedef std::map< T *, iterator > | random_container |
typedef random_container::iterator | random_iterator |
typedef random_container::value_type | random_item |
Public Member Functions | |
SafeRecycler (const bool randomAccess=false) | |
virtual | ~SafeRecycler () |
T * | create () noexcept(false) |
iterator | find (T *t) noexcept(false) |
void | release (T *t) |
void | release (iterator &ii) |
void | release (const T *t) |
void | clear () |
Public Member Functions inherited from anna::Recycler< T, _Allocator > | |
Recycler (const bool randomAccess=false) | |
virtual | ~Recycler () |
int | getSize () const |
int | size () const |
T * | create () noexcept(false) |
iterator | find (T *t) noexcept(false) |
void | release (T *t) |
void | release (iterator ii) |
void | release (const T *t) |
void | clear () |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
Public Member Functions inherited from anna::Mutex | |
Mutex (const Mode::_v mode=Mode::Recursive) | |
virtual | ~Mutex () |
virtual void | lock () noexcept(false) |
virtual void | unlock () |
bool | trylock () noexcept(false) |
operator const pthread_mutex_t * () const | |
Additional Inherited Members | |
Static Public Member Functions inherited from anna::Recycler< T, _Allocator > | |
static T * | data (iterator ii) |
static const T * | data (const_iterator ii) |
Protected Member Functions inherited from anna::Safe | |
Safe () | |
Mantiene una lista de punteros que puede crecer dinamicamente, no obstante, siempre que sea posible intenta reusar punteros creados previamente.
Establece secciones critidas para acceder a los datos.
T | Clase de la que mantener la lista de punteros pre-asignados. |
Allocator | Clase encargada de reservar la memoria para los objetos T en el momento en que sea necesaria una nueva instancia. |
typedef Recycler<T, _Allocator>::const_iterator anna::SafeRecycler< T, _Allocator >::const_iterator |
typedef Recycler<T, _Allocator>::iterator anna::SafeRecycler< T, _Allocator >::iterator |
|
inline |
Constructor.
randomAccess | Indicador que permite activar el uso de estructuras de datos adicionales Se ha comprobado que si necesitamos tratar en torno a un centenar de instancias es más eficiente no activar las estructuras para acceso directo, para más objetos resulta imprescinble. |
|
inlinevirtual |
|
inline |
Marca como disponibles todos los objetos contenidos en memoria.
|
inlinenoexcept |
Devuelve un puntero de tipo T. Solo crearia una nueva instancia de la clase T si al invocar a este metoodo no existe ninguna otra instancia que se pueda reutilizar, en cuyo caso haria una nueva reserva.
Cada una de las llamadas a este metodo debe tener su correspondiente llamada al metodo release cuando el puntero deje de ser util.
|
inlinenoexcept |
Devuelve el iterador que apunta al objeto recibido como parametro.
|
inline |
Libera el puntero recibido como parametro. No se libera fisicamente sino que se deja marcado como reusable.
Si el puntero pasado como parametro no ha sido obtenido mediante el metodo create los resultados no estan definidos.
t | Instancia de un puntero de tipo T obtenido a partir del metodo create. |
|
inline |
Libera el puntero asociado al iterador recibido como parametro.
ii | Instancia a liberar. |
|
inline |
Libera el puntero recibido como parametro. No se libera fisicamente sino que se deja marcado como reusable.
Si el puntero pasado como parametro no ha sido obtenido mediante el metodo create los resultados no estan definidos.
t | Instancia de un puntero de tipo T obtenido a partir del metodo create. |