ANNA Suite  2020b
Multipurpose development suite for Telco applications
Classes | Public Member Functions | Protected Member Functions | List of all members
anna::Variable Class Reference

#include <Variable.hpp>

Inheritance diagram for anna::Variable:
Inheritance graph
[legend]
Collaboration diagram for anna::Variable:
Collaboration graph
[legend]

Classes

struct  Type
 

Public Member Functions

 Variable (const char *name, std::string &value)
 
 Variable (const char *name, int &value)
 
 Variable (const char *name, S64 &value)
 
 Variable (const char *name, bool &value)
 
 Variable (const char *name, DataBlock &value)
 
 Variable (const char *name, float &value)
 
 Variable (const char *name, double &value)
 
 Variable (const char *name, void *value)
 
 Variable (const char *name, const Type::_v type)
 
virtual ~Variable ()
 
Type::_v getType () const
 
const char * getName () const
 
bool isNull () const
 
const char * getStringValue () const noexcept(false)
 
int getIntegerValue () const noexcept(false)
 
S64 getInteger64Value () const noexcept(false)
 
bool getBooleanValue () const noexcept(false)
 
const DataBlockgetDataBlockValue () const noexcept(false)
 
float getFloatValue () const noexcept(false)
 
double getDoubleValue () const noexcept(false)
 
void * getCustom () noexcept(false)
 
const void * getCustom () const noexcept(false)
 
void setCustom (void *value) noexcept(false)
 
int getInteger () const
 
S64 getInteger64 () const
 
bool getBoolean () const
 
const DataBlockgetDataBlock () const
 
float getFloat () const
 
double getDouble () const
 
void setValue (const char *value) noexcept(false)
 
void setCharPointer (const char *value) noexcept(false)
 
void setValue (const int value) noexcept(false)
 
void setValue (const S64 value) noexcept(false)
 
void setValue (const bool value) noexcept(false)
 
void setValue (const DataBlock &value) noexcept(false)
 
void setValue (const float value) noexcept(false)
 
void setValue (const double value) noexcept(false)
 
void setNull (const bool isNull=true)
 
void setInteger (const int value)
 
void setLong (const S64 value)
 
void setBoolean (const bool value)
 
void setDataBlock (const DataBlock &value)
 
void setFloat (const float value)
 
void setDouble (const double value)
 
bool isEqual (const Variable &right) const
 
virtual String asString () const
 

Protected Member Functions

void * getReference () const
 
void * buffer () const
 
bool * getNullIndicator ()
 

Detailed Description

Recubrimiento de variables de usuario.

Establece un recubrimiento sobre los tipos de variables soportados por el nucleo

Constructor & Destructor Documentation

◆ Variable() [1/9]

anna::Variable::Variable ( const char *  name,
std::string &  value 
)
inline

Constructor para inicializar una instancia de tipo cadena.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
54  :
55  a_name(name),
56  a_isNull(false),
57  a_type(Type::String),
58  a_isOwner(false) {
59  a_value.a_string = &value;
60  }
Definition: Variable.hpp:34

◆ Variable() [2/9]

anna::Variable::Variable ( const char *  name,
int &  value 
)
inline

Constructor para inicializar una instancia de type entero.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
69  :
70  a_name(name),
71  a_isNull(false),
72  a_type(Type::Integer),
73  a_isOwner(false) {
74  value = 0;
75  a_value.a_integer = &value;
76  }
Definition: Variable.hpp:35

◆ Variable() [3/9]

anna::Variable::Variable ( const char *  name,
S64 value 
)
inline

Constructor para inicializar una instancia de type long.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
84  :
85  a_name(name),
86  a_isNull(false),
87  a_type(Type::Integer64),
88  a_isOwner(false) {
89  value = 0;
90  a_value.a_longInteger = &value;
91  }
Definition: Variable.hpp:37

◆ Variable() [4/9]

anna::Variable::Variable ( const char *  name,
bool &  value 
)
inline

Constructor para inicializar una instancia de type BOOLEAN.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
99  :
100  a_name(name),
101  a_isNull(false),
102  a_type(Type::Boolean),
103  a_isOwner(false) {
104  value = false;
105  a_value.a_boolean = &value;
106  }
Definition: Variable.hpp:38

◆ Variable() [5/9]

