1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_dbms_ShortBlock_hpp
10 #define anna_dbms_ShortBlock_hpp
14 #include <anna/core/RuntimeException.hpp>
15 #include <anna/core/DataBlock.hpp>
17 #include <anna/dbms/Data.hpp>
24 Bloque de datos usado como entrada y/o salida de las sentencias SQL.
26 La longitud del dato a tratar estara en 2048 y 4096 bytes, dependiendo
27 del RDBMS concreto con el que estemos trabajando.
31 class ShortBlock : public Data {
36 \param maxSize Tamao maximo que puede tener este bloque.
37 \param isNulleable Indica si el dato puede tomar valores nulos.
39 explicit ShortBlock(const int maxSize, const bool isNulleable = false) :
40 Data(Type::ShortBlock, maxSize, isNulleable),
42 a_value.allocate(maxSize);
43 Data::setBuffer((void*) a_value.getData());
48 \param other Instancia de la que copiar.
50 ShortBlock(const ShortBlock& other) :
53 a_value = other.a_value;
54 Data::setBuffer((void*) a_value.getData());
60 virtual ~ShortBlock() {;}
63 Devuelve el tamao actual de este dato.
64 \return El tamao actual de este dato.
66 int getSize() const { return a_value.getSize(); }
69 Devuelve el contenido de la este bloque de memoria.
70 \return Devuelve el contenido de la este bloque de memoria.
71 \warning Si el metodo Data::isNull devolvio \em true el resultado de este metodo no esta definido.
73 const anna::DataBlock& getValue() const { return a_value; }
76 Operador de asignacin.
77 \param other Bloque del que copiar.
78 \return La instancia de este bloque de memoria.
80 ShortBlock& operator = (const ShortBlock& other) noexcept(false);
83 Operador de asignacin.
84 \param value Valor que queremos a asignar.
85 \return La instancia de esta cadena.
87 ShortBlock& operator = (const anna::DataBlock& value) noexcept(false);
90 Operador de conversion.
91 \return El anna::DataBlock asociado a esta instancia.
93 operator anna::DataBlock& () { return a_value; }
96 Operador de conversion.
97 \return El anna::DataBlock asociado a esta instancia.
99 operator const anna::DataBlock& () const { return a_value; }
102 Devuelve una cadena con la informacion referente a esta instancia.
103 \return Una cadena con la informacion referente a esta instancia.
105 std::string asString() const ;
108 anna::DataBlock a_value;