ANNA Suite  2020b
Multipurpose development suite for Telco applications
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
anna::http::Message Class Referenceabstract

#include <Message.hpp>

Inheritance diagram for anna::http::Message:
Inheritance graph
[legend]
Collaboration diagram for anna::http::Message:
Collaboration graph
[legend]

Classes

struct  Type
 

Public Types

typedef Recycler< Header >::iterator header_iterator
 
typedef Recycler< Header >::const_iterator const_header_iterator
 

Public Member Functions

Type::_v getType () const
 
const std::string & getVersion () const
 
Version::_v getVersionAsEnum () const
 
const std::string & getExtraParameters () const
 
void setVersion (const std::string &version)
 
void setVersion (const Version::_v version)
 
comm::MessagesetBody (const xml::Node *node) noexcept(false)
 
HeadercreateHeader (const Header::Type::_v type) noexcept(false)
 
HeadercreateHeader (const std::string &name) noexcept(false)
 
const Headerfind (const Header::Type::_v type) const
 
Headerfind (const Header::Type::_v type)
 
Headerfind (const char *name)
 
void clear ()
 
header_iterator header_begin ()
 
header_iterator header_end ()
 
const_header_iterator header_begin () const
 
const_header_iterator header_end () const
 
const DataBlockcode () noexcept(false)
 
virtual std::string asString () const =0
 
- Public Member Functions inherited from anna::comm::Message
 Message ()
 
virtual ~Message ()
 
const DataBlockgetBody () const
 
MessagesetBody (const DataBlock &body) noexcept(false)
 
MessagesetBody (const char *buffer, const int size) noexcept(false)
 
void clearBody ()
 
- Public Member Functions inherited from anna::DataBlock
 DataBlock (const bool deepCopy=false)
 
 DataBlock (const char *buffer, const int size, const bool deepCopy=false) noexcept(false)
 
 DataBlock (const DataBlock &other) noexcept(false)
 
virtual ~DataBlock ()
 
int getMaxSize () const
 
int getSize () const
 
const char * getData () const
 
bool isEmpty () const
 
bool deepCopy () const
 
void setSize (const int size) noexcept(false)
 
DataBlockoperator+= (const char c) noexcept(false)
 
DataBlockoperator+= (const DataBlock &right) noexcept(false)
 
DataBlockoperator+= (const std::string &str) noexcept(false)
 
const char operator[] (const int pos) const noexcept(false)
 
char & operator[] (const int pos) noexcept(false)
 
void append (const char *data, const int len) noexcept(false)
 
void append (const DataBlock &other) noexcept(false)
 
void assign (const DataBlock &right) noexcept(false)
 
void assign (const char *buffer, const int size) noexcept(false)
 
DataBlockoperator= (const DataBlock &right) noexcept(false)
 
DataBlockoperator= (const char c) noexcept(false)
 
DataBlockoperator= (const std::string &str) noexcept(false)
 
void allocate (const int nbytes) noexcept(false)
 
void clear () noexcept(false)
 
void remove (const int pos, const int nbytes) noexcept(false)
 
void remove (const int nbytes) noexcept(false)
 
std::string asString (const int characterByLine=24) const
 

Static Public Member Functions

static Headerheader (header_iterator &ii)
 
static const Headerheader (const_header_iterator &ii)
 

Protected Member Functions

 Message (const Type::_v type)
 
- Protected Member Functions inherited from anna::comm::Message
 Message (const StatusCodeBuffer::_v statusCodeBuffer)
 
 Message (DataBlock &codeBuffer)
 
- Protected Member Functions inherited from anna::DataBlock
void initialize (const char *buffer, const int size) noexcept(false)
 
void setBuffer (const char *buffer)
 
void setMaxSize (const int maxSize)
 

Friends

class parser::Abstract
 

Additional Inherited Members

- Protected Attributes inherited from anna::comm::Message
DataBlocka_codeBuffer
 

Detailed Description

Clase base de los mensajes HTTP segun la RFC 2616.

Member Typedef Documentation

◆ const_header_iterator

◆ header_iterator

Constructor & Destructor Documentation

◆ Message()

anna::http::Message::Message ( const Type::_v  type)
inlineprotected

Constructor.

Parameters
typeTipo de mensaje.
209  : comm::Message(StatusCodeBuffer::Reserve),
210  a_type(type), a_version("HTTP/1.1")
211  {;}

Member Function Documentation

◆ asString()

virtual std::string anna::http::Message::asString ( ) const
pure virtual

Devuelve una cadena con toda la informacion relevante de este objeto.

Returns
una cadena con toda la informacion relevante de este objeto.

Implemented in anna::http::Response, and anna::http::Request.

◆ clear()

void anna::http::Message::clear ( void  )
inline

Inicializa el contenido de este mensaje. Libera las cabeceras y el cuerpo del mensaje.

150 { a_headers.clear(); clearBody(); a_extraParameters.clear();}
void clearBody()
Definition: Message.hpp:77

◆ code()

const DataBlock& anna::http::Message::code ( )
virtualnoexcept

Codifica este mensaje.

Returns
El bloque de datos que contiene el mensaje codificado.

Reimplemented from anna::comm::Message.

◆ createHeader() [1/2]

Header* anna::http::Message::createHeader ( const Header::Type::_v  type)
inlinenoexcept

Crea una nueva cabecera en este mensaje.

Parameters
typeTipo de cabecera a crear.
Returns
La instancia de la nueva cabecera.
105  {
106  return a_headers.create()->initialize(type);
107  }
Here is the call graph for this function:

