+++ /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_LongBlock_hpp
-#define anna_dbms_LongBlock_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.
-
- A diferencia del tipo de datos ShortBlock, en principio, no tiene ninguna limitacion
- en cuanto a la longitud del campo que vamos a tratar. Por contra, dependiendo del motor
- de base de datos que vayamos a usar puede tener un tratamiento especial a la hora de
- grabarlo en la base de datos.
-
- \see ShortBlock
-*/
-class LongBlock : public Data {
-public:
- /**
- Constructor.
- \param isNulleable Indica si el dato puede tomar valores nulos.
- */
- explicit LongBlock(const bool isNulleable = false) :
- Data(Type::LongBlock, 0, isNulleable),
- a_value(true) {
- Data::setBuffer((void*) NULL);
- }
-
- /**
- Constructor copia.
- \param other Instancia de la que copiar.
- */
- LongBlock(const LongBlock& other) :
- Data(other),
- a_value(true) {
- a_value = other.a_value;
- }
-
- /**
- Destructor.
- */
- virtual ~LongBlock() {;}
-
- /**
- 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; }
-
- /**
- 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.
- */
- anna::DataBlock& getValue() throw() { return a_value; }
-
- /**
- Operador de asignacin.
- \param other Bloque del que copiar.
- \return La instancia de este bloque de memoria.
- */
- LongBlock& operator = (const LongBlock& other) throw(RuntimeException);
-
- /**
- Operador de asignacin.
- \param value Valor que queremos a asignar.
- \return La instancia de esta cadena.
- */
- LongBlock& 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;
-
- void do_clear() throw() { a_value.clear(); }
-};
-
-}
-}
-
-#endif
-