\param v Codigo a traducir a literal.
\return el literal correspondiente al codigo recibido.
*/
- static const char* asString(const _v v) throw();
+ static const char* asString(const _v v) ;
};
/**
* Devuelve el código de error asociado a la excepción cuando no se encuentra un registro buscado.
* \return el código de error asociado a la excepción cuando no se encuentra un registro buscado.
*/
- int getErrorCode() const throw() { return a_errorCode; }
+ int getErrorCode() const { return a_errorCode; }
/*
* Devuelve el nombre de la este área de almacenamiento.
* \return el nombre de la este área de almacenamiento.
*/
- const std::string& getName() const throw() { return a_name; }
+ const std::string& getName() const { return a_name; }
/**
Carga la informacion de un objeto contenida en un medio fisico y la interpreta para adecuarla a
\warning Cada llamada a este método deberia tener su correspondiente liberacion invocando a #release
cuando dejemos de usar la instancia.
*/
- Object* instance(dbms::Connection& connection, Loader& loader) throw(RuntimeException, dbms::DatabaseException) {
+ Object* instance(dbms::Connection& connection, Loader& loader) noexcept(false) {
return instance(&connection, loader);
}
\warning Cada llamada a este método deberia tener su correspondiente liberacion invocando a #release
cuando dejemos de usar la instancia.
*/
- Object* instance(dbms::Connection* connection, Loader& loader) throw(RuntimeException, dbms::DatabaseException);
+ Object* instance(dbms::Connection* connection, Loader& loader) noexcept(false);
/**
Carga la informacion de un objeto contenida en un medio fisico y la interpreta para adecuarla a
cuando dejemos de usar la instancia.
*/
Object* instance(dbms::Connection& connection, CrossedLoader& crossedLoader, Loader& loader)
- throw(RuntimeException, dbms::DatabaseException) {
+ noexcept(false) {
return instance(&connection, crossedLoader, loader);
}
cuando dejemos de usar la instancia.
*/
Object* instance(dbms::Connection* connection, CrossedLoader& crossedLoader, Loader& loader)
- throw(RuntimeException, dbms::DatabaseException);
+ noexcept(false);
/**
Carga la informacion de un objeto contenida en un medio fisico y la interpreta para adecuarla a
\warning Para usar este método se requiere haber re-escrito el método virtual Loader::load para que no intente
obtener los datos desde la base de datos.
*/
- Object* instance(Loader& loader) throw(RuntimeException, dbms::DatabaseException) {
+ Object* instance(Loader& loader) noexcept(false) {
return instance(NULL, loader);
}
cuando dejemos de usar la instancia.
\li No puede usarse en las áreas de almacenamiento definidas como AccessMode::ReadOnly.
*/
- Object* create(dbms::Connection& connection, Creator& creator) throw(RuntimeException, dbms::DatabaseException) {
+ Object* create(dbms::Connection& connection, Creator& creator) noexcept(false) {
return create(&connection, creator);
}
cuando dejemos de usar la instancia.
\li No puede usarse en las áreas de almacenamiento definidas como AccessMode::ReadOnly.
*/
- Object* create(dbms::Connection* connection, Creator& creator) throw(RuntimeException, dbms::DatabaseException);
+ Object* create(dbms::Connection* connection, Creator& creator) noexcept(false);
/**
Crea un objeto en el área de almacenamiento y lo prepara para ser transferido al medio fisico
cuando dejemos de usar la instancia.
\li No puede usarse en las áreas de almacenamiento definidas como AccessMode::ReadOnly.
*/
- Object* create(Creator& creator) throw(RuntimeException, dbms::DatabaseException) { return create(NULL, creator); }
+ Object* create(Creator& creator) noexcept(false) { return create(NULL, creator); }
/**
Devuelve la informacion de un objeto cargado desde el medio fisico.
\warning Cada llamada a este método deberia tener su correspondiente liberacion invocando a #release
cuando dejemos de usar la instancia.
*/
- Object* find(Loader& loader) throw(RuntimeException);
+ Object* find(Loader& loader) noexcept(false);
/**
Devuelve de una copia del objeto recibido como parámetro e incrementa la cuenta de utilizacion
\warning Cada llamada a este método deberia tener su correspondiente liberacion invocando a #release
cuando dejemos de usar la instancia.
*/
- Object* duplicate(const Object* object) throw(RuntimeException);
+ Object* duplicate(const Object* object) noexcept(false);
/**
Permite conocer si un determinado objeto esta alojado en el área de almacenamiento. No
\return \em true Si el objeto identificado por el Loader esta en el área de almacenamiento o
\em false en otro caso.
*/
- bool isLoaded(const Loader& loader) throw(RuntimeException);
+ bool isLoaded(const Loader& loader) noexcept(false);
/**
Transfiere la informacion del objeto recibido como parámetro al medio fisico usando el Recorder
\param connection Conexion usada si fuera necesario acceder al medio fisico.
\param recorder Grabador usado para transferir los datos al medio fisico.
*/
- void apply(dbms::Connection& connection, Recorder& recorder) throw(RuntimeException, dbms::DatabaseException);
+ void apply(dbms::Connection& connection, Recorder& recorder) noexcept(false);
/**
Elimina la informacion del objeto recibido como parámetro del medio fisico usando el Eraser
\warning Si la cuenta de utilizacion del objeto es 1 se liberaría en otro caso se devolvería una excepción.
*/
- void apply(dbms::Connection& connection, Eraser& eraser) throw(RuntimeException, dbms::DatabaseException);
+ void apply(dbms::Connection& connection, Eraser& eraser) noexcept(false);
/**
Habilita la reutilizacion del espacio de memoria ocupado por un objeto instanciado mediate #instance.
\warning Si el objeto recibido como parámetro no fue reservado mediate #instance no tiene
ningun efecto.
*/
- void release(Object** object) throw(RuntimeException);
+ void release(Object** object) noexcept(false);
/**
Elimina toda la informacion referente al objeto recibido como parámetro, siempre y cuando
ningun efecto.
\li La instancia a liberar solo puede tener 1 en su cuenta de utilizacion.
*/
- void erase(Object** object) throw(RuntimeException);
+ void erase(Object** object) noexcept(false);
/**
Marca el objeto recibido como pendiente de recarga de datos.
ningun efecto.
\li La instancia a marcar solo deberia tener una unica instancia en uso.
*/
- void dirty(Object* object) throw(RuntimeException);
+ void dirty(Object* object) noexcept(false);
/**
Establece el tamanho de las instancias de los objetos contenidos en este área de almacenamiento.
\param _sizeof Numero de bytes ocupado por cada una de las instancias.
*/
- void setSizeof(const Size _sizeof) throw() { a_sizeof = _sizeof + sizeof(Instance); }
+ void setSizeof(const Size _sizeof) { a_sizeof = _sizeof + sizeof(Instance); }
/**
Devuelve el numero maximo de bytes teorico que puede llegar a reservar este área de almacenamiento.
\return el numero maximo de bytes teorico que puede llegar a reservar este área de almacenamiento.
*/
- Size getMaxSizeOf() const throw() { return a_maxSize * a_sizeof; }
+ Size getMaxSizeOf() const { return a_maxSize * a_sizeof; }
/**
Devuelve el numero de bytes teorico que puede llegar a reservar este área de almacenamiento.
\return el numero de bytes teorico que puede llegar a reservar este área de almacenamiento.
*/
- Size getSizeOf() const throw() { return a_directory.size() * a_sizeof; }
+ Size getSizeOf() const { return a_directory.size() * a_sizeof; }
/**
Devuelve un iterator al primero de los objetos contenido en el área del almacenamiento.
\return Un iterator al primero de los objetos contenido en el área del almacenamiento.
*/
- iterator begin() throw() { return a_directory.begin(); }
+ iterator begin() { return a_directory.begin(); }
/**
Devuelve un iterator al primero de los objetos contenido en el área del almacenamiento.
\return Un iterator al primero de los objetos contenido en el área del almacenamiento.
*/
- const_iterator begin() const throw() { return a_directory.begin(); }
+ const_iterator begin() const { return a_directory.begin(); }
/**
Devuelve un iterator al fin de los objetos contenidos en el área del almacenamiento.
\return Un iterator al fin de los objetos contenidos en el área del almacenamiento.
*/
- iterator end() throw() { return a_directory.end(); }
+ iterator end() { return a_directory.end(); }
/**
Devuelve un iterator al fin de los objetos contenidos en el área del almacenamiento.
\return Un iterator al fin de los objetos contenidos en el área del almacenamiento.
*/
- const_iterator end() const throw() { return a_directory.end(); }
+ const_iterator end() const { return a_directory.end(); }
/**
Devuelve el puntero sobre el que esta posicionado el iterador recibido como parámetro.
\return El puntero sobre el que esta posicionado el iterador recibido como parámetro.
*/
- static Object* data(iterator ii) throw() { return ii->second->object; }
+ static Object* data(iterator ii) { return ii->second->object; }
/**
Devuelve el puntero sobre el que esta posicionado el iterador recibido como parámetro.
\return El puntero sobre el que esta posicionado el iterador recibido como parámetro.
*/
- static const Object* data(const_iterator ii) throw() { return ii->second->object; }
+ static const Object* data(const_iterator ii) { return ii->second->object; }
/**
Devuelve una cadena con la informacion referente a este área de almacenamiento.
\return Una cadena con la informacion referente a este área de almacenamiento.
*/
- std::string asString() const throw();
+ std::string asString() const ;
/**
Devuelve un documento XML con la informacion referente a esta instancia.
\param parent Nodo XML del que dependende la informacion.
@return un documento XML con la informacion referente a esta instancia.
*/
- xml::Node* asXML(xml::Node* parent) const throw();
+ xml::Node* asXML(xml::Node* parent) const ;
protected:
/**
Descarga del área de almacenamiento todos los objetos que estuviera cargados.
Este método se invoca desde anna::dbos::Repository::clear
*/
- void clear() throw(RuntimeException);
+ void clear() noexcept(false);
/**
Devuelve un literal con el entero recibido tratado como una cantidad en bytes.
\return un literal con el entero recibido tratado como un cantidad en bytes
*/
- static std::string asMemorySize(const Size size) throw();
+ static std::string asMemorySize(const Size size) ;
private:
typedef std::map <Index, Instance*>::value_type value_type;
Holes() : a_size(0) {;}
- bool insert(Instance* instance, const Mode::_v mode) throw();
- void erase(Instance* instance) throw();
- Instance* front() throw() { return a_holes.front(); }
- int size() const throw() { return a_size; }
- int empty() const throw() { return a_holes.empty(); }
- void pop_front() throw() { a_holes.pop_front(); a_size --; }
- void clear() throw() { a_holes.clear(); a_size = 0; }
+ bool insert(Instance* instance, const Mode::_v mode) ;
+ void erase(Instance* instance) ;
+ Instance* front() { return a_holes.front(); }
+ int size() const { return a_size; }
+ int empty() const { return a_holes.empty(); }
+ void pop_front() { a_holes.pop_front(); a_size --; }
+ void clear() { a_holes.clear(); a_size = 0; }
private:
hole_container a_holes;
class Block {
public:
Block(ObjectAllocator objectAllocator, const Size maxSize);
- Instance* getInstance() throw() { return (a_size < a_maxSize) ? &a_instances [a_size ++] : NULL; }
- void reset() throw() { a_size = 0; }
+ Instance* getInstance() { return (a_size < a_maxSize) ? &a_instances [a_size ++] : NULL; }
+ void reset() { a_size = 0; }
private:
Instance* a_instances;
typedef inprogress_container::iterator inprogress_iterator;
inprogress_container a_inprogress;
- inprogress_iterator inprogress_begin () const throw () { return a_inprogress.begin (); }
- inprogress_iterator inprogress_end () const throw () { return a_inprogress.end (); }
- static DBIndex index (inprogress_iterator ii) throw () { return *ii; }
- bool isInProgress (const DBIndex index) const throw ();
+ inprogress_iterator inprogress_begin () const { return a_inprogress.begin (); }
+ inprogress_iterator inprogress_end () const { return a_inprogress.end (); }
+ static DBIndex index (inprogress_iterator ii) { return *ii; }
+ bool isInProgress (const DBIndex index) const ;
*/
/*
StorageArea(const char* name, const Size maxSize, ObjectAllocator, const AccessMode::_v, const int errorCode);
StorageArea(const StorageArea&);
- Object* reload(dbms::Connection*, Loader&, Instance*) throw(RuntimeException, dbms::DatabaseException);
- void checkIncoherence(Instance*) throw();
- bool quickReusing(Instance*) throw();
- void verifyStatus(StorageArea::Instance*, const bool ignoreDirty = false) throw(RuntimeException);
- Instance* allocate() throw();
- Instance* reuse() throw();
+ Object* reload(dbms::Connection*, Loader&, Instance*) noexcept(false);
+ void checkIncoherence(Instance*) ;
+ bool quickReusing(Instance*) ;
+ void verifyStatus(StorageArea::Instance*, const bool ignoreDirty = false) noexcept(false);
+ Instance* allocate() ;
+ Instance* reuse() ;
- static Instance* instance(iterator& ii) throw() { return ii->second; }
- static std::string asString(const Instance*) throw();
+ static Instance* instance(iterator& ii) { return ii->second; }
+ static std::string asString(const Instance*) ;
friend class Repository;
};