// __author__ = Juan Carlos De Abreu (jcabreur@gmail.com)
//
// This file define an inherent class IData that allow have float values.

#ifndef DATA_FLOAT_H__
#define DATA_FLOAT_H__
 
#include "Data.h"

BEGIN_TEG_NAMESPACE();

class DataFloat : public IData {
public:
  // Attributes.
  float value;

public:
  // DataFloat constructor.
  DataFloat(const float& _value = 0.0f);

  // DataFloat destructor.
  ~DataFloat();

  // Methods.
  AUTO_SIZE();
  void print(void);
  SmartPointer<IData> resolve(
      std::map<std::string, SmartPointer<IData>>& variables);
};

SmartPointer<IData> newData(const float& t);
SmartPointer<DataFloat> castToFloat(SmartPointer<IData> d);

END_TEG_NAMESPACE();

#endif  // DATA_FLOAT_H__
