ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <DataBlock.hpp>
Public Member Functions | |
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) |
DataBlock & | operator+= (const char c) noexcept(false) |
DataBlock & | operator+= (const DataBlock &right) noexcept(false) |
DataBlock & | operator+= (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) |
DataBlock & | operator= (const DataBlock &right) noexcept(false) |
DataBlock & | operator= (const char c) noexcept(false) |
DataBlock & | operator= (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 |
Protected Member Functions | |
void | initialize (const char *buffer, const int size) noexcept(false) |
void | setBuffer (const char *buffer) |
void | setMaxSize (const int maxSize) |
Optimizacion de acceso a la memoria dinamica.
Incrementa el rendimiento al acceder y reservar de memoria dinamica mediante la reutilizacion controlada.
Para optimizar el acceso no se ha establecido ningun tipo de proteccion para ejecucion MT.
|
inlineexplicit |
Constructor.
deepCopy | Modo de copia de esta instancia. Si activamos el modo de copia profunda al asignar cualquier otro bloque de memoria a este, se reserva (si fuese necesario) la memoria para ubicar el buffer y despues realizara una copia byte a byte. |
|
noexcept |
Constructor.
buffer | Bloque de memoria con el que inicializar el buffer de esta instancia. |
size | Numero de bytes del bloque de memoria recibido. |
deepCopy | Modo de copia de esta instancia. Si activamos el modo de copia profunda al asignar cualquier otro bloque de memoria a este, se reserva la memoria para ubicar el buffer y despues realizara una copia byte a byte. |
|
noexcept |
Constructor copia. El modo de copia sera el mismo que el establecido por la instancia de la que copiar.
other | Bloque de memoria con el que instanciar esta instancia. |
|
virtual |
Destructor.
|
noexcept |
Reserva el numero de bytes indicado por el parametro recibido. Si la cantidad de memoria preasignada es mayor que la solicitada no se realiza ninguna llamada al sistema operativo.
nbytes | Numero de bytes a reservar. |
|
noexcept |
Anade el bloque de memoria recibido. Para poder usar este operador el bloque de memoria destino debe tener activado el modo de copia profunda. Si la memoria reservada no es suficiente reservara automaticamente la cantidad de memoria necesaria.
data | Direccion donde comienza el bloque de datos. |
len | Longitud del bloque de datos. |
|
inlinenoexcept |
Anade el bloque de memoria recibido. Para poder usar este operador el bloque de memoria destino debe tener activado el modo de copia profunda. Si la memoria reservada no es suficiente reservara automaticamente la cantidad de memoria necesaria.
other | Bloque de memoria a añadir. |
|
inlinenoexcept |
|
noexcept |
Copia o direcciona el contenido del bloque recibido como parámetro.
buffer | Dirección de memoria a direcionar. |
size | Tamaño de la memoria. |
std::string anna::DataBlock::asString | ( | const int | characterByLine = 24 | ) | const |
Muestra el contenido de este buffer en forma de buffer hexadecimal vs bytes.
|
inlinenoexcept |
La reserva de memoria actual pasa a ser memoria pre-asignada, asi libera el bloque de memoria reservado hasta el momento, pero de forma que si posteriormente vuelve a ser necesario puede reutilizarlo sin tener que volver a realizar una llamada al sistema para obtener memoria dinamica.
|
inline |
|
inline |
|
inline |
|
inline |
|
protectednoexcept |
Inicializa el contenido de este bloque de datos. Si fue instancia con copia profunda copia el contenido del buffer, en otro caso solo se queda con el valor de la referencia de memoria a la que apunta.
buffer | Bloque de memoria con el que inicializar el buffer de esta instancia. |
size | Numero de bytes del bloque de memoria recibido. |
|
inline |
|
inlinenoexcept |
Anade el caracter recibido al bloque de memoria. Para poder usar este operador el bloque de memoria destino debe tener activado el modo de copia profunda. Si la memoria reservada no es suficiente reservara automaticamente la cantidad de memoria necesaria.
c | Caracter a añadir a este bloque de memoria. |
Anhade el bloque de memoria recibido. Para poder usar este operador el bloque de memoria destino debe tener activado el modo de copia profunda. Si la memoria reservada no es suficiente reservara automaticamente la cantidad de memoria necesaria.
right | Bloque de memoria a añadir a este bloque de memoria. |
|
inlinenoexcept |
Anade la cadena recibida al bloque de memoria. Para poder usar este operador el bloque de memoria destino debe tener activado el modo de copia profunda. Si la memoria reservada no es suficiente reservara automaticamente la cantidad de memoria necesaria.
str | Cadena a añadir a este bloque de memoria. |
operador copia. El modo de copiar vendra definido por el modo copia con el que hayamos iniciado la instancia destino.
right | Bloque de memoria del que copiar. |
|
inlinenoexcept |
Operador de inicializacion. El bloque destino debera tener activado el sistema de copia profunda.
c | Caracter con el que vamos a inicializar el contenido del bloque. |
|
inlinenoexcept |
Operador de inicializacion. El bloque destino debera tener activado el sistema de copia profunda.
str | Cadena con el que vamos a inicializar el contenido del bloque. |
|
noexcept |
Devuelve la posicion i-esima del bloque de datos.
pos | Posicion a la que acceder. |
|
noexcept |
Devuelve la posicion i-esima del bloque de datos.
pos | Posicion a la que acceder. |
|
noexcept |
Elimina del bloque de memoria unos determinados bytes.
pos | Posicion del bloque donde empezar a eliminar. |
nbytes | Numero de bytes a descartar a partir de la posicion indicada. |
|
noexcept |
Elimina del bloque de memoria los n primeros bytes.
nbytes | Numero de bytes a descartar a partir de la posicion indicada. |
|
inlineprotected |
Establece el espacio de memoria asociado a este bloque de datos.
buffer | Nuevo buffer de datos asociado a este bloque. |
|
inlineprotected |
Establece el numero de bytes que tiene reservados este bloque de datos.
maxSize | numero de bytes que tiene reservados este bloque de datos. |
|
noexcept |
Establece el numero de bytes que tiene asociado a este bloque de datos.
size | numero de bytes que tiene asociado a este bloque de datos. |