X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fcomm%2FReceiverFactory.hpp;h=db883fc88605bf71ce42602e97084538c6a02471;hb=e80e62a5cf9aacad1a9551c68c432147ef98cd29;hp=19578e501b57fd3e5730c192087129a8962636f8;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git diff --git a/include/anna/comm/ReceiverFactory.hpp b/include/anna/comm/ReceiverFactory.hpp index 19578e5..db883fc 100644 --- a/include/anna/comm/ReceiverFactory.hpp +++ b/include/anna/comm/ReceiverFactory.hpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not 'N' 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_ReceiverFactory_hpp @@ -52,10 +24,9 @@ namespace comm { class Receiver; /** - Interfaz que deben cumplir las factorias de receptores. + Interface for receivers factories. - Es muy aconsejable que la implementacion particular de esta clase que use nuestra - aplicacion este basada en el uso de #Recycler. Como muestra el siguiente ejemplo: + Is recommended (performance issues) to use #Recycler as in the following example: \code @@ -74,8 +45,7 @@ class Receiver; \endcode - En la mayoria de los casos seria aconsejable usar un instancia de comm::ReceiverFactoryImpl - instanciado con el tipo de receptor usado por nuestra aplicacion. + In most of cases, is recommended to use an comm::ReceiverFactoryImpl instance with the receiver type used in our application. \see Receiver \see ReceiverFactoryImpl @@ -83,32 +53,30 @@ class Receiver; class ReceiverFactory : public Mutex { public: /** - Devuelve el nombre logico de este gestor de receptores. - \return el nombre logico de este gestor de receptores. + Returns the logical name for this receiver factory. + @return logical name for this receiver factory. */ const std::string& getName() const throw() { return a_name; } /** - Crea una instancia del receptor asociado a esta factoria, realiza las comprobaciones - necesarias para optimizar el reuso de instancias de la clase Receiver. + Creates a receiver instance for this factory. Reuse resources when needed. - \return La instancia de un nuevo receiver. - \warning Cada uno de los receptores obtenidos debera ser liberado invocando a #release. + \return The new receiver instance. + \warning All the receivers obtained shall be released by mean #release. */ Receiver* create() throw(RuntimeException); /** - Libera la instancia del receptor recibido como parametro. Realiza las comprobaciones - necesarias para optimizar el reuso de instancias de la clase Receiver. + Release the receiver instance provided. - \param receiver Instancia del receiver a liberar. - \warning El transporte recibido como parametro debera haberse obtenido mediante #create. + \return The receiver instance to be released. + \warning The parameter should have been obtained by mean #create. */ void release(Receiver* receiver) throw(); /** - Devuelve una cadena con la informacion relevante sobre esta instancia. - \return una cadena con la informacion relevante sobre esta instancia. + Returns a string with relevant information for this instance. + @return string with relevant information for this instance. */ std::string asString() const throw() { @@ -118,44 +86,33 @@ public: } /** - Devuelve un documento XML con la informacion relevante sobre esta instancia. - \param parent Nodo XML del que debe depender el documento generado. - \return un documento XML con la informacion relevante sobre esta instancia. + Returns a XML document with relevant information for this instance. + \param parent XML node from which created data will depend on. + @return a XML document with relevant information for this instance. */ xml::Node* asXML(xml::Node* parent) const throw(); protected: /** - Constructor - \param name Nombre logico de esta factoria de receptores. + Constructor. + \param name Logical name for this receivers factory. */ ReceiverFactory(const char* name); /** - Crea realmente la instancia del receptor asociado a esta factoria, solo sera invocado - en caso de que no haya ninguna otra instancia disponible que pueda ser reusada. + Creates the receiver instance if no other reusable instance is found. This method is + called from a critical section activated for this instance. - La invocacion a este metodo se realiza desde una seccion critica activada sobre esta - instancia. - - Es muy aconsejable que la implementacion particular de este metodo este basada en el - uso de #Recycler. - - \return La instancia de un nuevo receiver. - \warning Cada uno de los receptores obtenidos debera ser liberado invocando a #release. + \return The new receiver instance. + \warning All the receivers obtained shall be released by mean #release. */ virtual Receiver* do_create() throw() = 0; /** - Libera realmente la instancia del receptor recibido como parametro. - - Es muy aconsejable que la implementacion particular de este metodo este basada en el - uso de #Recycler. - - La invocacion a este metodo se realiza desde una seccion critica activada sobre esta - instancia. + Release the receiver provided. This method is called from a critical section activated + for this instance. - \param receiver Instancia del receiver a liberar. + \param The receiver instance to be released. */ virtual void do_release(Receiver* receiver) throw() = 0;