00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00027 #ifndef LIMAL_CA_CONFIG_HPP
00028 #define LIMAL_CA_CONFIG_HPP
00029
00030 #include <limal/ca-mgm/config.h>
00031 #include <limal/ca-mgm/CommonData.hpp>
00032 #include <blocxx/COWIntrusiveReference.hpp>
00033
00034
00035 namespace LIMAL_NAMESPACE
00036 {
00037 namespace CA_MGM_NAMESPACE
00038 {
00039
00040 class CAConfigImpl;
00041
00045 class CAConfig
00046 {
00047 public:
00048
00052 CAConfig(const String &file);
00053 ~CAConfig();
00054
00058 void
00059 setValue(const String §ion, const String &key, const String &value);
00060
00064 void
00065 deleteValue(const String §ion, const String &key);
00066
00070 String
00071 getValue(const String §ion, const String &key) const;
00072
00076 bool
00077 exists(const String §ion, const String &key) const;
00078
00082 blocxx::List<blocxx::String>
00083 getKeylist(const String §ion) const;
00084
00089 void
00090 copySection(const String &srcSection, const String &destSection);
00091
00097 CAConfig*
00098 clone(const String &file);
00099
00103 String
00104 filename() const;
00105
00106 void dump();
00107
00108
00109 private:
00110 blocxx::COWIntrusiveReference<CAConfigImpl> m_impl;
00111
00112 CAConfig();
00113 CAConfig(const CAConfig&);
00114 CAConfig& operator=(const CAConfig&);
00115
00116 class CASection;
00117 void dumpTree(CASection *section, int level = 0);
00118
00123 void validateAndFix();
00124 };
00125
00126 }
00127 }
00128
00129 #endif //LIMAL_CA_CONFIG_HPP