00001 #ifndef __VARIABLE_H__
00002 #define __VARIABLE_H__
00003
00004 #include "Common/CommonDll.h"
00005 #include "Common/Types.h"
00006 #include "Common/List.h"
00007
00008
00009 typedef enum _KCVARIABLETYPE
00010 {
00011 KCVT_NONE,
00012 KCVT_STRING,
00013 KCVT_INTEGER,
00014 KCVT_FLOAT
00015 } KCVARIABLETYPE;
00016
00017
00018 class COMMON_API KVariable
00019 {
00020 private:
00021 KStr m_sName;
00022 KCVARIABLETYPE m_Type;
00023
00024 KStr m_sString;
00025 s32 m_Integer;
00026 float m_Float;
00027
00028 public:
00029 KVariable()
00030 {
00031 m_Type = KCVT_NONE;
00032 m_Integer = 0;
00033 m_Float = 0.0f;
00034 }
00035
00036 KVariable( KStr sName, KStr sString )
00037 {
00038 m_Type = KCVT_STRING;
00039 m_sString = sString;
00040 m_Integer = 0;
00041 m_Float = 0.0f;
00042 }
00043
00044 KVariable( KStr sName, s32 Value )
00045 {
00046 m_Type = KCVT_INTEGER;
00047 m_Integer = Value;
00048 m_Float = 0.0f;
00049 }
00050
00051 KVariable( KStr sName, float Value )
00052 {
00053 m_Type = KCVT_FLOAT;
00054 m_Integer = 0;
00055 m_Float = Value;
00056 }
00057
00058 KStr GetsName() { return m_sName; }
00059 KCVARIABLETYPE GetType() { return m_Type; }
00060 KStr GetString() { return m_sString; }
00061 s32 GetInteger() { return m_Integer; }
00062 float GetFloat() { return m_Float; }
00063 };
00064
00065
00066 class COMMON_API KVariableList
00067 {
00068 private:
00069 KList<KVariable*> m_VariableList;
00070
00071 protected:
00072 KVariable* GetpVariable( KStr sName );
00073
00074 public:
00075 KVariableList();
00076 ~KVariableList();
00077
00078 void RegisterVariable( KStr sName, KStr sString );
00079 void RegisterVariable( KStr sName, s32 Value );
00080 void RegisterVariable( KStr sName, float Value );
00081 void UnregisterVariable( KStr sName );
00082
00083 KStr GetString( KStr sName );
00084 s32 GetInteger( KStr sName );
00085 float GetFloat( KStr sName );
00086 };
00087
00088 #endif __VARIABLE_H__