00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IUTIL_CFGMGR_H__
00020 #define __CS_IUTIL_CFGMGR_H__
00021
00026 #include "csutil/scf.h"
00027 #include "iutil/cfgfile.h"
00028
00029 SCF_VERSION(iConfigManager, 0, 0, 3);
00030
00065 struct iConfigManager : public iConfigFile
00066 {
00067 enum
00068 {
00069 PriorityMin = -1000000000,
00070 PriorityVeryLow = -100,
00071 PriorityLow = -50,
00072 PriorityMedium = 0,
00073 PriorityHigh = 50,
00074 PriorityVeryHigh = 100,
00075 PriorityMax = 1000000000
00076 };
00077
00079 enum
00080 {
00081
00082 ConfigPriorityPlugin = PriorityVeryLow,
00083
00084 ConfigPriorityApplication = PriorityLow,
00085
00086 ConfigPriorityUserGlobal = PriorityMedium,
00087
00088 ConfigPriorityUserApp = PriorityHigh,
00089
00090 ConfigPriorityCmdLine = PriorityVeryHigh
00091 };
00092
00094 virtual void AddDomain(iConfigFile*, int priority) = 0;
00099 virtual iConfigFile *AddDomain(char const* path, iVFS*, int priority) = 0;
00101 virtual void RemoveDomain(iConfigFile*) = 0;
00103 virtual void RemoveDomain(char const* path) = 0;
00105 virtual iConfigFile* LookupDomain(char const* path) const = 0;
00107 virtual void SetDomainPriority(char const* path, int priority) = 0;
00109 virtual void SetDomainPriority(iConfigFile*, int priority) = 0;
00111 virtual int GetDomainPriority(char const* path) const = 0;
00113 virtual int GetDomainPriority(iConfigFile*) const = 0;
00114
00119 virtual bool SetDynamicDomain(iConfigFile*) = 0;
00121 virtual iConfigFile *GetDynamicDomain() const = 0;
00123 virtual void SetDynamicDomainPriority(int priority) = 0;
00125 virtual int GetDynamicDomainPriority() const = 0;
00126
00128 virtual void FlushRemoved() = 0;
00129 };
00132 #endif // __CS_IUTIL_CFGMGR_H__