ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
anna::dbms::Connection Class Referenceabstract

#include <Connection.hpp>

Inheritance diagram for anna::dbms::Connection:
Inheritance graph
[legend]
Collaboration diagram for anna::dbms::Connection:
Collaboration graph
[legend]

Public Member Functions

DatabasegetDatabase () const
 
const std::string & getUser () const
 
const std::string & getPassword () const
 
void setPassword (const char *password)
 
int setMaxCommitPending (const int maxCommitPending)
 
void resetRollbackPending ()
 
void activateRollbackPending ()
 
ResultCode execute (Statement *statement) noexcept(false)
 
virtual std::string asString () const
 
virtual xml::NodeasXML (xml::Node *parent) const
 
- Public Member Functions inherited from anna::comm::Resource
virtual void asAttribute (xml::Node *node) const noexcept(false)
 
- Public Member Functions inherited from anna::Resource
 Resource (const std::string &name)
 
const std::string & getName () const
 
bool isEnabled () const
 
void setTimeStamp (const Millisecond &timeStamp)
 
const MillisecondgetTimeStamp () const
 
bool operator== (const std::string &name) const
 
bool operator== (const Resource &other) const
 
void enable () noexcept(false)
 
void disable () noexcept(false)
 
virtual bool isAvailable () const noexcept(false)=0
 
- Public Member Functions inherited from anna::Mutex
 Mutex (const Mode::_v mode=Mode::Recursive)
 
virtual ~Mutex ()
 
bool trylock () noexcept(false)
 
 operator const pthread_mutex_t * () const
 

Protected Member Functions

 Connection (Database &database, const std::string &name, const char *user, const char *password)
 
void commit () noexcept(false)
 
void rollback ()
 
virtual void open () noexcept(false)=0
 
virtual void close ()=0
 
- Protected Member Functions inherited from anna::comm::Resource
 Resource (const std::string &name)
 
- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Protected Attributes

Databasea_database
 
std::string a_user
 
std::string a_password
 

Friends

class Database
 

Detailed Description

Clase que modela la conexion con la base de datos.

Para crear una nueva conexion hay que invocar al Metodo Database::createConnection de la base de datos contra la que deseamos establecer la conexion.

Para obtener una conexion a una determinada base de datos habria que instanciar dicha base de datos e invocar al Metodo Database::createConnection. Independientemente del tipo de conexion particular que la base de datos retorne, debemos asignarlo a un puntero de tipo anna::dbms::Connection.

Constructor & Destructor Documentation

◆ Connection()

anna::dbms::Connection::Connection ( Database database,
const std::string &  name,
const char *  user,
const char *  password 
)
inlineprotected

Contructor.

Parameters
databaseInstancia de la base de datos asociada a esta conexion.
nameNombre logico de la conexion.
userNombre del usuario con el que realizamos la conexion.
passwordCodigo de acceso del usuario.
141  :
142  comm::Resource(name),
143  a_database(database),
144  a_user(user),
145  a_password(password),
146  a_lockingCounter(0),
147  a_commitPending(0),
148  a_rollbackPending(false),
149  a_maxCommitPending(0) {}
Database & a_database
Definition: Connection.hpp:129
std::string a_password
Definition: Connection.hpp:131
std::string a_user
Definition: Connection.hpp:130

Member Function Documentation

◆ activateRollbackPending()

void anna::dbms::Connection::activateRollbackPending ( )
inline

Activa de forma externa el indicador de que la conexion requiere una invocacion a rollback.

Warning
La invocacion a este metodo debera hacerse con una seccion critica activada sobre la esta conexion.
91 { a_rollbackPending = true; }

◆ asString()

virtual std::string anna::dbms::Connection::asString ( ) const
virtual

Devuelve una cadena con la informacion referente a esta instancia.

Returns
Una cadena con la informacion referente a esta instancia.

Reimplemented from anna::Resource.

Reimplemented in anna::dbms::oracle::Connection, and anna::dbms::mysql::Connection.

◆ asXML()

virtual xml::Node* anna::dbms::Connection::asXML ( xml::Node parent) const
virtual

Devuelve un documento XML con la informacion referente a esta instancia.

