2 * Copyright (C) 2008 Patrick Ohly
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef INCL_EVOLUTION_FILE_CONFIG_TREE
20 # define INCL_EVOLUTION_FILE_CONFIG_TREE
22 #include <ConfigTree.h>
29 * This implementation maps nodes to plain .ini style files below an
30 * absolute directory of the filesystem. The caller is responsible for
31 * choosing that directory and how hidden and user-visible files are
34 class FileConfigTree : public ConfigTree {
37 * @param root absolute filesystem path
38 * @param oldLayout use file names as in SyncEvolution <= 0.7
40 FileConfigTree(const string &root,
44 virtual string getRootPath() const;
47 virtual boost::shared_ptr<ConfigNode> open(const string &path,
49 const string &otherId = string(""));
50 list<string> getChildren(const string &path);
54 const bool m_oldLayout;
56 typedef map< string, boost::shared_ptr<ConfigNode> > NodeCache_t;
57 /** cache of all nodes ever accessed */