ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Types | Public Member Functions | Static Public Member Functions | List of all members
anna::comm::LargeBinaryCodec Class Reference

#include <LargeBinaryCodec.hpp>

Inheritance diagram for anna::comm::LargeBinaryCodec:
Inheritance graph
[legend]
Collaboration diagram for anna::comm::LargeBinaryCodec:
Collaboration graph
[legend]

Public Types

typedef std::vector< DataBlock * >::iterator iterator
 
typedef std::vector< DataBlock * >::const_iterator const_iterator
 
- Public Types inherited from anna::comm::CompatCodec
typedef VariableContainer container
 
typedef container::iterator iterator
 
typedef container::const_iterator const_iterator
 
typedef unsigned char Type
 

Public Member Functions

 LargeBinaryCodec (const Type type, const bool scramble=true)
 
virtual ~LargeBinaryCodec ()
 
void clear () noexcept(false)
 
LargeBinaryCodecoperator+= (const DataBlock &dataBlock) noexcept(false)
 
virtual void decode (const DataBlock &dataBlock) noexcept(false)
 
const_iterator begin () const
 
const_iterator end () const
 
int size () const
 
- Public Member Functions inherited from anna::comm::Codec
 Codec (const Type type, const bool scramble=true)
 
const Variableattach (const char *name, std::string &value) noexcept(false)
 
const Variableattach (const char *name, const char *&value) noexcept(false)
 
const Variableattach (const char *name, int &value) noexcept(false)
 
const Variableattach (const char *name, S64 &value) noexcept(false)
 
const Variableattach (const char *name, bool &value) noexcept(false)
 
const Variableattach (const char *name, DataBlock &value) noexcept(false)
 
const Variableattach (const char *name, float &value) noexcept(false)
 
const Variableattach (const char *name, double &value) noexcept(false)
 
const Variableattach (const char *name, Second &value) noexcept(false)
 
const Variableattach (const char *name, Millisecond &value) noexcept(false)
 
const Variableattach (const char *name, Microsecond &value) noexcept(false)
 
- Public Member Functions inherited from anna::comm::CompatCodec
 CompatCodec (const Type type, const bool scramble=true)
 
virtual ~CompatCodec ()
 
Type getType () const
 
const Variableattach (const char *name, const short int id, std::string &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, const char *&value) noexcept(false)
 
const Variableattach (const char *name, const short int id, int &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, S64 &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, bool &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, DataBlock &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, float &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, double &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, Second &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, Millisecond &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, Microsecond &value) noexcept(false)
 
const Variableattach (const char *name, const short int id, comm::CompatCodec &value) noexcept(false)
 
const Variablefind (const short int id) const noexcept(false)
 
void setNull (const short int id, const bool isNull=true) noexcept(false)
 
void setNull (const Variable *variable, const bool isNull=true)
 
bool isNull (const short int id) const noexcept(false)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
int size () const
 
virtual const DataBlockcode () noexcept(false)
 
- 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)
 
virtual MessagesetBody (const xml::Node *node) 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 const DataBlockdata (const_iterator ii)
 
static DataBlockdata (iterator ii)
 
- Static Public Member Functions inherited from anna::comm::CompatCodec
static Variablevariable (iterator ii)
 
static const Variablevariable (const_iterator ii)
 
static Type getType (const DataBlock &dataBlock) noexcept(false)
 

Additional Inherited Members

- 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)
 
- Protected Attributes inherited from anna::comm::CompatCodec
bool a_scramble
 
- Protected Attributes inherited from anna::comm::Message
DataBlocka_codeBuffer
 

Detailed Description

Codificador/Decodificador de objetos complejos.

A diferencia de EnhancedCodec que esta pensado para seriealizar objetos con estructuras tipos de datos basicos, este codec esta pensado especialmente para serializar objetos o listas de objetos tan complejas como sea preciso.

El mensaje estara formado por una serie indeterminada de bloques de datos binarios, lo que nos permite serializar facilmente cualquier tipo de estructura de datos.

Warning
Esta clase no establece proteccion ante accesos concurrentes

