Remove operation help.
[anna.git] / include / anna / dbos / Eraser.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
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 //
7
8
9 #ifndef anna_dbos_Eraser_hpp
10 #define anna_dbos_Eraser_hpp
11
12 #include <anna/dbos/Accesor.hpp>
13
14 namespace anna {
15
16 namespace dbos {
17
18 class Object;
19
20 /**
21    Interfaz que deben cumplir los objetos encargados de borrar el objeto del medio fisico,
22    que normalmente sera alguna base de datos.
23 */
24 class Eraser : public Accesor {
25 public:
26   /**
27      Devuelve la instancia establecida por #setObject.
28      \return La instancia establecida por #setObject. Puede ser NULL.
29   */
30   Object* getObject() throw() { return a_object; }
31
32   /**
33      Establece la instancia del objeto sobre el que vamos a actuar.
34      \param object Instancia del objeto sobre el que vamos a actuar.
35   */
36   void setObject(Object* object) throw() { a_object = object; }
37
38   /**
39      Metodo de debemos re-escribir para devolver el nombre completo del selector de recursos.
40      Para evitar ambigüedades este nombre deberia incluir la lista completa de \em namespaces
41      a la que pertenece la clase.
42      \return Una cadena con el nombre de este selector.
43   */
44   virtual const char* getClassName() const throw() { return "anna::dbos::Eraser"; }
45
46 protected:
47   /**
48      Constructor.
49      \param database Base de datos asociada a este cargador y que deberia servir para
50      obtener los datos de un objeto. Debe tener la misma disponibilidad que este cargador.
51      \param id Identificador de este accesor.
52   */
53   Eraser(dbms::Database& database, const Id id = 0) :
54     Accesor(database, id),
55     a_object(NULL)
56   {;}
57
58 private:
59   Object* a_object;
60
61   Index getIndex() const throw() { return 0; }   // No se usa
62 };
63
64 }
65 }
66
67 #endif
68
69
70