00001 //============================================================================= 00002 // filename: RmVariableManager.h 00003 // 00004 // ATI Research, Inc. 00005 // 3D Application Research Group 00006 // 00007 // description: definition for a predefined variable manager, to 00008 // help centralize the organization of predefined variables. 00009 // 00010 //============================================================================= 00011 // (C) 2004 ATI Research, Inc. All rights reserved. 00012 //============================================================================= 00013 00014 #ifndef _RM_CORE_VARIABLE_MANAGER_H_ 00015 #define _RM_CORE_VARIABLE_MANAGER_H_ 00016 00017 #include <Core/RmTypes.h> 00018 #include <Core/RmLinkedList.h> 00019 00020 //============================================================================= 00027 //============================================================================= 00028 typedef struct 00029 { 00030 RmStringT strVariableType; 00031 RmStringT strVariableName; 00032 RmStringT strVariableUpdate; 00033 RmStringT strVariableSemantic; 00034 00035 } RmVariableItem; 00036 00037 //============================================================================= 00038 // RmVariableList holds a list of RmVariableItems 00039 //============================================================================= 00040 typedef RmLinkedList<RmVariableItem> RmVariableList; 00041 00042 //============================================================================= 00048 //============================================================================= 00049 class RM_API IRmVariableManager 00050 { 00051 public: 00052 //-------------------------------------------------------------------------- 00056 //-------------------------------------------------------------------------- 00057 IRmVariableManager(); 00058 00059 //-------------------------------------------------------------------------- 00063 //-------------------------------------------------------------------------- 00064 virtual ~IRmVariableManager(); 00065 00066 public: 00067 //-------------------------------------------------------------------------- 00074 //-------------------------------------------------------------------------- 00075 virtual bool LoadVariables( RM_TCHAR *pStrFileName ) = 0; 00076 00077 //-------------------------------------------------------------------------- 00083 //-------------------------------------------------------------------------- 00084 virtual bool ClearVariables() = 0; 00085 00086 //-------------------------------------------------------------------------- 00092 //-------------------------------------------------------------------------- 00093 virtual RmVariableItem* IsDefinedVariable( RmNode *pNode ) = 0; 00094 00095 //-------------------------------------------------------------------------- 00101 //-------------------------------------------------------------------------- 00102 virtual RmVariableItem* IsDefinedVariable( RmVariableItem *pVariableItem ) = 0; 00103 00104 //-------------------------------------------------------------------------- 00111 //-------------------------------------------------------------------------- 00112 virtual RmVariableList* GetVariableList( const RM_TCHAR *pStrVariableType ) = 0; 00113 00114 //-------------------------------------------------------------------------- 00121 //-------------------------------------------------------------------------- 00122 virtual bool DeleteVariableList( RmVariableList *pVariableList ) = 0; 00123 00124 //-------------------------------------------------------------------------- 00131 //-------------------------------------------------------------------------- 00132 virtual bool AddVariable( RmVariableItem *pVariableItem ) = 0; 00133 00134 //-------------------------------------------------------------------------- 00141 //-------------------------------------------------------------------------- 00142 virtual bool RemoveVariable( RmVariableItem *pVariableItem ) = 0; 00143 00144 }; // class IRmVariableManager; 00145 00146 #endif
1.3.6