ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Member Functions | Static Public Member Functions | Friends | List of all members
anna::http::Transport Class Reference

#include <Transport.hpp>

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

Public Member Functions

 Transport ()
 
virtual ~Transport ()
 
int getContentLength () const
 
http::MessagegetInputMessage () noexcept(false)
 
void setContentLength (const int contentLength) noexcept(false)
 
void setBodyOffset (const int bodyOffset) noexcept(false)
 
void clear ()
 
const http::MessageexternalDecode (const char *buffer, const int length) noexcept(false)
 
http::MessageallocateInputMessage (const Message::Type::_v type) noexcept(false)
 
EncodedBlockgetEncodedBlock ()
 
const Tokenizersplit (const Token &token) noexcept(false)
 
const Tokenizersplit (const Token &token, const char *separator) noexcept(false)
 
const Tokenizersplit (const Token &token, const char separator) noexcept(false)
 
- Public Member Functions inherited from anna::comm::Transport
 WHEN_SINGLETHREAD (static const int DefaultOverQuotaSize=2048;) WHEN_MULTITHREAD(static const int DefaultOverQuotaSize
 
bool enableTimeout () const
 
void activateTimeout ()
 
void deactivateTimeout ()
 
MessagegetInputMessage () noexcept(false)
 
int getOverQuotaSize () const
 
void setOverQuotaSize (const int overQuotaSize)
 

Static Public Member Functions

static const char * className ()
 
static comm::TransportFactorygetFactory ()
 

Friends

class anna::Allocator< http::Transport >
 
class parser::Abstract
 

Additional Inherited Members

- Protected Member Functions inherited from anna::comm::Transport
 Transport ()
 
void setInputMessage (Message *inputMessage)
 
- Protected Attributes inherited from anna::comm::Transport
DataBlock a_forCode
 

Detailed Description

Clase generica para definir la capa de transporte del protocolo HTTP.

See also
Transport.

Constructor & Destructor Documentation

◆ Transport()

anna::http::Transport::Transport ( )

Constructor. Sólo debería usarse en caso de tener que usar el método externalDecode.

◆ ~Transport()

virtual anna::http::Transport::~Transport ( )
inlinevirtual

Destructor.

47 {;}

Member Function Documentation

◆ allocateInputMessage()

http::Message* anna::http::Transport::allocateInputMessage ( const Message::Type::_v  type)
noexcept

Instancia un mensaje HTTP de entrada del tipo determinado por type.

Parameters
typeTipo de mensaje HTTP detectado en la entrada.
Returns
La instancia del mensaje creado.

◆ className()

static const char* anna::http::Transport::className ( )
inlinestatic

Devuelve el literal que identifica de esta clase.

Returns
el literal que identifica de esta clase.
141 { return "anna::http::Transport"; }

◆ clear()

void anna::http::Transport::clear ( )
virtual

Metodo que inicializa el estado de esta capa de transporte. Se invoca directamente por el nucleo cuando sea necesario.

Reimplemented from anna::comm::Transport.

◆ externalDecode()

const http::Message* anna::http::Transport::externalDecode ( const char *  buffer,
const int  length 
)
noexcept

Permite obtener una instancia de anna::http::Message correspondiente al búfer recibido como parámetro.

Parameters
bufferEspacio de memoria que contiene el mensaje HTTP a interpretar.
lengthLongitud del búfer. Al ser invocado desde el exterior de la plataforma no hay ninguna sección crítica que la 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.

◆ getContentLength()

int anna::http::Transport::getContentLength ( ) const
inline

Devuelve la longitud del cuerpo del mensaje asociado.

Returns
la longitud del cuerpo del mensaje asociado.
Warning
Exclusivamente de uso interno.
54 { return a_contentLength; }

◆ getEncodedBlock()

EncodedBlock* anna::http::Transport::getEncodedBlock ( )

Devuelve el bloque de datos codificados asociados a esta instancia.

Warning
Exclusivamente uso interno.

◆ getFactory()

static comm::TransportFactory& anna::http::Transport::getFactory ( )
inlinestatic

Devuelve el gestor de capas de transporte asociado a esta clase.

Returns
El gestor de capas de transporte asociado a esta clase.
147 { return st_factory; }

◆ getInputMessage()

http::Message* anna::http::Transport::getInputMessage ( )
noexcept

Devuelve el mensaje de entrada asociado.

Returns
La instancia del mensaje de entrada asociado.
Warning
Exclusivamente de uso interno.

◆ setBodyOffset()

void anna::http::Transport::setBodyOffset ( const int  bodyOffset)
inlinenoexcept

Establece la posicion donde comienza el cuerpo del mensaje asociado.

Parameters
bodyOffsetPosicion donde comienza el cuerpor del mensaje.
Warning
Exclusivamente de uso interno.
75 { a_bodyOffset = bodyOffset; }

◆ setContentLength()

void anna::http::Transport::setContentLength ( const int  contentLength)
inlinenoexcept

Establece la longitud del cuerpo del mensaje asociado.

Parameters
contentLengthLongitud del cuerpo del mensaje asociado.
Warning
Exclusivamente de uso interno.
68 { a_contentLength = contentLength; }
const char contentLength[16]

◆ split() [1/3]

const Tokenizer& anna::http::Transport::split ( const Token token)
noexcept

Separa el token recibido como parametro en distintos componentes basicos, usando como separadores los caracteres de espacios, tabs, etc.

Parameters
tokenToken sobre el que deseamos aplicar la separacion.
Returns
Una instancia del Tokenizer con el que poder recorrer todos los componentes.

◆ split() [2/3]

const Tokenizer& anna::http::Transport::split ( const Token token,
const char *  separator 
)
noexcept

Separa el token recibido como parametro en distintos componentes basicos.

Parameters
tokenToken sobre el que deseamos aplicar la separacion.
separatorSeparador usado para detectar los tokens. No puede ser NULL:
Returns
Una instancia del Tokenizer con el que poder recorrer todos los componentes.

◆ split() [3/3]

const Tokenizer& anna::http::Transport::split ( const Token token,
const char  separator 
)
noexcept

Separa el token recibido como parametro en distintos componentes basicos.

Parameters
tokenToken sobre el que deseamos aplicar la separacion.
separatorSeparador usado para detectar los tokens.
Returns
Una instancia del Tokenizer con el que poder recorrer todos los componentes.

Friends And Related Function Documentation

◆ anna::Allocator< http::Transport >

friend class anna::Allocator< http::Transport >
friend

◆ parser::Abstract

friend class parser::Abstract
friend

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