--- a/src/conftree.h
+++ b/src/conftree.h
@@ -74,11 +74,12 @@
/** Internal class used for storing presentation information */
class ConfLine {
public:
- enum Kind {CFL_COMMENT, CFL_SK, CFL_VAR};
+ enum Kind {CFL_COMMENT, CFL_SK, CFL_VAR, CFL_VARCOMMENT};
Kind m_kind;
string m_data;
- ConfLine(Kind k, const string& d)
- : m_kind(k), m_data(d) {
+ string m_aux;
+ ConfLine(Kind k, const string& d, string a = string())
+ : m_kind(k), m_data(d), m_aux(a) {
}
bool operator==(const ConfLine& o) {
return o.m_kind == m_kind && o.m_data == m_data;
@@ -239,10 +240,14 @@
virtual vector<string> getSubKeys(bool) const {
return getSubKeys();
}
+ virtual vector<string> getSubKeys() const;
+
+ /** Return subkeys in file order. BEWARE: only for the original from the
+ * file: the data is not duplicated to further copies */
virtual vector<string> getSubKeys_unsorted(bool = false) const {
return m_subkeys_unsorted;
}
- virtual vector<string> getSubKeys() const;
+
/** Test for subkey existence */
virtual bool hasSubKey(const string& sk) const {
return m_submaps.find(sk) != m_submaps.end();
@@ -252,6 +257,13 @@
return m_filename;
}
+ /** Used with config files with specially formatted, xml-like comments.
+ * Extract the comments as text */
+ virtual bool commentsAsXML(ostream& out);
+
+ /** !! Note that assignment and copy constructor do not copy the
+ auxiliary data (m_order and subkeys_unsorted). */
+
/**
* Copy constructor. Expensive but less so than a full rebuild
*/
@@ -352,6 +364,7 @@
* @return 0 if name not found, 1 else
*/
virtual int get(const string& name, string& value, const string& sk) const;
+ using ConfSimple::get;
};
/**