Member Typedef Documentation

◆ const_iterator

◆ iterator

Constructor & Destructor Documentation

◆ LargeBinaryCodec()

anna::comm::LargeBinaryCodec::LargeBinaryCodec ( const Type  type,
const bool  scramble = true 
)
inline

Constructor.

Parameters
typeTipo por el que sera conocido este tipo de mensaje.
scrambleIndica si el mensaje debe ser codificado de forma que no se pueda ver el contenido del mismo con una simple herramienta de monitorizacin de mensajes de red. Por defecto esta activo ya que la codificacin realizada es muy simple y rapida y el tiempo empleado es casi inapreciable.
48  :
49  Codec(type, scramble),
50  a_dataBlock(true) {
51  attach("LargeBinaryBlock", a_dataBlock);
52  }
Codec(const Type type, const bool scramble=true)
Definition: Codec.hpp:93
const Variable * attach(const char *name, std::string &value) noexcept(false)
Definition: Codec.hpp:106
Here is the call graph for this function:

◆ ~LargeBinaryCodec()

virtual anna::comm::LargeBinaryCodec::~LargeBinaryCodec ( )
inlinevirtual

Destructor.

57 { reset(); clear(); }
void clear() noexcept(false)
Definition: LargeBinaryCodec.hpp:62
Here is the call graph for this function:

Member Function Documentation

◆ begin()

const_iterator anna::comm::LargeBinaryCodec::begin ( ) const
inline

Devuelve el iterador que apunta al comienzo de la serializacin.

Returns
El iterador que apunta al comienzo de la serializacin.
Warning
El valor de este metodo solo sera valido despues de invocar a decode.
83 { return a_blocks.begin(); }

◆ clear()

void anna::comm::LargeBinaryCodec::clear ( )
inlinenoexcept

Elimina el contenido del mensaje asociado a este objeto.

62 { a_dataBlock.clear(); }
void clear() noexcept(false)
Definition: DataBlock.hpp:240
Here is the call graph for this function:

◆ data() [1/2]

static const DataBlock* anna::comm::LargeBinaryCodec::data ( const_iterator  ii)
inlinestatic

Devuelve el puntero al objeto referenciado por el iterador recibido como parametro.

Parameters
iiIterador.
Returns
el puntero al objeto referenciado por el iterador recibido como parametro.
103 { return *ii; }

◆ data() [2/2]

static DataBlock* anna::comm::LargeBinaryCodec::data ( iterator  ii)
inlinestatic

Devuelve el puntero al objeto referenciado por el iterador recibido como parametro.

Parameters
iiIterador.
Returns
el puntero al objeto referenciado por el iterador recibido como parametro.
110 { return *ii; }

◆ decode()

virtual void anna::comm::LargeBinaryCodec::decode ( const DataBlock dataBlock)
virtualnoexcept

Transfiene la informacin contenida en el bloque de memoria recibido hacia las variables asociadas a este mensaje interno.

Parameters
dataBlockBloque de memoria que contiene las variables codificadas. Para acceder la lista de bloques que componen el mensaje recibido se deben utilizar los metodo begin y end.

Reimplemented from anna::comm::CompatCodec.

◆ end()

const_iterator anna::comm::LargeBinaryCodec::end ( ) const
inline

Devuelve el iterador que apunta al final de la serializacin.

Returns
El iterador que apunta al final de la serializacin.
Warning
El valor de este metodo solo sera valido despues de invocar a decode.
90 { return a_blocks.end(); }

◆ operator+=()

LargeBinaryCodec& anna::comm::LargeBinaryCodec::operator+= ( const DataBlock dataBlock)
noexcept

Amplia el contenido del mensaje con el contenido del bloque de memoria recibido.

Parameters
dataBlockBloque de memoria con el que vamos a ampliar el mensaje.
Returns
La referencia a este objeto.

◆ size()

int anna::comm::LargeBinaryCodec::size ( ) const
inline

Devuelve el número de bloques contenidos en el mensaje.

Returns
el número de bloques contenidos en el mensaje.
96 { return a_blocks.size(); }

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