ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Database.hpp>
Classes | |
struct | Type |
Public Types | |
typedef std::vector< Connection * >::const_iterator | const_connection_iterator |
typedef std::vector< Statement * >::const_iterator | const_statement_iterator |
Public Member Functions | |
virtual | ~Database () |
const Type & | getType () const |
const std::string & | getName () const |
void | setFailRecoveryHandler (FailRecoveryHandler *failRecoveryHandler) |
void | setStatementTranslator (StatementTranslator *statementTranslator) |
Connection * | createConnection (const char *name, const char *user, const char *password) noexcept(false) |
Connection & | findConnection (const char *name) noexcept(false) |
const_connection_iterator | connection_begin () const |
const_connection_iterator | connection_end () const |
Statement * | createStatement (const char *name, const char *expression, const bool isCritical=true) noexcept(false) |
Statement * | createStatement (const char *name, const std::string &expression, const bool isCritical=true) noexcept(false) |
Statement * | findStatement (const char *name) |
void | releaseStatement (Statement *statement) |
const_statement_iterator | statement_begin () const |
const_statement_iterator | statement_end () const |
virtual std::string | asString () const |
virtual xml::Node * | asXML (xml::Node *parent) const |
![]() | |
virtual | ~Component () |
void | attach () noexcept(false) |
![]() | |
const char * | getClassName () const |
![]() | |
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 | |
Static Public Member Functions | |
static Statement * | statement (const_statement_iterator &ii) |
static const Connection * | connection (const_connection_iterator &ii) |
Static Public Attributes | |
static const int | MaxConnection = 32 |
Protected Types | |
typedef std::vector< Connection * >::iterator | connection_iterator |
Protected Member Functions | |
Database (const char *rdbmsmsName, const char *dbmsName) | |
void | recover (Connection &connection, const int tryCounter) noexcept(false) |
virtual void | do_initialize () noexcept(false) |
virtual void | do_stop () |
connection_iterator | connection_begin () |
connection_iterator | connection_end () |
![]() | |
Component (const char *className) | |
State::_v | getState () const |
void | addPredecessor (const char *componentName) |
void | initialize () noexcept(false) |
void | stop () |
virtual void | kill () |
![]() | |
Component (const char *className) | |
Component (const Component &other) | |
![]() | |
Safe () | |
Static Protected Member Functions | |
static Connection * | connection (connection_iterator &ii) |
Friends | |
class | Statement |
ResultCode | Connection::execute (Statement *) noexcept(false) |
Additional Inherited Members | |
![]() | |
const std::string | a_className |
Clase que modela la interaccion entre la base y nuestra aplicacion.
|
protected |
Iterador para acceder a las conexiones de esta base de datos
typedef std::vector<Connection*>::const_iterator anna::dbms::Database::const_connection_iterator |
Iterador para acceder a las conexiones de esta base de datos
typedef std::vector<Statement*>::const_iterator anna::dbms::Database::const_statement_iterator |
Iterador para acceder a las conexiones de esta base de datos
|
virtual |
Destructor.
Reimplemented in anna::dbms::oracle::Database, and anna::dbms::mysql::Database.
|
protected |
Contructor.
rdbmsmsName | Nombre del RDMS que gestiona esta base de datos. |
dbmsName | Nombre de la base de datos. |
|
virtual |
Devuelve una cadena con la informacion mas relevante de esta instancia.
Reimplemented from anna::app::Component.
Devuelve un documento XML con la informacion mas relevante de esta instancia.
parent | Nodo XML del que colgar la informacion referente a esta instancia. |
Reimplemented from anna::app::Component.
|
inlinestatic |
Devuelve el objeto sobre el que esta posicionado el iterator recibido como parametro.
ii | Iterator que deberia estar comprendido entre connection_begin y connection_end. |
|
inlinestaticprotected |
Devuelve el objeto sobre el que esta posicionado el iterator recibido como parametro.
ii | Iterator que deberia estar comprendido entre connection_begin y connection_end. |
|
inline |
|
inlineprotected |
|
inline |
|
inlineprotected |
|
noexcept |
Crea y registra una nueva conexion con esta base de datos. La clase usada para conectar con esta base de datos dependeria de la implementacion particular, que seria definida por el metodo #allocateConnection.
name | Nombre logico de la conexion a crear. |
user | Nombre del usuario con el que realizamos la conexion. |
password | Codigo de acceso del usuario. |
|
noexcept |
Crea y registra una nueva sentencia SQL asociada a esta base de datos. La clase usada para interpretar la sentencia SQL dependera de la implementacion particular definida mediante el metodo #allocateStatement.
name | Nombre logico de esta sentencia. |
expression | Expresion asociada a la sentencia. |
isCritical | Si vale true indica que si la ejecucion de esta sentencia falla al desbloquear la conexion con la que ejecutamos esta sentencia se invocara a Connection::rollback, en otro caso aunque falle se invocara a Connection::commit. Solo aplicara en sentencias que no sean de seleccion. |
|
inlinenoexcept |
Crea y registra una nueva sentencia SQL asociada a esta base de datos. La clase usada para interpretar la sentencia SQL dependera de la implementacion particular definida mediante el metodo #allocateStatement.
name | Nombre logico de esta sentencia. |
expression | Expresion asociada a la sentencia. |
isCritical | Si vale true indica que si la ejecucion de esta sentencia falla al desbloquear la conexion con la que ejecutamos esta sentencia se invocara a Connection::rollback, en otro caso aunque falle se invocara a Connection::commit. Solo aplicara en sentencias que no sean de seleccion. |
|
protectedvirtualnoexcept |
Inicializa las conexiones definidas sobre esta base de datos. Este metodo se invocaria automaticamente desde el nucleo de ANNA. Slo seria necesario invocarlo cuando nuestro programa no tenga asociada ninguna aplicacion que se encarga de inicializar los componentes.
Implements anna::app::Component.
|
protectedvirtual |
Elimina las conexiones definidas sobre esta base de datos. Este metodo se invocaria automaticamente desde el nucleo de ANNA.
Implements anna::app::Component.
|
noexcept |
Devuelve la conexion asociada al nombre logico recibido como parametro.
name | Nombre logico de la conexion que queremos obtener. |
Statement* anna::dbms::Database::findStatement | ( | const char * | name | ) |
Devuelve la instancia de la sentencia SQL asociada al nombre recibido como parametro.
|
inline |
|
inline |
|
protectednoexcept |
Recupera el estado de una conexion perdida.
connection | Instancia de la conexion en la que hemos detectado el fallo. |
tryCounter | numero de intentos de recuperacion de la conexion. |
void anna::dbms::Database::releaseStatement | ( | Statement * | statement | ) |
Libera los recursos de la sentencia SQL recibida como parametro.
statement | Instancia de la sentencia SQL a liberar. deberia haber sido obtenida mediante el metodo createStatement. |
|
inline |
Establece el manejador encargado de actuar cuando la recuperacion de la conexion falla. El manejador por defecto no realiza ninguna activad.
failRecoveryHandler | Manejador que seria invocado en caso de que no sea posible recuperar una determina conexion. |
|
inline |
|
inlinestatic |
Devuelve el objeto sobre el que esta posicionado el iterator recibido como parametro.
ii | Iterator que deberia estar comprendido entre statement_begin y statement_end. |
|
inline |
|
inline |
|
friend |
|
friend |
|
static |
Numero maximo de conexiones que podemos crear.