anna::Variable::Variable ( const char *  name,
DataBlock value 
)
inline

Constructor para inicializar una instancia de type BLOQUE_MEMORIA.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
114  :
115  a_name(name),
116  a_isNull(false),
117  a_type(Type::Block),
118  a_isOwner(false) {
119  a_value.a_dataBlock = &value;
120  }
Definition: Variable.hpp:39

◆ Variable() [6/9]

anna::Variable::Variable ( const char *  name,
float &  value 
)
inline

Constructor para inicializar una instancia de type float.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
128  :
129  a_name(name),
130  a_isNull(false),
131  a_type(Type::Float),
132  a_isOwner(false) {
133  value = 0;
134  a_value.a_float = &value;
135  }
Definition: Variable.hpp:40

◆ Variable() [7/9]

anna::Variable::Variable ( const char *  name,
double &  value 
)
inline

Constructor para inicializar una instancia de type double.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
143  :
144  a_name(name),
145  a_isNull(false),
146  a_type(Type::Double),
147  a_isOwner(false) {
148  value = 0;
149  a_value.a_double = &value;
150  }
Definition: Variable.hpp:41

◆ Variable() [8/9]

anna::Variable::Variable ( const char *  name,
void *  value 
)
inline

Constructor para inicializar una instancia de un tipo definido por el usuario.

Parameters
nameNombre logico que recibe este variable.
valueReferencia a la variable que estamos recubriendo con esta instancia.
158  :
159  a_name(name),
160  a_isNull(false),
161  a_type(Type::Custom),
162  a_isOwner(false) {
163  a_value.a_custom = value;
164  }
Definition: Variable.hpp:42
Here is the call graph for this function:

◆ Variable() [9/9]

anna::Variable::Variable ( const char *  name,
const Type::_v  type 
)

Constructor.

Parameters
nameNombre logico que recibe esta variable.
typeTipo de dato de esta variable.

◆ ~Variable()

virtual anna::Variable::~Variable ( )
virtual

Destructor

Member Function Documentation

◆ asString()

virtual String anna::Variable::asString ( ) const
virtual

Devuelve una cadena con informacion relevante de esta instancia.

Returns
Una cadena con informacion relevante de esta instancia.

◆ buffer()

void* anna::Variable::buffer ( ) const
protected

Devuelve el area de memoria de la variable C++ a sociada a esta variable logica.