◆ createHeader() [2/2]

Header* anna::http::Message::createHeader ( const std::string &  name)
inlinenoexcept

Crea una nueva cabecera en este mensaje.

Parameters
nameNombre de la cabecera a crear.
Returns
La instancia de la nueva cabecera.
115  {
116  return a_headers.create()->initialize(name);
117  }
Here is the call graph for this function:

◆ find() [1/3]

const Header* anna::http::Message::find ( const Header::Type::_v  type) const
inline

Devuelve la instancia de la primera cabecera que coincide con el tipo recibido como parametro. Puede ser NULL si el mensaje no contiene ninguna cabecera del tipo solicitado.

Parameters
typeTipo de cabecera buscado.
Returns
La primera cabecera que coincide con el tipo recibido como parametro.
126  {
127  return const_cast <Message*>(this)->find(type);
128  }
const Header * find(const Header::Type::_v type) const
Definition: Message.hpp:126

◆ find() [2/3]

Header* anna::http::Message::find ( const Header::Type::_v  type)

Devuelve la instancia de la primera cabecera que coincide con el tipo recibido como parametro. Puede ser NULL si el mensaje no contiene ninguna cabecera del tipo solicitado.

Parameters
typeTipo de cabecera buscado.
Returns
La primera cabecera que coincide con el tipo recibido como parametro.

◆ find() [3/3]

Header* anna::http::Message::find ( const char *  name)

Devuelve la instancia de la primera cabecera de tipo Header::Category::Extension cuyo nombre coincide con el recibido como parametro. Puede ser NULL.

Parameters
nameNombre de la extension buscada.
Returns
La primera cabecera que coincide con el tipo recibido como parametro.

◆ getExtraParameters()

const std::string& anna::http::Message::getExtraParameters ( ) const
inline

Devuelve los parámetros extras que pueden haber estado contenidos en los bloques de datos, en caso de que el mensaje se haya recibido como un "Transfer-Encoding: chunked".

Returns
Los parámetros extras que pueden haber estado contenidos en los bloques
75 { return a_extraParameters; }

◆ getType()

Type::_v anna::http::Message::getType ( ) const
inline

Devuelve el tipo de este mensaje HTTP.

Returns
el tipo de este mensaje HTTP.
56 { return a_type; }

◆ getVersion()

const std::string& anna::http::Message::getVersion ( ) const
inline

Devuelve la version del protocolo HTTP usada en el mensaje.

Returns
la version del protocolo HTTP usada en el mensaje.
62 { return a_version; }

◆ getVersionAsEnum()

Version::_v anna::http::Message::getVersionAsEnum ( ) const
inline
68 { return Version::asEnum(a_version); }

◆ header() [1/2]

static Header* anna::http::Message::header ( header_iterator ii)
inlinestatic

Devuelve la instancia de la cabecera a la que referencia el iterator recibido como parametro.

Returns
la instancia de la cabecera a la que referencia el iterator recibido como parametro.
194 { return Recycler<Header>::data(ii); }
static T * data(iterator ii)
Definition: Recycler.hpp:233
Here is the call graph for this function:

◆ header() [2/2]

static const Header* anna::http::Message::header ( const_header_iterator ii)
inlinestatic

Devuelve la instancia de la cabecera a la que referencia el iterator recibido como parametro.

Returns
la instancia de la cabecera a la que referencia el iterator recibido como parametro.
202 { return Recycler<Header>::data(ii); }
static T * data(iterator ii)
Definition: Recycler.hpp:233
Here is the call graph for this function:

◆ header_begin() [1/2]

header_iterator anna::http::Message::header_begin ( )
inline

Devuelve un iterador al comienzo de la lista de cabeceras.

Returns
un iterador al comienzo de la lista de cabeceras.
156 { return a_headers.begin(); }

◆ header_begin() [2/2]

const_header_iterator anna::http::Message::header_begin ( ) const
inline

Devuelve un iterador al comienzo de la lista de cabeceras.

Returns
un iterador al comienzo de la lista de cabeceras.
168 { return a_headers.begin(); }

◆ header_end() [1/2]

header_iterator anna::http::Message::header_end ( )
inline

Devuelve un iterador al final de la lista de cabeceras.

Returns
un iterador al final de la lista de cabeceras.
162 { return a_headers.end(); }

◆ header_end() [2/2]

const_header_iterator anna::http::Message::header_end ( ) const
inline

Devuelve un iterador al final de la lista de cabeceras.

Returns
un iterador al final de la lista de cabeceras.
174 { return a_headers.end(); }

◆ setBody()

comm::Message* anna::http::Message::setBody ( const xml::Node node)
virtualnoexcept

Establece el cuerpo de este mensaje con el contenido del documento XML correspondiente al nodo XML recibido como parámetro.

También establece la cabecera Content-Type.

Parameters
nodeNodo XML que contiene el documento XML.

Reimplemented from anna::comm::Message.

◆ setVersion() [1/2]

void anna::http::Message::setVersion ( const std::string &  version)
inline

Establece la version a codificar en el mensaje.

Parameters
versionTexto con la version HTTP a usar, HTTP/1.1, por ejemplo.
81 { a_version = version; }

◆ setVersion() [2/2]

void anna::http::Message::setVersion ( const Version::_v  version)
inline

Establece la versión a codificar en el mensaje.

Parameters
versionIdentificador de la versión.
87 { a_version = Version::asCString(version); }

Friends And Related Function Documentation

◆ parser::Abstract

friend class parser::Abstract
friend

The documentation for this class was generated from the following file: