ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Member Functions | List of all members
anna::SafeSortedVector< T, SortBy, TKey > Class Template Reference

#include <SafeSortedVector.hpp>

Inheritance diagram for anna::SafeSortedVector< T, SortBy, TKey >:
Inheritance graph
[legend]
Collaboration diagram for anna::SafeSortedVector< T, SortBy, TKey >:
Collaboration graph
[legend]

Public Member Functions

 SafeSortedVector ()
 
 SafeSortedVector (const SafeSortedVector &other)
 
bool contains (const T *t) const
 
bool add (T *t) noexcept(false)
 
bool erase (T *t) noexcept(false)
 
T * find (const TKey key)
 
const T * find (const TKey key) const
 
- Public Member Functions inherited from anna::SortedVector< T, SortBy, TKey >
 SortedVector ()
 
 SortedVector (const SortedVector &other)
 
virtual ~SortedVector ()
 
bool contains (const T *t) const
 
bool add (T *t) noexcept(false)
 
bool erase (T *t) noexcept(false)
 
T * find (const TKey key)
 
const T * find (const TKey key) 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

- Public Types inherited from anna::SortedVector< T, SortBy, TKey >
typedef std::map< TKey, T * > container
 
typedef container::iterator iterator
 
typedef container::const_iterator const_iterator
 
typedef container::value_type value_type
 
- Static Public Member Functions inherited from anna::SortedVector< T, SortBy, TKey >
static T * data (iterator ii)
 
static const T * data (const_iterator ii)
 
- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Detailed Description

template<typename T, typename SortBy, typename TKey = int>
class anna::SafeSortedVector< T, SortBy, TKey >

Patron para ordenar instancias de objetos en base de una clave. El acceso a la lista de datos se realiza desde secciones criticas.

Parameters
TClase del patron.
SortByClase que ofrece el valor por el que ordenar. Debe implementar un metodo constante con la signatura: TKey value (const T*)
TKeyTipo de clave usado para calcular la ordenacion. Debe implementar los operadores '=', '<' y '==' y el contructor copia.

Constructor & Destructor Documentation

◆ SafeSortedVector() [1/2]

template<typename T , typename SortBy , typename TKey = int>
anna::SafeSortedVector< T, SortBy, TKey >::SafeSortedVector ( )
inline

Constructor.

36 : SortedVector <T, SortBy, TKey> () {;}

◆ SafeSortedVector() [2/2]

template<typename T , typename SortBy , typename TKey = int>
anna::SafeSortedVector< T, SortBy, TKey >::SafeSortedVector ( const SafeSortedVector< T, SortBy, TKey > &  other)
inlineexplicit

Constructor copia.

Parameters
otherInstancia de la que copiar.
42 : SortedVector <T, SortBy, TKey> (other) {}

Member Function Documentation

◆ add()

template<typename T , typename SortBy , typename TKey = int>
bool anna::SafeSortedVector< T, SortBy, TKey >::add ( T *  t)
inlinenoexcept

Incorpora la instancia recibida como parametro en la lista ordenada de objetos.

Parameters
tInstancia a guardar en el vector. Si es NULL la operacion no tendra ningun efecto.
Returns
true si ha registrado la nueva instancia o false en otro caso.
66  {
67  if(t == NULL)
68  return false;
69 
70  Guard guard(this, "SafeSortedVector <T, SortBy, TKey>::add");
72  }
bool add(T *t) noexcept(false)
Definition: SortedVector.hpp:75

◆ contains()

template<typename T , typename SortBy , typename TKey = int>
bool anna::SafeSortedVector< T, SortBy, TKey >::contains ( const T *  t) const
inline

Devolvera true si la instancia recibida como parametro esta contenido en el vector o en otro caso. Si la instancia recibida es NULL siempre devolvera false.

Parameters
tInstancia a comprobar.
Returns
true si la instancia recibida como parametro esta contenido en el vector o en otro caso.
52  {
53  if(t == NULL)
54  return false;
55 
56  Guard guard(this, "SafeSortedVector <T, SortBy, TKey>::contains");
58  }
bool contains(const T *t) const
Definition: SortedVector.hpp:61

◆ erase()

template<typename T , typename SortBy , typename TKey = int>
bool anna::SafeSortedVector< T, SortBy, TKey >::erase ( T *  t)
inlinenoexcept

Elimina la instancia recibida como parametro de la lista ordenada de objetos.

Parameters
tInstancia a guardar en el vector. Si es NULL la operacion no tendra ningun efecto.
Returns
true si ha eliminado la instancia o false en otro caso.
80  {
81  if(t == NULL)
82  return false;
83 
84  Guard guard(this, "SafeSortedVector <T, SortBy, TKey>::erase");
86  }
bool erase(T *t) noexcept(false)
Definition: SortedVector.hpp:91

◆ find() [1/2]

template<typename T , typename SortBy , typename TKey = int>
T* anna::SafeSortedVector< T, SortBy, TKey >::find ( const TKey  key)
inline

Devuelve la instancia asociada a la clave recibida como parametro o NULL si no existe.

Parameters
keyClave a buscar en el vector.
Returns
la instancia asociada a la clave recibida como parametro o NULL si no existe.
94  {
95  Guard guard(this, "SafeSortedVector <T, SortBy, TKey>::find");
97  }
T * find(const TKey key)
Definition: SortedVector.hpp:113

◆ find() [2/2]

template<typename T , typename SortBy , typename TKey = int>
const T* anna::SafeSortedVector< T, SortBy, TKey >::find ( const TKey  key) const
inline

Devuelve la instancia asociada a la clave recibida como parametro o NULL si no existe.

Parameters
keyClave a buscar en el vector.
Returns
la instancia asociada a la clave recibida como parametro o NULL si no existe.
104  {
105  return const_cast <SafeSortedVector <T, SortBy, TKey>*>(this)->find(key);
106  }
T * find(const TKey key)
Definition: SafeSortedVector.hpp:93
Here is the call graph for this function:

The documentation for this class was generated from the following file: