00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __IUTIL_CFGMGR_H__
00020 #define __IUTIL_CFGMGR_H__
00021
00022 #include "csutil/scf.h"
00023 #include "iutil/cfgfile.h"
00024
00025 SCF_VERSION(iConfigManager, 0, 0, 1);
00026
00061 struct iConfigManager : public iConfigFile
00062 {
00063 enum
00064 {
00065 PriorityMin = -1000000000,
00066 PriorityVeryLow = -100,
00067 PriorityLow = -50,
00068 PriorityMedium = 0,
00069 PriorityHigh = +50,
00070 PriorityVeryHigh = +100,
00071 PriorityMax = +1000000000
00072 };
00073
00075 enum
00076 {
00077
00078 ConfigPriorityPlugin = PriorityVeryLow,
00079
00080 ConfigPriorityApplication = PriorityLow,
00081
00082 ConfigPriorityUserGlobal = PriorityMedium,
00083
00084 ConfigPriorityUserApp = PriorityHigh,
00085
00086 ConfigPriorityCmdLine = PriorityVeryHigh
00087 };
00088
00090 virtual void AddDomain(iConfigFile*, int priority) = 0;
00095 virtual iConfigFile *AddDomain(char const* path, iVFS*, int priority) = 0;
00097 virtual void RemoveDomain(iConfigFile*) = 0;
00099 virtual void RemoveDomain(char const* path) = 0;
00101 virtual iConfigFile* LookupDomain(char const* path) const = 0;
00103 virtual void SetDomainPriority(char const* path, int priority) = 0;
00105 virtual void SetDomainPriority(iConfigFile*, int priority) = 0;
00107 virtual int GetDomainPriority(char const* path) const = 0;
00109 virtual int GetDomainPriority(iConfigFile*) const = 0;
00110
00115 virtual bool SetDynamicDomain(iConfigFile*) = 0;
00117 virtual iConfigFile *GetDynamicDomain() const = 0;
00119 virtual void SetDynamicDomainPriority(int priority) = 0;
00121 virtual int GetDynamicDomainPriority() const = 0;
00122
00124 virtual void FlushRemoved() = 0;
00125 };
00126
00127 #endif // __IUTIL_CFGMGR_H__