ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Transport.hpp>
Public Member Functions | |
WHEN_SINGLETHREAD (static const int DefaultOverQuotaSize=2048;) WHEN_MULTITHREAD(static const int DefaultOverQuotaSize | |
bool | enableTimeout () const |
void | activateTimeout () |
void | deactivateTimeout () |
Message * | getInputMessage () noexcept(false) |
int | getOverQuotaSize () const |
void | setOverQuotaSize (const int overQuotaSize) |
virtual int | calculeSize (const DataBlock &dataBlock) noexcept(false)=0 |
virtual const Message * | decode (const DataBlock &message) noexcept(false)=0 |
virtual const DataBlock & | code (Message &message) noexcept(false)=0 |
virtual void | clear () |
Protected Member Functions | |
Transport () | |
void | setInputMessage (Message *inputMessage) |
Protected Attributes | |
DataBlock | a_forCode |
Clase generica para definir la capa de transporte de cualquier protocolo de comunicaciones.
Estructura basica que nos permite ordenar el proceso de analizar un mensaje recibido desde cualquier medio. El protocolo conoce los detalles semanticos del mensaje que ha recibido, es decir, conoce como interpretar cada uno de los bytes que componen el mensaje, cuando un mensaje esta completo.
El principal problema de cualquier protocolo externo a la hora de recibir es conocer cual es el tamao de un determinado mensaje.
Todos los metodos que se deberian reescribir en las clases heredadas se invocan desde un metodo MT-safe que se encarga de evitar accesos simultaneos desde varios threads, lo cual, evita que tengamos que preocuparnos por establecer secciones criticas en cada uno de los metodos reescritos.
|
inlineprotected |
Constructor.
autoSynchronize | Indica si el el protocolo instancia permite la sincronizacion automatica. |
overQuotaSize | Longitud maxima que puede contener el buffer intermedio antes de cerrar el socket por considerar que no puede sincronizarlo. |
|
inline |
Activates the timming control system for the ClientSocket which were created through this transport layer. They will be automatically closed if no activity is detected in a time interval.
|
pure virtualnoexcept |
Debe calcular el tamao previsto del mensaje actual.
Si se detecta una anomalia irrecuperable en el mensaje debe devolver una excepcion para indicar el error.
dataBlock | Bloque con la parte del mensaje disponible hasta el momento. |
|
inlinevirtual |
Metodo que inicializa el estado de esta capa de transporte. Sera invocado automaticamente por el nucleo anna.comm.
Reimplemented in anna::http::Transport.
Debe establecer la forma en el protocolo va a preparar el envio a la capa de transporte.
message | Bloque de datos con la codificacin obtenida mediante cualquiera de los codec disponibles (Ver Codec). |
|
inline |
Deactivates the timming control system for the ClientSocket which were created through this transport layer.
|
pure virtualnoexcept |
Debe establecer el modo en que el protocolo va a verificar que el mensaje obtenido coincide con el patrn esperado e interpretar el contenido del mensaje. Este metodo slo se invoca cuando se considera que el mensaje actual esta completo.
Si se detecta una anomalia irrecuperable en el mensaje debe devolver una excepcion para indicar el error.
message | Bloque con lo que hasta el momento se considera el ltimo mensaje recibido por completo. |
|
inline |
|
inlinenoexcept |
|
inline |
|
inlineprotected |
|
inline |
Establece el numero de bytes que puede mantener este procotolo para cada uno de los ClientSocket sin que se halla identificado el mensaje como propio del protocolo. Si el numero de bytes guardados en la memoria intermedia sobrepasa este numero de bytes se cerrara la conexion con el ClientSocket.
overQuotaSize | Numero de maximo de bytes que podemos mantener en la memoria intermedia. |
anna::comm::Transport::WHEN_SINGLETHREAD | ( | static const int | DefaultOverQuotaSize = 2048; | ) | const |
Maximum number of bytes kept by each ClientSocket without identifying a message for the own protocol.
|
protected |
Bloque de memoria usado para guardar el contenido de la codificacion