Returns
La area de memoria de la variable C++ a sociada a esta variable logica.
Warning
La forma de interpretar este valor dependera del tipo de dato (ver #Type) asociado a esta variable.

◆ getBoolean()

bool anna::Variable::getBoolean ( ) const
inline

Interpreta el valor asociado a esta variable como un valor booleano.

Warning
No se realiza ninguna comprobacion semantica.
288 { return *a_value.a_boolean; }

◆ getBooleanValue()

bool anna::Variable::getBooleanValue ( ) const
noexcept

Devuelve el valor booleano asociado a esta variable.

Returns
Si la variable indicada en el contructor de esta instancia puede interpretarse como un booleano y este es distinto de cero devolvera true en otro caso devolvera false. indicar el error.

◆ getCustom() [1/2]

void* anna::Variable::getCustom ( )
inlinenoexcept

Devuelve el valor de un elemento definido por el usuario.

250  {
251  verifyMatchType(Type::Custom, ANNA_FILE_LOCATION);
252  return a_value.a_custom;
253  }
Definition: Variable.hpp:42
#define ANNA_FILE_LOCATION
Definition: defines.hpp:23

◆ getCustom() [2/2]

const void* anna::Variable::getCustom ( ) const
inlinenoexcept

Devuelve el valor de un elemento definido por el usuario.

258  {
259  verifyMatchType(Type::Custom, ANNA_FILE_LOCATION);
260  return a_value.a_custom;
261  }
Definition: Variable.hpp:42
#define ANNA_FILE_LOCATION
Definition: defines.hpp:23

◆ getDataBlock()

const DataBlock& anna::Variable::getDataBlock ( ) const
inline

Interpreta el valor asociado a esta variable como un valor bloque de datos.

Warning
No se realiza ninguna comprobacion semantica.
294 { return *a_value.a_dataBlock; }

◆ getDataBlockValue()

const DataBlock& anna::Variable::getDataBlockValue ( ) const
noexcept

Devuelve el bloque de memoria asociado a esta variable.

Returns
Si la variable indicada en el contructor de esta instancia era de type DataBlock devolvera el contenido de esta, en otro caso lanzara una excepcion.

◆ getDouble()

double anna::Variable::getDouble ( ) const
inline

Interpreta el valor asociado a esta variable como un valor en coma flotante de 64 bits

Warning
No se realiza ninguna comprobacion semantica.
306 { return *a_value.a_double; }
Here is the call graph for this function:

◆ getDoubleValue()

double anna::Variable::getDoubleValue ( ) const
noexcept

Devuelve el valor numerico asociado a esta variable.

Returns
Si la variable indicada en el contructor de esta instancia puede interpretarse como un entero en coma flotante devolvera su contenido, en otro caso lanzara una excepcion para indicar el error.

◆ getFloat()

float anna::Variable::getFloat ( ) const
inline

Interpreta el valor asociado a esta variable como un valor en coma flotante de 32 bits

Warning
No se realiza ninguna comprobacion semantica.
300 { return *a_value.a_float; }

◆ getFloatValue()

float anna::Variable::getFloatValue ( ) const
noexcept

Devuelve el valor numerico asociado a esta variable.

Returns
Si la variable indicada en el contructor de esta instancia puede interpretarse como un entero en coma flotante devolvera su contenido, en otro caso lanzara una excepcion para indicar el error.

◆ getInteger()

int anna::Variable::getInteger ( ) const
inline

Interpreta el valor asociado a esta variable como un valor entero.

Warning
No se realiza ninguna comprobacion semantica.
276 { return *a_value.a_integer; }

◆ getInteger64()

S64 anna::Variable::getInteger64 ( ) const
inline

Interpreta el valor asociado a esta variable como un valor entero largo.

Warning
No se realiza ninguna comprobacion semantica.
282 { return *a_value.a_longInteger; }

◆ getInteger64Value()

S64 anna::Variable::getInteger64Value ( ) const
noexcept

Devuelve el valor numerico asociado a esta variable.

Returns
Si la variable indicada en el contructor de esta instancia puede interpretarse como un entero de 64 bits devolvera su contenido, en otro caso lanzara una excepcion para indicar el error.

◆ getIntegerValue()

int anna::Variable::getIntegerValue ( ) const
noexcept

Devuelve el valor numerico asociado a esta variable.

Returns
Si la variable indicada en el contructor de esta instancia puede interpretarse como un entero de 32 bits devolvera su contenido, en otro caso lanzara una excepcion para indicar el error.

◆ getName()

const char* anna::Variable::getName ( ) const
inline

Devuelve el nombre logico asociado a esta variable.

Returns
Nombre logico asociado a esta variable.
189 { return a_name.c_str(); }

◆ getNullIndicator()

bool* anna::Variable::getNullIndicator ( )
inlineprotected

Devuelve la referencia a la variable que controla el indicador de nulo de esta variable.

Returns
La referencia a la variable que controla el indicador de nulo de esta variable.
457 { return &a_isNull; }

◆ getReference()

void* anna::Variable::getReference ( ) const
protected

Devuelve la direccion de memoria de la variable C++ a sociada a esta variable logica.

Returns
La direccion de memoria de la variable C++ a sociada a esta variable logica.
Warning
La forma de interpretar este valor dependera del tipo de dato (ver #Type) asociado Devuelve la referencia a memoria de esta variable.

◆ getStringValue()

const char* anna::Variable::getStringValue ( ) const
noexcept

Devuelve el valor alfabetico asociado a esta variable.

Returns
Si la variable indicada en el contructor de esta instancia puede interpretarse como una string devolvera su contenido, en otro caso lanzara una excepcion para indicar el error.

◆ getType()

Type::_v anna::Variable::getType ( ) const
inline

Devuelve el tipo del dato al que recubre esta variable.

Returns
El tipo del dato al que recubre esta variable.
183 { return a_type; }

◆ isEqual()

bool anna::Variable::isEqual ( const Variable right) const
inline
Returns
true si la variable recibida tiene el mismo nombre que esta instancia o false en otro caso.
427 { return a_name == right.a_name; }
Here is the call graph for this function:

◆ isNull()

bool anna::Variable::isNull ( ) const
inline

Devuelve false si esta marcado como nulo o true en otro caso.

Returns
false si esta marcado como nulo o true en otro caso.
195 { return a_isNull; }
Here is the call graph for this function:

◆ setBoolean()

void anna::Variable::setBoolean ( const bool  value)
inline

Establece el valor asociado a esta variable como un valor booleano.

Warning
No se realiza ninguna comprobacion semantica.
403 { *a_value.a_boolean = value; a_isNull = false; }

◆ setCharPointer()

void anna::Variable::setCharPointer ( const char *  value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

◆ setCustom()

void anna::Variable::setCustom ( void *  value)
inlinenoexcept

Devuelve el valor de un elemento definido por el usuario.

266  {
267  verifyMatchType(Type::Custom, ANNA_FILE_LOCATION);
268  a_isNull = (value == NULL);
269  a_value.a_custom = value;
270  }
Definition: Variable.hpp:42
#define ANNA_FILE_LOCATION
Definition: defines.hpp:23

◆ setDataBlock()

void anna::Variable::setDataBlock ( const DataBlock value)
inline

Interpreta el valor asociado a esta variable como un valor bloque de datos.

Warning
No se realiza ninguna comprobacion semantica.
409 { *a_value.a_dataBlock = value; a_isNull = false; }

◆ setDouble()

void anna::Variable::setDouble ( const double  value)
inline

Interpreta el valor asociado a esta variable como número en coma flotante.

Warning
No se realiza ninguna comprobacion semantica.
421 { *a_value.a_double = value; a_isNull = false; }

◆ setFloat()

void anna::Variable::setFloat ( const float  value)
inline

Interpreta el valor asociado a esta variable como número en coma flotante.

Warning
No se realiza ninguna comprobacion semantica.
415 { *a_value.a_float = value; a_isNull = false; }

◆ setInteger()

void anna::Variable::setInteger ( const int  value)
inline

Establece el valor asociado a esta variable como un valor entero.

Warning
No se realiza ninguna comprobacion semantica.
391 { *a_value.a_integer = value; a_isNull = false; }

◆ setLong()

void anna::Variable::setLong ( const S64  value)
inline

Establece el valor asociado a esta variable como un valor entero largo.

Warning
No se realiza ninguna comprobacion semantica.
397 { *a_value.a_longInteger = value; a_isNull = false; }

◆ setNull()

void anna::Variable::setNull ( const bool  isNull = true)
inline

Marca/Desmarca la variable como nula.

Parameters
isNullIndica la nueva marca de la variable.
385 { a_isNull = isNull; }
bool isNull() const
Definition: Variable.hpp:195
Here is the call graph for this function:

◆ setValue() [1/7]

void anna::Variable::setValue ( const char *  value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

◆ setValue() [2/7]

void anna::Variable::setValue ( const int  value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

◆ setValue() [3/7]

void anna::Variable::setValue ( const S64  value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

◆ setValue() [4/7]

void anna::Variable::setValue ( const bool  value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

◆ setValue() [5/7]

void anna::Variable::setValue ( const DataBlock value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

◆ setValue() [6/7]

void anna::Variable::setValue ( const float  value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

◆ setValue() [7/7]

void anna::Variable::setValue ( const double  value)
noexcept

Establece el valor de la variable a la que recubre. Si la variable estaba marcada como nula la desmarca. Si el type de dato que deseamos establecer no coincide con el type de dato indicado al crear esta variable devolvera una excepcion de ejecucion indicado la anomalia.

Parameters
valueValor que tomara la variable a la que recubre este variable.

Member Data Documentation

◆ a_boolean

bool* anna::Variable::a_boolean

◆ a_custom

void* anna::Variable::a_custom

◆ a_dataBlock

DataBlock* anna::Variable::a_dataBlock

◆ a_double

double* anna::Variable::a_double

◆ a_float

float* anna::Variable::a_float

◆ a_integer

int* anna::Variable::a_integer

◆ a_longInteger

S64* anna::Variable::a_longInteger

◆ a_string

std::string* anna::Variable::a_string

◆ boolean

bool anna::Variable::boolean

◆ integer

int anna::Variable::integer

◆ longInteger

S64 anna::Variable::longInteger

◆ theDouble

double anna::Variable::theDouble

◆ theFloat

float anna::Variable::theFloat

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