-// ANNA - Anna is Not Nothingness Anymore
-//
-// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
-//
-// https://bitbucket.org/testillano/anna
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Authors: eduardo.ramos.testillano@gmail.com
-// cisco.tierra@gmail.com
+// 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_comm_Delivery_hpp
Devuelve el nombre del reparto. Coincide con el indicado en el constructor.
\return el nombre del reparto. Coincide con el indicado en el constructor.
*/
- const std::string& getName() const throw() { return a_name; }
+ const std::string& getName() const { return a_name; }
/**
Inicializa el reparto de recursos.
*/
- void initialize() throw(RuntimeException);
+ void initialize() noexcept(false);
/**
Devuelve el estado anterior que tenia esta instancia. El resultado de #isAvailable
actual de los procesos asociados a este servicio, mientras que este metodo devuelve
el estado en el que estaban la ultima vez que se hizo una comprobacion.
*/
- bool wasAvailable() const throw() { return a_isAvailable; }
+ bool wasAvailable() const { return a_isAvailable; }
/*
* Obtiene el periodo de comprobacion de recuperacion de los recusos que han sido
*
* \return El periodo de comprobacion de recuperacion
*/
- const Millisecond &getRecoveryTime() const throw() { return a_recoveryTime; }
+ const Millisecond &getRecoveryTime() const { return a_recoveryTime; }
/**
* Establece el periodo de comprobacion de recuperacion de los recusos que han sido
*
* \param recoveryTime Periodo de comprobacion de recuperacion.
*/
- void setRecoveryTime(const Millisecond &recoveryTime) throw() { a_recoveryTime = recoveryTime; }
+ void setRecoveryTime(const Millisecond &recoveryTime) { a_recoveryTime = recoveryTime; }
/**
Comprueba la lista de recursos remotos para comprobar si hay alguno que este disponible
\return \em true si tiene algun recurso remoto utilizado o \em false en otro caso.
*/
- virtual bool isAvailable() const throw();
+ virtual bool isAvailable() const ;
/**
Devuelve la instancia del recurso remoto que debemos usar en esta ocasion.
@return La instancia del recurso remoto que debemos usar en esta ocasion.
\warning Antes de invocar a este método la instancia se debe proteger de accesos concurrentes
*/
- Resource* apply() throw(RuntimeException);
+ Resource* apply() noexcept(false);
/**
Este metodo sirve a nuestra aplicacion para notificar que el recurso ha dejado de
\return \em true si ninguno de los recursos asociados a este reparto de carga estan disponibles o \em false en otro caso.
\warning Antes de invocar a este método la instancia se debe proteger de accesos concurrentes
*/
- bool fault(const Resource* resource) throw();
+ bool fault(const Resource* resource) ;
/**
Este metodo sirve a nuestra aplicacion para que el recurso vuelve a estar disponible.
\return \em true si alguno de los recursos asociados a este reparto de carga pasa a estar disponible o \em false en otro caso.
\warning Antes de invocar a este método la instancia se debe proteger de accesos concurrentes
*/
- bool recover(const Resource* resource) throw();
+ bool recover(const Resource* resource) ;
/**
Indica si reparto contiene la referencia a un determinado recurso.
\return \em true si contiene la referencia al recurso recibido como parametro o \em false
en otro caso.
*/
- bool contains(const Resource* resource) const throw();
+ bool contains(const Resource* resource) const ;
/**
Devuelve un iterador al comienzo de la lista de recursos remotos asociados a este reparto.
\return Un iterador al comienzo de la lista de recursos remotos asociados a este reparto.
*/
- iterator begin() throw() { return a_resources.begin(); }
+ iterator begin() { return a_resources.begin(); }
/**
Devuelve un iterador al comienzo de la lista de recursos remotos asociados a este reparto.
\return Un iterador al comienzo de la lista de recursos remotos asociados a este reparto.
*/
- const_iterator begin() const throw() { return a_resources.begin(); }
+ const_iterator begin() const { return a_resources.begin(); }
/**
Devuelve un iterador al final de la lista de recursos remotos asociados a este reparto.
\return Un iterador al final de la lista de recursos remotos asociados a este reparto.
*/
- iterator end() throw() { return a_resources.end(); }
+ iterator end() { return a_resources.end(); }
/**
Devuelve el numero de recursos asociados a la lista.
\return El numero de recursos asociados a la lista.
*/
- int size() const throw() { return a_resources.size(); }
+ int size() const { return a_resources.size(); }
/**
Devuelve un iterador al final de la lista de recursos remotos asociados a este reparto.
\return Un iterador al final de la lista de recursos remotos asociados a este reparto.
*/
- const_iterator end() const throw() { return a_resources.end(); }
+ const_iterator end() const { return a_resources.end(); }
/**
Devuelve una cadena con la informacion referente a este objeto.
@return Una cadena con la informacion referente a este objeto.
*/
- virtual std::string asString() const throw();
+ virtual std::string asString() const ;
/**
Devuelve un nodo XML con la informacion referente a este objeto.
\param parent Nodo XML a partir del cual introducir la informacion.
\return Un nodo XML con la informacion referente a este objeto.
*/
- virtual xml::Node* asXML(xml::Node* parent) const throw();
+ virtual xml::Node* asXML(xml::Node* parent) const ;
/**
Devuelve el recurso remoto apuntado por el iterador recibido como parametro.
\param ii Iterador usado para recorrer los recursos asociados a este reparto.
\return El recurso remoto apuntado por el iterador recibido como parametro.
*/
- static Resource* resource(iterator& ii) throw() { return *ii; }
+ static Resource* resource(iterator& ii) { return *ii; }
/**
Devuelve el recurso remoto apuntado por el iterador recibido como parametro.
\param ii Iterador usado para recorrer los recursos asociados a este reparto.
\return El recurso remoto apuntado por el iterador recibido como parametro.
*/
- static const Resource* resource(const_iterator& ii) throw() { return *ii; }
+ static const Resource* resource(const_iterator& ii) { return *ii; }
protected:
/**
Conecta el recurso remoto recibido como parametro con este reparto.
@param resource Instancia del recurso que vamos a registrar en este reparto.
*/
- void add(Resource* resource) throw(RuntimeException);
+ void add(Resource* resource) noexcept(false);
/**
Inicializa el reparto de recursos.
*/
- virtual void do_initialize() throw(RuntimeException) = 0;
+ virtual void do_initialize() noexcept(false) = 0;
/**
Devuelve la instancia del recurso remoto que debemos que debemos usar en esta ocasion.
@return La instancia del recurso remoto que debemos usar en esta ocasion.
*/
- virtual Resource* do_apply() throw(RuntimeException) = 0;
+ virtual Resource* do_apply() noexcept(false) = 0;
/**
Este metodo sirve a nuestra aplicacion para indicar que no fue posible usar el
\param resource Recurso remoto que ha ocasionado el error.
\return \em true si ninguno de los recursos asociados a este reparto de carga estan disponibles o \em false en otro caso.
*/
- virtual bool do_fault(const Resource* resource) throw();
+ virtual bool do_fault(const Resource* resource) ;
/**
Este metodo sirve a nuestra aplicacion para indicar que ha recuperado la conexion
con el recurso.
\param resource Recurso remoto con el que ha recuperado la conexion.
*/
- virtual bool do_recover(const Resource* resource) throw();
+ virtual bool do_recover(const Resource* resource) ;
/**
Este metodo sirve a nuestra aplicacion para indicar que ha recuperado la conexion
con el recurso.
\param resource Recurso remoto con el que ha recuperado la conexion.
*/
- virtual bool do_contains(const Resource* resource) const throw();
+ virtual bool do_contains(const Resource* resource) const ;
private:
std::string a_name;
Resources a_resources;
bool a_isAvailable;
- Millisecond a_timeStamp;
Millisecond a_recoveryTime;
+ Millisecond a_timeStamp;
- bool unsafe_recover(const Resource* resource) throw();
+ bool unsafe_recover(const Resource* resource) ;
- static bool internalErrorDetected(const Resource* resource) throw();
+ static bool internalErrorDetected(const Resource* resource) ;
};
}