X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbos%2FSetFacade.hpp;fp=include%2Fanna%2Fdbos%2FSetFacade.hpp;h=0000000000000000000000000000000000000000;hb=a3b95648bd76140ef55e0b5941d423eee6c3856f;hp=babadc93d9c259e43e3c39b25e04f687dc372eee;hpb=94fc4366adedbf26ca6ef3104f88d41fa85f5a72;p=anna.git diff --git a/include/anna/dbos/SetFacade.hpp b/include/anna/dbos/SetFacade.hpp deleted file mode 100644 index babadc9..0000000 --- a/include/anna/dbos/SetFacade.hpp +++ /dev/null @@ -1,126 +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_SetFacade_hpp -#define anna_dbos_SetFacade_hpp - -#include - -#include -#include - -namespace anna { - -namespace dbos { - -/** - Clase que facilita el acceso y uso de las clases encargadas de la instanciacion de multiples objetos a partir de los - datos contenidos en un medio fisico, que normalmente seria la tabla de una base de datos. - - Esta nos facilita el manejo de instancias multiples, es decir, para una condicion de carga dada hay varios registros - o elementos del medio fisico que la cumplen. - - La clase \em T debe tener definidos los siquientes metodos: - \li anna::dbos::Object::instantiate: Interpreta la informacin la del medio fisico para adecuarla a - la clase C++. - \li void destroy () throw (): Libera los recursos reservados por este objeto - - \see dbos_declare_set - \see dbos_prepare_set -*/ -template class SetFacade : public ObjectFacade < Set > { -public: - typedef typename Set::iterator iterator; - typedef typename Set::const_iterator const_iterator; - - /** - Devuelve el numero de elementos contenidos en el conjunto recibido como parametro. - Se puede usar sin tener que preocuparse por - el valor de la instancia del conjunto, ya que si este es NULL devolveria 0. - \param t Instancia del conjunto. - \return El numero de elementos que contiene el conjunto. - */ - static int size(Set* t) throw() { return (t == NULL) ? 0 : t->size(); } - - /** - Iterator al primer elemento del conjunto. Se puede usar sin tener que preocuparse por - el valor de la instancia del conjunto, ya que si este es NULL devolveria 0. - \return Un iterador del primer elemento del conjunto. - */ - static iterator begin(Set* t) throw() { - return (t == NULL) ? iterator(0) : t->begin(); - } - - /** - Iterator al ultimo elemento del conjunto. Se puede usar sin tener que preocuparse por - el valor de la instancia del conjunto, ya que si este es NULL devolveria 0. - \return Un iterador del primer elemento del conjunto. - */ - static iterator end(Set* t) throw() { - return (t == NULL) ? iterator(0) : t->end(); - } - - /** - Iterator al primer elemento del conjunto. Se puede usar sin tener que preocuparse por - el valor de la instancia del conjunto, ya que si este es NULL devolveria 0. - \return Un iterador del primer elemento del conjunto. - */ - static const_iterator begin(const Set* t) throw() { - return (t == NULL) ? const_iterator(0) : t->begin(); - } - - /** - Iterator al ultimo elemento del conjunto. Se puede usar sin tener que preocuparse por - el valor de la instancia del conjunto, ya que si este es NULL devolveria 0. - \return Un iterador del primer elemento del conjunto. - */ - static const_iterator end(const Set* t) throw() { - return (t == NULL) ? const_iterator(0) : t->end(); - } - /** - Devuelve el objeto referenciado por el iterator recibido como parametro. - \return El objeto referenciado por el iterator recibido como parametro. - */ - static T* data(iterator ii) throw() { return Set::data(ii); } - - /** - Devuelve el objeto referenciado por el iterator recibido como parametro. - \return El objeto referenciado por el iterator recibido como parametro. - */ - static const T* data(const_iterator ii) throw() { return Set::data(ii); } - -protected: - /** - Contructor. - */ - SetFacade() {} -}; - -/** - Definicion a la que hay que invocar en la implementacion de la clase que hereda - de anna::dbos::SetFacade. - - \param T Nombre de la clase que vamos a tratar en el ambito de C++. -*/ -#define dbos_prepare_set(T) \ - template <> anna::dbos::StorageArea* anna::dbos::ObjectFacade < anna::dbos::Set >::st_storageArea = NULL - -/** - Definicion a la que hay que invocar dentro de la definicion de la clase que hereda - de anna::dbos::SetFacade. - - \param T Nombre de la clase que vamos a tratar en el ambito de C++. -*/ -#define dbos_declare_set(T) \ - friend class anna::Allocator; \ - friend class anna::dbos::Set - -} -} - -#endif