00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00022
00023
00024
00025
00026 #ifndef SCALAR_INCLUDED
00027 #define SCALAR_INCLUDED
00028
00029 #include "Variable.h"
00031
00034 class Scalar : public Variable{
00035 private:
00037 Data* _val;
00038
00039 public:
00040
00041
00042
00043 Scalar(const std::string & name) : Variable(name) { }
00044 Scalar(const std::string & name,const short valueType,const std::string & value) : Variable(name,valueType){ if(valueType != ANY) set(valueType,value);}
00045
00046 ~Scalar(){
00047 if(_valueType != ANY) delete _val;
00048 }
00049
00050 Scalar(const Scalar& s) : Variable(s._name,s._valueType),_val(s._val->clone()) { }
00051
00052
00053
00054
00055 Scalar& operator= (const Scalar& s);
00056
00057
00058
00059 const std::string get( void ) const;
00060 const std::string getValueType() const;
00061 const std::string getVariableType() const { return "Scalar"; }
00062
00063
00064
00065
00066 void set(const short valueType,const std::string value);
00067
00068
00069
00070
00071 friend bool operator==(const Scalar& a, const Scalar& b);
00072 friend bool operator<(const Scalar& a,const Scalar& b);
00073
00074 };
00075
00076 std::ostream& operator<<(std::ostream& out,const Scalar& var);
00077
00078 #endif
00079