X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fcomm%2FLiteTransport.hpp;h=68be0e1ee843a89c5e5b5f52ca564bfc7caaa688;hb=e14f6ba5183403d7bbf589ef87b0643b12a0f72c;hp=8403a87972996aeb59be499d342e6641221f14fb;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git diff --git a/include/anna/comm/LiteTransport.hpp b/include/anna/comm/LiteTransport.hpp index 8403a87..68be0e1 100644 --- a/include/anna/comm/LiteTransport.hpp +++ b/include/anna/comm/LiteTransport.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_LiteTransport_hpp @@ -46,49 +18,43 @@ namespace anna { namespace comm { /** - Este protocolo esta orientado a intercambiar mensajes en una red interna, por lo que supone - que no van a existir errores en los mensajes recibidos y que los mensajes son suficientemente cortos - como poder representar su longitud en dos nicos bytes. + Protocol oriented to internal network messages interchange, supposing no errors in transmision and short-sized + messages which allows length representation in only two bytes. No synchronization mechanisms are provided, then + a single error could cause problems in our process. - Los supuestos bajo los que se dise este protocolo facilitan el desarrollo de clases que ofrecen un - gran rendimiento, pero imposibilitan el desarrollo del sistema de re-sincronizacin en caso de que alguno - de los mensajes no cumpla los supuestos. Es decir, si nos llega un mensaje errneo nuestro proceso no sera - capaz de volver a sincronizarse nunca mas. + @warning Encode mode does not provide enough information to allow re-synchronization in case of error - \warning Hay que tener en cuenta que el m�odo de codificacin no ofrece informacin - suficiente para poder re-sincronizar los procesos en caso de error. - - \see Transport. + \see Transport. */ class LiteTransport : public comm::Transport { public: static const int headerSize = sizeof(short int); /**< Tamao de la cabezera del mensaje */ /** - Destructor + Destructor. */ - ~LiteTransport(); + virtual ~LiteTransport(); /** - Devuelve el literal que indentifica de esta clase. - \return el literal que indentifica de esta clase. + Returns the class name literal. + @return class name literal. */ - static const char* className() throw() { return "anna::comm::LiteTransport"; } + static const char* className() { return "anna::comm::LiteTransport"; } /** - Devuelve el gestor de capas de transporte asociado a esta clase. - \return El gestor de capas de transporte asociado a esta clase. + Returns the transport factory associated to this class + @return transport factory associated to this class */ - static TransportFactory& getFactory() throw() { return st_transportFactory; } + static TransportFactory& getFactory() { return st_transportFactory; } private: static TransportFactoryImpl st_transportFactory; LiteTransport(); - int calculeSize(const DataBlock&) throw(RuntimeException); - const Message* decode(const DataBlock&) throw(RuntimeException); - const DataBlock& code(Message&) throw(RuntimeException); + int calculeSize(const DataBlock&) noexcept(false); + const Message* decode(const DataBlock&) noexcept(false); + const DataBlock& code(Message&) noexcept(false); friend class anna::Allocator ; };