--- /dev/null
+// ANNA - Anna is Not Nothingness Anymore //
+// //
+// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
+// //
+// See project site at http://redmine.teslayout.com/projects/anna-suite //
+// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
+
+
+#ifndef anna_dbms_ShortBlock_hpp
+#define anna_dbms_ShortBlock_hpp
+
+#include <string>
+
+#include <anna/core/RuntimeException.hpp>
+#include <anna/core/DataBlock.hpp>
+
+#include <anna/dbms/Data.hpp>
+
+namespace anna {
+
+namespace dbms {
+
+/**
+ Bloque de datos usado como entrada y/o salida de las sentencias SQL.
+
+ La longitud del dato a tratar estara en 2048 y 4096 bytes, dependiendo
+ del RDBMS concreto con el que estemos trabajando.
+
+ \see LongBlock
+*/
+class ShortBlock : public Data {
+public:
+ /**
+
+ Constructor.
+ \param maxSize Tamao maximo que puede tener este bloque.
+ \param isNulleable Indica si el dato puede tomar valores nulos.
+ */
+ explicit ShortBlock(const int maxSize, const bool isNulleable = false) :
+ Data(Type::ShortBlock, maxSize, isNulleable),
+ a_value(true) {
+ a_value.allocate(maxSize);
+ Data::setBuffer((void*) a_value.getData());
+ }
+
+ /**
+ Constructor copia.
+ \param other Instancia de la que copiar.
+ */
+ ShortBlock(const ShortBlock& other) :
+ Data(other),
+ a_value(true) {
+ a_value = other.a_value;
+ Data::setBuffer((void*) a_value.getData());
+ }
+
+ /**
+ Destructor.
+ */
+ virtual ~ShortBlock() {;}
+
+ /**
+ Devuelve el tamao actual de este dato.
+ \return El tamao actual de este dato.
+ */
+ int getSize() const throw() { return a_value.getSize(); }
+
+ /**
+ Devuelve el contenido de la este bloque de memoria.
+ \return Devuelve el contenido de la este bloque de memoria.
+ \warning Si el metodo Data::isNull devolvio \em true el resultado de este metodo no esta definido.
+ */
+ const anna::DataBlock& getValue() const throw() { return a_value; }
+
+ /**
+ Operador de asignacin.
+ \param other Bloque del que copiar.
+ \return La instancia de este bloque de memoria.
+ */
+ ShortBlock& operator = (const ShortBlock& other) throw(RuntimeException);
+
+ /**
+ Operador de asignacin.
+ \param value Valor que queremos a asignar.
+ \return La instancia de esta cadena.
+ */
+ ShortBlock& operator = (const anna::DataBlock& value) throw(RuntimeException);
+
+ /**
+ Operador de conversion.
+ \return El anna::DataBlock asociado a esta instancia.
+ */
+ operator anna::DataBlock& () throw() { return a_value; }
+
+ /**
+ Operador de conversion.
+ \return El anna::DataBlock asociado a esta instancia.
+ */
+ operator const anna::DataBlock& () const throw() { return a_value; }
+
+ /**
+ Devuelve una cadena con la informacion referente a esta instancia.
+ \return Una cadena con la informacion referente a esta instancia.
+ */
+ std::string asString() const throw();
+
+protected:
+ anna::DataBlock a_value;
+};
+
+}
+}
+
+#endif
+