X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbos%2FObject.hpp;fp=include%2Fanna%2Fdbos%2FObject.hpp;h=0000000000000000000000000000000000000000;hb=851ff2962362fd5bad874e8ed91445b296eaca24;hp=fc4e38c5846f659029b36300d3ecc6eb8613eb52;hpb=78be86969d2f26a9084b0c4af6ce43d5fa4ed3fd;p=anna.git diff --git a/include/anna/dbos/Object.hpp b/include/anna/dbos/Object.hpp deleted file mode 100644 index fc4e38c..0000000 --- a/include/anna/dbos/Object.hpp +++ /dev/null @@ -1,112 +0,0 @@ -// ANNA - Anna is Not Nothingness Anymore // -// // -// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // -// // -// See project site at http://redmine.teslayout.com/projects/anna-suite // -// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // - - -#ifndef anna_dbos_Object_hpp -#define anna_dbos_Object_hpp - -#include - -#include - -#include - -namespace anna { - -namespace dbos { - -class Creator; - -/** - Interfaz que deben cumplir los objetos persistentes. - - Ejemplo de definicion de una clase usando esta interfaz: - - \include dbos_demo.p/oodb.d/hdrs/dbos_demo.oodb.Table01.h - - Ejemplo de implementacion de la clase correspondiente a la definicion: - - \include dbos_demo.p/oodb.d/oodb.Table01.cc -*/ -class Object { -public: - /** - Devuelve el indice asociado a este objeto - \return el indice asociado a este objeto - */ - Index getIndex() const throw() { return a_index; } - - /** - * Devuelve \em true si este objeto ya existe en el medio físico (fué cargado desde allí o fue creado y grabado posteriormente) o - * \em false si este objeto sólo existe en la memoria intermedia. - * \return \em true si este objeto ya existe en el medio físico (fué cargado desde allí o fue creado y grabado posteriormente) o - * \em false si este objeto sólo existe en la memoria intermedia. - */ - bool isStored() const throw() { return a_isStored; } - -protected: - /** - Constructor. - */ - Object() : a_index(0), a_isStored(false) {;} - - /** - Inicializa este objeto con la informacion obtenida desde el medio fisico donde - esta grabado el objeto. Normalmente este medio fisico correspondera con una base de datos. - - \param loader Cargador que contiene la informacion con la que debemos inicializar este objeto. - - */ - virtual void initialize(Loader& loader) throw(RuntimeException, dbms::DatabaseException) = 0; - - /** - Actualiza la informacion de este objeto con la nueva informacion obtenida del medio - fisico. - \param creator Creador que contiene la informacion con la que debemos inicializar este objeto. - */ - virtual void create(Creator& creator) throw(RuntimeException, dbms::DatabaseException) {;} - - /** - Libera los recursos reservados por este objeto. Este metodo solo se invocara cuando el objeto - vaya a ser sacado definitivamente del area de almacenamiento. - */ - virtual void destroy() throw() {;} - - /** - Devuelve \em true si el registro del medio fisico ha cambiado respecto al registro - cargado en memoria o \em false en otro caso. - - \param loader Cargador que contiene la informacion con la que deberiamos re-inicializar - este objeto. - - \return \em true si el registro del medio fisico ha cambiado respecto al registro - cargado en memoria o \em false en otro caso. - */ - virtual bool hasChanges(Loader& loader) throw(RuntimeException, dbms::DatabaseException) { - return true; - } - - /** - Devuelve \em true si el objeto requiere comenzar el proceso de comprobacion de recarga - de datos \em false en otro caso. - */ - virtual bool enableUpdate() const throw() { return true; } - -private: - Index a_index; - bool a_isStored; - - void setIndex(const Index index) throw() { a_index = index; } - - friend class StorageArea; -}; - - -} -} - -#endif