ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <CrossedLoader.hpp>
Public Member Functions | |
virtual const char * | getClassName () const |
![]() | |
virtual | ~Accesor () |
Id | getId () const |
dbms::Statement * | getStatement () noexcept(false) |
bool | hasDataBase () const |
dbms::Database & | getDatabase () |
dbms::Connection & | getConnection () noexcept(false) |
virtual std::string | asString () const =0 |
![]() | |
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 | |
Protected Member Functions | |
CrossedLoader (dbms::Database &database, const Id id=0) | |
CrossedLoader (dbms::Database &database, const Id id, const Exception::Mode::_v emode) | |
virtual bool | seek () const |
virtual void | download (Loader &loader) |
![]() | |
Accesor (dbms::Database &database, const Id id) | |
Accesor (dbms::Database &database, const Id id, const Exception::Mode::_v emode) | |
Accesor (const Id id) | |
virtual dbms::Statement * | initialize (dbms::Database &database) noexcept(false)=0 |
![]() | |
Safe () | |
Friends | |
class | StorageArea |
Additional Inherited Members | |
![]() | |
typedef short | Id |
Interfaz que deben cumplir los cargadores cruzados. Un cargador cruzado facilita que una misma clase pueda ser cargada usando varios criterios de búsqueda.
El criterio de búsqueda más usado y que debería ser más óptimo será desarrollado mediante la definición del anna::dbos::Loader específico. El resto de criterios de búsqueda, los cargadores cruzados, deberían ser capaces obtener los datos usados como clave en el criterio principal, para a partir de ahí poder aplicar el criterio de búsqueda principal.
Cada cargador cruzado podría tener una lista de pares (clave_alternativa, clave_principal) que permitirá acelerar las búsquedas de la clave principal, en base a la clave alternativa usada en este cargador.
Para obtener los datos de la clave principal en base a los datos de la clave alternativa habrá que acceder al medio físico.
Para optimizar el acceso a los pares (Clave alternativa, Clave Principal) se podría usar una instancia del tipo anna::LRUMap.
|
inlineprotected |
Constructor.
database | Base de datos asociada a este cargador y que deberia servir para obtener los datos de un objeto. Debe tener la misma disponibilidad que este cargador. |
id | Identificador de este accesor. |
|
inlineprotected |
Constructor.
database | Base de datos asociada a este cargador y que deberia servir para obtener los datos de un objeto. Debe tener la misma disponibilidad que este cargador. |
id | Identificador de este accesor. |
emode | Modo de actuar en caso de no encontrar el dato buscado. |
|
inlineprotectedvirtual |
Este método debe ser reescrito para que se pueda actualizar la lista de pares (clave_alternativa, clave_principal) que permitirá acelear las posteriores búsquedas.
loader | Instancia del cargador principal que habrá compuesto la clave principal con los suministrados por esta instancia. |
|
inlinevirtual |
Metodo de debemos re-escribir para devolver el nombre completo del selector de recursos. Para evitar ambigüedades este nombre deberia incluir la lista completa de namespaces a la que pertenece la clase.
Implements anna::dbos::Accesor.
|
inlineprotectedvirtual |
Este método debe ser reescrito para que permita localizar la información del objeto, que posiblemente esté ubicado en la lista de objetos de este cargador cruzado.
|
friend |