00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CMD_Variable_h__
00021 #define __CMD_Variable_h__
00022
00023 #include "CMD_API.h"
00024 #include "CMD_SymbolList.h"
00025 #include <UT/UT_Functor.h>
00026
00027 class CMD_Variable;
00028
00029 class CMD_API CMD_VariableTable : public CMD_SymbolList
00030 {
00031 public:
00032 CMD_VariableTable();
00033 virtual ~CMD_VariableTable();
00034
00035 bool hasVariable(const char *name)
00036 { return hasValue(name); }
00037
00038 bool getVariable(const char *name, UT_String &value)
00039 { return getValue(name, value); }
00040 bool getVariable(const char *name, float &value)
00041 { return getValue(name, value); }
00042 bool getVariable(const char *name, int &value)
00043 { return getValue(name, value); }
00044
00045 void setVariable(const char *name, const char *value,
00046 bool xport = true)
00047 { setValue(name, value, xport); }
00048
00049 int destroyVariable(const char *name)
00050 {
00051 return destroySymbol(name);
00052 }
00053 int getVariableNames(UT_StringArray &nameList,
00054 int dirty=0);
00055 int clearDirtyFlags();
00056
00057 virtual int destroySymbol(const char *name);
00058
00059 private:
00060 CMD_SymbolEntry *createEntry(const char *name, const char *value,
00061 bool export_var);
00062
00063 void save(CMD_Manager *, ostream &, const char *loc="");
00064 friend class CMD_Manager;
00065
00066 private:
00067 int myExportFlag;
00068 };
00069
00070 #endif