X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbos%2FCrossedLoader.hpp;fp=include%2Fanna%2Fdbos%2FCrossedLoader.hpp;h=0000000000000000000000000000000000000000;hb=851ff2962362fd5bad874e8ed91445b296eaca24;hp=c1516ec8cadb2966259d7944e26507d458b34b48;hpb=78be86969d2f26a9084b0c4af6ce43d5fa4ed3fd;p=anna.git diff --git a/include/anna/dbos/CrossedLoader.hpp b/include/anna/dbos/CrossedLoader.hpp deleted file mode 100644 index c1516ec..0000000 --- a/include/anna/dbos/CrossedLoader.hpp +++ /dev/null @@ -1,97 +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_CrossedLoader_hpp -#define anna_dbos_CrossedLoader_hpp - -#include - -namespace anna { - -namespace dbms { -class Database; -} - -namespace dbos { - -class Loader; - -/** - * Interfaz que deben cumplir los cargadores cruzados. Un cargador cruzado facilita que una - * misma clase pueda ser cargada usando varios criterios de búsqueda. - * - * El criterio de búsqueda más usado y que debería ser más óptimo será desarrollado - * mediante la definición del anna::dbos::Loader específico. El resto de criterios de búsqueda, - * los cargadores cruzados, deberían ser capaces obtener los datos usados como clave en el criterio - * principal, para a partir de ahí poder aplicar el criterio de búsqueda principal. - * - * Cada cargador cruzado podría tener una lista de pares (clave_alternativa, clave_principal) que permitirá - * acelerar las búsquedas de la clave principal, en base a la clave alternativa usada en este cargador. - * - * Para obtener los datos de la clave principal en base a los datos de la clave alternativa habrá que - * acceder al medio físico. - * - * Para optimizar el acceso a los pares (Clave alternativa, Clave Principal) se podría usar una - * instancia del tipo anna::LRUMap. -*/ -class CrossedLoader : public Accesor { -public: - /** - Metodo de debemos re-escribir para devolver el nombre completo del selector de recursos. - Para evitar ambigüedades este nombre deberia incluir la lista completa de \em namespaces - a la que pertenece la clase. - \return Una cadena con el nombre de este selector. - */ - virtual const char* getClassName() const throw() { return "anna::dbos::CrossedLoader"; } - -protected: - /** - Constructor. - \param database Base de datos asociada a este cargador y que deberia servir para - obtener los datos de un objeto. Debe tener la misma disponibilidad que este cargador. - \param id Identificador de este accesor. - */ - CrossedLoader(dbms::Database& database, const Id id = 0) : Accesor(database, id) {;} - - /** - Constructor. - \param database Base de datos asociada a este cargador y que deberia servir para - obtener los datos de un objeto. Debe tener la misma disponibilidad que este cargador. - \param id Identificador de este accesor. - \param emode Modo de actuar en caso de no encontrar el dato buscado. - */ - CrossedLoader(dbms::Database& database, const Id id, const Exception::Mode::_v emode) : Accesor(database, id, emode) {;} - - /** - Este método debe ser reescrito para que permita localizar la información del objeto, que posiblemente - esté ubicado en la lista de objetos de este cargador cruzado. - - @return \em true si se ha localizado la información la clave primaria del objeto en su lista de pares - o \em false en otro caso. - */ - virtual bool seek() const throw() { return false; } - - /** - * Este método debe ser reescrito para que se pueda actualizar la lista de pares (clave_alternativa, clave_principal) - * que permitirá acelear las posteriores búsquedas. - * - * \param loader Instancia del cargador principal que habrá compuesto la clave principal con los suministrados por - * esta instancia. - */ - virtual void download(Loader& loader) throw() {;} - - friend class StorageArea; -}; - -} -} - -#endif - - -