//------------------------------------------------------------------------------ /* Copyright (c) 2011-2013, OpenCoin, Inc. */ //============================================================================== #ifndef SCRIPT_DATA_H #define SCRIPT_DATA_H namespace Script { class Data { public: typedef boost::shared_ptr pointer; virtual ~Data () { ; } virtual bool isInt32 () { return (false); } virtual bool isFloat () { return (false); } virtual bool isUint160 () { return (false); } virtual bool isError () { return (false); } virtual bool isTrue () { return (false); } virtual bool isBool () { return (false); } //virtual bool isBlockEnd(){ return(false); } virtual int getInt () { return (0); } virtual float getFloat () { return (0); } virtual uint160 getUint160 () { return (0); } //virtual bool isCurrency(){ return(false); } }; class IntData : public Data { int mValue; public: IntData (int value) { mValue = value; } bool isInt32 () { return (true); } int getInt () { return (mValue); } float getFloat () { return ((float)mValue); } bool isTrue () { return (mValue != 0); } }; class FloatData : public Data { float mValue; public: FloatData (float value) { mValue = value; } bool isFloat () { return (true); } float getFloat () { return (mValue); } bool isTrue () { return (mValue != 0); } }; class Uint160Data : public Data { uint160 mValue; public: Uint160Data (uint160 value) : mValue (value) { ; } bool isUint160 () { return (true); } uint160 getUint160 () { return (mValue); } }; class BoolData : public Data { bool mValue; public: BoolData (bool value) { mValue = value; } bool isBool () { return (true); } bool isTrue () { return (mValue); } }; class ErrorData : public Data { public: bool isError () { return (true); } }; class BlockEndData : public Data { public: bool isBlockEnd () { return (true); } }; } #endif // vim:ts=4