00001 #ifndef SCRIPTVALUE_H_ 00002 #define SCRIPTVALUE_H_ 00003 00004 #include <vector> 00005 #include <string> 00006 00007 namespace scripts 00008 { 00009 // value class for a script parameter 00010 class ScriptValue 00011 { 00012 private: 00013 00014 std::string _id; 00015 00016 std::size_t _offset; 00017 00018 int _type; 00019 00020 public: 00021 00022 ScriptValue (const std::string& id, const std::size_t offset, int type) : 00023 _id(id), _offset(offset), _type(type) 00024 { 00025 } 00026 00027 ScriptValue () 00028 { 00029 } 00030 00031 const std::string& getID () const 00032 { 00033 return _id; 00034 } 00035 00036 const std::size_t getOffset () const 00037 { 00038 return _offset; 00039 } 00040 00041 const int getType () const 00042 { 00043 return _type; 00044 } 00045 }; 00046 00047 // Container for script parameters 00048 class ScriptValues 00049 { 00050 public: 00051 00052 typedef std::vector<ScriptValue> ScriptValueVector; 00053 00054 typedef ScriptValueVector::const_iterator ScriptValueVectorConstIterator; 00055 00056 private: 00057 00058 ScriptValueVector _scriptValues; 00059 00060 public: 00061 00062 ScriptValues (); 00063 00064 virtual ~ScriptValues (); 00065 00066 ScriptValueVector getScriptValues (); 00067 00068 void addScriptValue (ScriptValue value); 00069 00070 ScriptValueVectorConstIterator end () const; 00071 00072 ScriptValueVectorConstIterator begin () const; 00073 00074 std::size_t size () const; 00075 }; 00076 } 00077 00078 #endif /* SCRIPTVALUE_H_ */