1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_dbos_Creator_hpp
10 #define anna_dbos_Creator_hpp
12 #include <anna/dbos/Accesor.hpp>
19 Interfaz que deben cumplir los objetos encargados de crear un nuevo objeto que sera ubicado
20 en el area de almacenamiento asociado a un medio fisico.
22 class Creator : public Accesor {
25 Metodo de debemos re-escribir para devolver el nombre completo del selector de recursos.
26 Para evitar ambigüedades este nombre deberia incluir la lista completa de \em namespaces
27 a la que pertenece la clase.
28 \return Una cadena con el nombre de este selector.
30 virtual const char* getClassName() const throw() { return "anna::dbos::Creator"; }
35 \param database Base de datos asociada a este cargador y que deberia servir para
36 obtener los datos de un objeto. Debe tener la misma disponibilidad que este cargador.
37 \param id Identificador de este accesor.
39 Creator(dbms::Database& database, const Id id = 0) : Accesor(database, id) {;}
43 \param id Identificador de este accesor.
45 Creator(const Id id = 0) : Accesor(id) {;}
48 Devuelve el indice usado para ubicar en memoria el objeto que vamos a cargar.
49 @return El indice usado para ubicar en memoria el objeto que vamos a cargar.
51 virtual Index getIndex() const throw(RuntimeException) = 0;
54 dbms::Statement* initialize(dbms::Database&) throw(RuntimeException) { return NULL;}
56 friend class StorageArea;