X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fhttp%2FTransport.hpp;h=34df3f65887588ae80403018411edd118fc4aa58;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=9fd463b31bbc0b2e6e23b201311870c099cc026b;hpb=3e258840b15577cb8bda3cdedd0b9b88e16404b3;p=anna.git diff --git a/include/anna/http/Transport.hpp b/include/anna/http/Transport.hpp index 9fd463b..34df3f6 100644 --- a/include/anna/http/Transport.hpp +++ b/include/anna/http/Transport.hpp @@ -1,37 +1,9 @@ -// 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_http_Transport_hpp @@ -69,39 +41,44 @@ public: */ Transport(); + /** + * Destructor. + */ + virtual ~Transport() {;} + /** Devuelve la longitud del cuerpo del mensaje asociado. \return la longitud del cuerpo del mensaje asociado. \warning Exclusivamente de uso interno. */ - int getContentLength() const throw() { return a_contentLength; } + int getContentLength() const { return a_contentLength; } /** Devuelve el mensaje de entrada asociado. \return La instancia del mensaje de entrada asociado. \warning Exclusivamente de uso interno. */ - http::Message* getInputMessage() throw(RuntimeException); + http::Message* getInputMessage() noexcept(false); /** Establece la longitud del cuerpo del mensaje asociado. \param contentLength Longitud del cuerpo del mensaje asociado. \warning Exclusivamente de uso interno. */ - void setContentLength(const int contentLength) throw(RuntimeException) { a_contentLength = contentLength; } + void setContentLength(const int contentLength) noexcept(false) { a_contentLength = contentLength; } /** Establece la posicion donde comienza el cuerpo del mensaje asociado. \param bodyOffset Posicion donde comienza el cuerpor del mensaje. \warning Exclusivamente de uso interno. */ - void setBodyOffset(const int bodyOffset) throw(RuntimeException) { a_bodyOffset = bodyOffset; } + void setBodyOffset(const int bodyOffset) noexcept(false) { a_bodyOffset = bodyOffset; } /** Metodo que inicializa el estado de esta capa de transporte. Se invoca directamente por el nucleo cuando sea necesario. */ - void clear() throw(); + void clear() ; /** * Permite obtener una instancia de anna::http::Message correspondiente al búfer recibido como parámetro. @@ -111,7 +88,7 @@ public: * proteja, porque lo que si se invoca en modo MT desde varios thread habrá que establecer las secciones * críticas necesarias para que sólo un thread pueda acceder a este método. */ - const http::Message* externalDecode(const char* buffer, const int length) throw(RuntimeException); + const http::Message* externalDecode(const char* buffer, const int length) noexcept(false); /** Instancia un mensaje HTTP de entrada del tipo determinado por \em type. @@ -119,13 +96,13 @@ public: \return La instancia del mensaje creado. \internal */ - http::Message* allocateInputMessage(const Message::Type::_v type) throw(RuntimeException); + http::Message* allocateInputMessage(const Message::Type::_v type) noexcept(false); /** * Devuelve el bloque de datos codificados asociados a esta instancia. * \warning Exclusivamente uso interno. */ - EncodedBlock* getEncodedBlock() throw(); + EncodedBlock* getEncodedBlock() ; /** Separa el token recibido como parametro en distintos componentes basicos, usando @@ -135,7 +112,7 @@ public: \return Una instancia del Tokenizer con el que poder recorrer todos los componentes. */ - const Tokenizer& split(const Token& token) throw(RuntimeException); + const Tokenizer& split(const Token& token) noexcept(false); /** Separa el token recibido como parametro en distintos componentes basicos. @@ -145,7 +122,7 @@ public: \return Una instancia del Tokenizer con el que poder recorrer todos los componentes. */ - const Tokenizer& split(const Token& token, const char* separator) throw(RuntimeException); + const Tokenizer& split(const Token& token, const char* separator) noexcept(false); /** Separa el token recibido como parametro en distintos componentes basicos. @@ -155,19 +132,19 @@ public: \return Una instancia del Tokenizer con el que poder recorrer todos los componentes. */ - const Tokenizer& split(const Token& token, const char separator) throw(RuntimeException); + const Tokenizer& split(const Token& token, const char separator) noexcept(false); /** Devuelve el literal que identifica de esta clase. \return el literal que identifica de esta clase. */ - static const char* className() throw() { return "anna::http::Transport"; } + static const char* className() { return "anna::http::Transport"; } /** Devuelve el gestor de capas de transporte asociado a esta clase. \return El gestor de capas de transporte asociado a esta clase. */ - static comm::TransportFactory& getFactory() throw() { return st_factory; } + static comm::TransportFactory& getFactory() { return st_factory; } private: //------------------------------------------------------------------------------------- @@ -197,15 +174,15 @@ private: static comm::TransportFactoryImpl st_factory; - void setParserState(const parser::Abstract* parser) throw(RuntimeException); + void setParserState(const parser::Abstract* parser) noexcept(false); - int calculeSize(const DataBlock&) throw(RuntimeException); - const comm::Message* decode(const DataBlock&) throw(RuntimeException); - const DataBlock& code(comm::Message&) throw(RuntimeException); + int calculeSize(const DataBlock&) noexcept(false); + const comm::Message* decode(const DataBlock&) noexcept(false); + const DataBlock& code(comm::Message&) noexcept(false); /* - static const Token* tryRequest (const Tokenizer&) throw (); - static const Token* tryResponse (const Tokenizer&) throw (); + static const Token* tryRequest (const Tokenizer&) ; + static const Token* tryResponse (const Tokenizer&) ; */ friend class anna::Allocator ; friend class parser::Abstract;