X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms%2FDelivery.hpp;fp=include%2Fanna%2Fdbms%2FDelivery.hpp;h=0000000000000000000000000000000000000000;hb=851ff2962362fd5bad874e8ed91445b296eaca24;hp=6cd4603b4f3ce78c4c4eaf4d1c6f8d1c3815c1e5;hpb=78be86969d2f26a9084b0c4af6ce43d5fa4ed3fd;p=anna.git diff --git a/include/anna/dbms/Delivery.hpp b/include/anna/dbms/Delivery.hpp deleted file mode 100644 index 6cd4603..0000000 --- a/include/anna/dbms/Delivery.hpp +++ /dev/null @@ -1,79 +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_dbms_Delivery_hpp -#define anna_dbms_Delivery_hpp - -#include - -namespace anna { - -namespace dbms { - -class Connection; - -/** - Agrupacion logica de conexiones con la base de datos. Reparte la carga de las transacciones contra - la base de datos entre las distintas conexiones que contenga esta instancia. Ademas en caso de estar - en una ejecucion con soporte para multithread (ver anna::functions::supportMultithread) asegura - que cada uno de los threads siempre utiliza la misma conexion lo cual asegura el mantinimiento de la - integridad de cada una de las transacciones de los threads. -*/ -class Delivery : comm::Delivery { -public: - /** - Constructor. - @param name Nombre logico de este grupo de conexiones. - */ - Delivery(const char *name) : comm::Delivery(name) {;} - - /** - Crea automaticamente las conexiones a la base de datos recibida como parametro con el usuario/password - indicado. - \param database Instancia de la base de datos contra la que realizamos la conexion. - \param prefixName Prefijo del nombre logico de la conexiones que vamos a crear. El resto del nombre vendra - dado por el numero secuencial de la conexion. - \param user Nombre del usuario con el que realizamos la conexion. - \param password Codigo de acceso del usuario. - \param n Numero de conexion a crear. - \warning Recordar que el numero maximo de conexiones a una base de datos esta limitado por Database::maxConnection. - */ - void createConnections(Database& database, const char* prefixName, const char* user, const char* password, const int n) - throw(RuntimeException, DatabaseException); - - /** - Incorpora al conexion recibida como parametro a la agrupacion logica. - \param connection Conexion que vamos a incorporar a la agrupacion logica. - */ - void addConnection(Connection* connection) throw(RuntimeException) { - this->add(connection); - a_iiConnection = this->begin(); - } - - /** - Devuelve la instancia de la conexion a base de datos con la que debemos trabajar. - @return la instancia de la conexion a base de datos con la que debemos trabajar. - \warning La conexion debe ser bloqueada por el Thread que la recibe (ver anna::Guard) para asegurar que - cualquier otro thread que intente acceder a ella queda bloqueado a la espera de que terminemos de - trabajar sobre ella. - */ - Connection& getConnection() throw(RuntimeException); - -private: - iterator a_iiConnection; - - void do_initialize() throw() { a_iiConnection = begin(); } - comm::Resource* do_apply() throw(RuntimeException); - static Connection* connection(iterator& ii) { return (Connection*) comm::Delivery::resource(ii); } - -}; - -} -} - -#endif