Parameters
parentNodo XML del que debe colgar la informacion.
Returns
un documento XML con la informacion referente a esta instancia.

Reimplemented from anna::comm::Resource.

◆ close()

virtual void anna::dbms::Connection::close ( )
protectedpure virtual

Metodo que debemos re-escribir para cerrar la conexion.

◆ commit()

void anna::dbms::Connection::commit ( )
protectednoexcept

Metodo que fija los cambios realizados en la ejecucion de los comandos SQL.

◆ execute()

ResultCode anna::dbms::Connection::execute ( Statement statement)
noexcept

Ejecuta la sentencia recibida como parametro. Si la sentencia no tiene variables de salida consideraria que es un comando update, insert o delete, lo cual, implica la invocacion automatica a los commit o rollback cuando termine la seccion critica de esta conexion.

Parameters
statementSentencia que vamos a ejecuta
Returns
La estructura con el resultado de la ejecucion de la sentencia.
Warning
La invocacion a este metodo debera hacerse con una seccion critica activada sobre la esta conexion, por ejemplo:
Guard guard (connection);
connection.execute (someStatement);

◆ getDatabase()

Database& anna::dbms::Connection::getDatabase ( ) const
inline

Devuelve la instancia de la base de datos asociada a esta conexion.

43 { return a_database; }
Database & a_database
Definition: Connection.hpp:129

◆ getPassword()

const std::string& anna::dbms::Connection::getPassword ( ) const
inline

Devuelve el password del usuario con el que fué realizada esta conexión.

Returns
el password del usuario con el que fué realizada esta conexión.
55 { return a_password; }
std::string a_password
Definition: Connection.hpp:131

◆ getUser()

const std::string& anna::dbms::Connection::getUser ( ) const
inline

Devuelve el usuario con el que fué realizada esta conexión.

Returns
el usuario con el que fué realizada esta conexión.
49 { return a_user; }
std::string a_user
Definition: Connection.hpp:130

◆ open()

virtual void anna::dbms::Connection::open ( )
protectedpure virtualnoexcept

Metodo que debemos re-escribir para hacer efectiva esta conexion.

◆ resetRollbackPending()

void anna::dbms::Connection::resetRollbackPending ( )
inline

Desactiva el indicador de que la conexion requiere una invocacion a rollback.

Warning
La invocacion a este metodo debera hacerse con una seccion critica activada sobre la esta conexion.
84 { a_rollbackPending = false; }

◆ rollback()

void anna::dbms::Connection::rollback ( )
protected

Metodo que debemos re-escribir para descartar los cambios realizados sobre las tablas mediante esta conexion.

◆ setMaxCommitPending()

int anna::dbms::Connection::setMaxCommitPending ( const int  maxCommitPending)
inline

Establece el periodo de grabacion de esta conexion. Damos la posibilidad de que la conexion confirme cambios realizados hasta el momento sin que termine la seccion critica que debemos establecer antes de usar la conexion.

Parameters
maxCommitPendingNumero de transacciones que pueden estar pedientes de confirmacion antes de invocar a commit. Un valor 0, desactiva el periodo.
Returns
El periodo de grabacion que habia antes de invocar a este metodo.
Warning
La invocacion a este metodo debera hacerse con una seccion critica activada sobre la esta conexion.
73  {
74  const int result = a_maxCommitPending;
75  a_maxCommitPending = maxCommitPending;
76  return result;
77  }

◆ setPassword()

void anna::dbms::Connection::setPassword ( const char *  password)
inline

Establece el password del usuario de esta conexión

Parameters
passwordCodigo de acceso del usuario.
61 { a_password = password; }
std::string a_password
Definition: Connection.hpp:131

Friends And Related Function Documentation

◆ Database

friend class Database
friend

Member Data Documentation

◆ a_database

Database& anna::dbms::Connection::a_database
protected

Instancia de la base de datos asociada a esta conexion. Coincidiria con la indicada en el constructor.

◆ a_password

std::string anna::dbms::Connection::a_password
protected

Clave de acceso del usuario.

◆ a_user

std::string anna::dbms::Connection::a_user
protected

Nombre del usuario


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