+++ /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_Float_hpp
-#define anna_dbms_Float_hpp
-
-#include <anna/core/RuntimeException.hpp>
-
-#include <anna/dbms/Data.hpp>
-
-namespace anna {
-
-namespace dbms {
-
-/**
- Numero en coma flotante usado como entrada y/o salida de las sentencias SQL.
-*/
-class Float : public Data {
-public:
- /**
- Constructor.
- \param isNulleable Indica si el dato puede tomar valores nulos.
- \para format Indica el indicador de formato para pasar de cadena a numero. Usa la misma nomenclatura
- que printf, scanf, etc. Su uso dependerá del gestor de base de datos usado.
- */
- explicit Float(const bool isNulleable = false, const char* format = "%f") :
- Data(Type::Float, sizeof(float), isNulleable),
- a_format(format),
- a_value(0.0) {
- Data::setBuffer(&a_value);
- }
-
- /**
- Constructor copia.
- \param other Instancia de la que copiar.
- */
- Float(const Float& other) : Data(other), a_value(other.a_value), a_format(other.a_format) {
- Data::setBuffer(&a_value);
- }
-
- /**
- * Metodo obsoleto, debería usar #getValue.
- Devuelve el contenido del campo de tipo Float.
- \return el contenido del campo de tipo Float.
- \warning Si el metodo Data::isNull devolvio \em true el resultado de este metodo no esta definido.
- */
- //float getFloatValue () const throw () { return getValue (); }
-
- /**
- * Devuelve el valor asociado a este campo.
- * \return Devuelve el valor asociado a este campo.
- */
- float getValue() const throw() { return a_value; }
-
- /**
- * Devuelve el formato que indica la forma en la que el número será representado sobre
- * una cadena, en caso de que fuera necesario.
- */
- const char* getFormat() const throw() { return a_format; }
-
- /**
- Operador de copia.
- \param other Float del que copiar.
- \return La instancia de esta cadena.
- */
- Float& operator = (const Float& other) throw(RuntimeException) {
- if(this != &other) {
- setNull(other.isNull());
- a_value = other.a_value;
- }
-
- return *this;
- }
-
- /**
- Operador de asignacion.
- \param value Float del que copiar.
- \return La instancia de esta cadena.
- */
- Float& operator = (const float value) throw(RuntimeException) {
- a_value = value;
- setNull(false);
- return *this;
- }
-
- /**
- Operador de conversion.
- \warning Si la columna asociada tiene un valor NULL, devolvera 0.0.
- \return El contenido de esta cadena.
- */
- operator float() const throw() { return getValue(); }
-
- /**
- 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();
-
-private:
- float a_value;
- const char* a_format;
-
- void do_clear() throw() { a_value = 0.0; }
-};
-
-}
-}
-
-#endif
-