ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
anna::dbos::Repository Class Reference

#include <Repository.hpp>

Inheritance diagram for anna::dbos::Repository:
Inheritance graph
[legend]
Collaboration diagram for anna::dbos::Repository:
Collaboration graph
[legend]

Public Types

typedef std::map< StorageId, StorageArea * > container
 
typedef container::const_iterator const_storage_iterator
 
typedef container::iterator storage_iterator
 

Public Member Functions

 Repository (const char *name)
 
 Repository (const std::string &name)
 
StorageAreacreateStorageArea (const StorageId index, const char *name, const Size maxSize, ObjectAllocator objectAllocator, const int errorCode, const StorageArea::AccessMode::_v aamm=StorageArea::AccessMode::ReadOnly) noexcept(false)
 
StorageAreafindStorageArea (const StorageId index)
 
void clear () noexcept(false)
 
const_storage_iterator storage_begin () const
 
const_storage_iterator storage_end () const
 
xml::NodeasXML (xml::Node *parent) 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
 

Static Public Member Functions

static const StorageAreastorageArea (const_storage_iterator &ii)
 

Protected Member Functions

storage_iterator storage_begin ()
 
storage_iterator storage_end ()
 
- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Static Protected Member Functions

static StorageAreastorageArea (storage_iterator &ii)
 

Detailed Description

Clase que modela la interaccion entre la base y nuestra aplicacion.

Member Typedef Documentation

◆ const_storage_iterator

typedef container::const_iterator anna::dbos::Repository::const_storage_iterator

Iterador para acceder a las areas de almacenamiento de esta base de datos

◆ container

◆ storage_iterator

typedef container::iterator anna::dbos::Repository::storage_iterator

Iterador para acceder a las areas de almacenamiento de esta base de datos

Constructor & Destructor Documentation

◆ Repository() [1/2]

anna::dbos::Repository::Repository ( const char *  name)
explicit

Constructor.

Parameters
nameNombre logico del repositorio de areas de almacenamiento.

◆ Repository() [2/2]

anna::dbos::Repository::Repository ( const std::string &  name)
explicit

Constructor.

Parameters
nameNombre logico del repositorio de areas de almacenamiento.

Member Function Documentation

◆ asXML()

xml::Node* anna::dbos::Repository::asXML ( xml::Node parent) const

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

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

◆ clear()

void anna::dbos::Repository::clear ( )
noexcept

Elimina todos los objetos cargados en las areas de almacenamiento definidas.

◆ createStorageArea()

StorageArea* anna::dbos::Repository::createStorageArea ( const StorageId  index,
const char *  name,
const Size  maxSize,
ObjectAllocator  objectAllocator,
const int  errorCode,
const StorageArea::AccessMode::_v  aamm = StorageArea::AccessMode::ReadOnly 
)
noexcept

Crea una nueva area de almacenamiento para objetos cargados a partir de un medio fisico, normalmente la base de datos.

El tipo de dato de esta nueva area vendria definida implicitamente por el tipo de factoria empleadas para instanciar y/o liberar los objetos y sus respectivos registros.

Parameters
indexClave que seria usada para localizar el area de almacenamiento.
nameNombre logico de la nueva area de almacenamiento.
maxSizeLimita el numero maximo de objetos que pueden estar cargados simultanemante en memoria. Si se alcanza este limite pero no hay ningun objeto susceptible de ser sacado de la memoria de almacenamiento se ampliaria automaticamente la reserva de memoria necesaria para cargar nuevos objetos, en tanto en cuanto no se libere alguno de los objetos cargados. Ver StorageArea::StandardSize.
objectAllocatoractoria de objetos usada para crear las nuevas instancias en este area de almacenamiento.
errorCodeCdigo de error asociado a la excepcin lanzada por el metodo StorageArea::instantiate en caso de que no se encuentre el objeto buscado. Si vale StorageArea::NoExceptionWhenNotFound en caso de no encontrar el objeto no se devolveriaexcepcin y el valor retornado seria NULL.
aammModo de acceso de este area de almacenamiento.
Warning
Las dos actorias deben estar disponibles desde el momento de invocar a este metodo hasta la finalizacin de esta instancia de base de datos.

◆ findStorageArea()

StorageArea* anna::dbos::Repository::findStorageArea ( const StorageId  index)

Devuelve la instancia del area de almacenamiento asociada al indice recibido.

Parameters
indexIndice del area de almacenamiento.
Returns
La instancia del area de almacenamiento asociada al indice recibido. Puede ser NULL si el indice no fue usado para crear un area mediate createStorageArea.

◆ storage_begin() [1/2]

const_storage_iterator anna::dbos::Repository::storage_begin ( ) const
inline

Devuelve un iterator al comienzo de la lista de areas de almacenamiento de esta base de datos.

Returns
Un iterator al comienzo de la lista de areas de almacenamiento de esta base de datos.
102 { return a_storageAreas.begin(); }

◆ storage_begin() [2/2]

storage_iterator anna::dbos::Repository::storage_begin ( )
inlineprotected

Devuelve un iterator al comienzo de la lista de areas de almacenamiento de esta base de datos.

Returns
Un iterator al comienzo de la lista de areas de almacenamiento de esta base de datos.
129 { return a_storageAreas.begin(); }

◆ storage_end() [1/2]

const_storage_iterator anna::dbos::Repository::storage_end ( ) const
inline

Devuelve un iterator al final de la lista de areas de almacenamiento de esta base de datos.

Returns
Un iterator al final de la lista de areas de almacenamiento de esta base de datos.
108 { return a_storageAreas.end(); }

◆ storage_end() [2/2]

storage_iterator anna::dbos::Repository::storage_end ( )
inlineprotected

Devuelve un iterator al final de la lista de areas de almacenamiento de esta base de datos.

Returns
Un iterator al final de la lista de areas de almacenamiento de esta base de datos.
135 { return a_storageAreas.end(); }

◆ storageArea() [1/2]

static const StorageArea* anna::dbos::Repository::storageArea ( const_storage_iterator ii)
inlinestatic

Devuelve el objeto sobre el que esta posicionado el iterator recibido como parametro.

Parameters
iiIterator que deberia estar comprendido entre #const_storage_begin y #const_storage_end.
Returns
El objeto sobre el que esta posicionado el iterator recibido como parametro.
115 { return ii->second; }

◆ storageArea() [2/2]

static StorageArea* anna::dbos::Repository::storageArea ( storage_iterator ii)
inlinestaticprotected

Devuelve el objeto sobre el que esta posicionado el iterator recibido como parametro.

Parameters
iiIterator que deberia estar comprendido entre #const_storage_begin y #const_storage_end.
Returns
El objeto sobre el que esta posicionado el iterator recibido como parametro.
142 { return ii->second; }

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