COVISE Core
coConfigRoot.h
Go to the documentation of this file.
1/* This file is part of COVISE.
2
3 You can use it under the terms of the GNU Lesser General Public License
4 version 2.1 or later, see lgpl-2.1.txt.
5
6 * License: LGPL 2+ */
7
8#ifndef COCONFIGROOT_H
9#define COCONFIGROOT_H
10
11#include <QFile>
12#include <QHash>
13#include <QSet>
14
17
18#include <util/coTypes.h>
19
20#ifndef CO_gcc3
21EXPORT_TEMPLATE2(template class CONFIGEXPORT QHash<QString, covise::coConfigEntry *>)
22#endif
23
24namespace covise
25{
26
27class coConfigGroup;
28
30{
31 friend class coConfigXercesRoot;
32
33public:
34 static coConfigRoot *createNew(const QString &name, const QString &filename, bool create = false, coConfigGroup *group = NULL);
35
36 coConfigRoot(const QString &name, const QString &filename, bool create = false, coConfigGroup *group = NULL);
37 virtual ~coConfigRoot();
38
39 virtual coConfigEntryStringList getScopeList(const QString &section = 0,
40 const QString &variableName = 0) const;
41 virtual coConfigEntryStringList getVariableList(const QString &section = 0) const;
42
43 virtual coConfigEntryString getValue(const QString &variable,
44 const QString &section,
45 const QString &defaultValue) const;
46 virtual coConfigEntryString getValue(const QString &variable,
47 const QString &section) const;
48 virtual coConfigEntryString getValue(const QString &simpleVariable) const;
49
50 virtual const char *getEntry(const char *simpleVariable) const;
51
52 virtual bool isOn(const QString &variable, const QString &section, bool defaultValue) const;
53 virtual bool isOn(const QString &variable, const QString &section) const;
54 virtual bool isOn(const QString &simpleVariable, bool defaultValue) const;
55 virtual bool isOn(const QString &simpleVariable) const;
56
57 virtual void setValue(const QString &variable, const QString &value,
58 const QString &section,
59 const QString &targetHost = 0, bool move = false);
60
61 virtual bool deleteValue(const QString &variable, const QString &section,
62 const QString &targetHost = 0);
63
64 virtual bool deleteSection(const QString &section, const QString &targetHost = 0);
65
66 virtual QStringList getHostnameList() const;
67 virtual QString getActiveHost() const;
68 virtual bool setActiveHost(const QString &host);
69 virtual QStringList getClusterList() const;
70 virtual QString getActiveCluster() const;
71 virtual bool setActiveCluster(const QString &master);
72
73 virtual const QString &getConfigName() const;
74
75 virtual void reload();
76 virtual bool save(const QString &filename = QString()) const;
77
78 void setGroup(coConfigGroup *group);
79
80 void setReadOnly(bool ro);
81 bool isReadOnly() const;
82
83 QStringList getHosts();
84 coConfigEntry *getConfigForHost(const QString &hostname);
85 coConfigEntry *getConfigForCluster(const QString &masterhost);
87 {
88 return this->globalConfig;
89 }
90
91 // QHash<QString, coConfigEntry*> getEntryList();
92
93 virtual coConfigRoot *clone() const = 0;
94 virtual void merge(const coConfigRoot *with) = 0;
95
96protected:
97 virtual void load(bool create = false) = 0;
98
99 void init();
100
101 QString findConfigFile(const QString &filename, bool preferGlobal = false);
102
103 void findLocalConfig(const QString &filename, QFile &target);
104 void findGlobalConfig(const QString &filename, QFile &target);
105
106 void clear();
107
109
110 QString filename;
112 QStringList hostnames;
114 QStringList masternames;
115
116 QString configName;
117
121
122 QHash<QString, coConfigEntry *> hostConfigs;
123 QHash<QString, coConfigEntry *> clusterConfigs;
124
125 virtual void createGlobalConfig() = 0;
126 virtual void createHostConfig(const QString &hostname) = 0;
127 virtual void createClusterConfig(const QString &mastername) = 0;
128
129 bool create;
131
132 QSet<QString> included;
133};
134}
135#endif
#define CONFIGEXPORT
Definition: coExport.h:367
#define EXPORT_TEMPLATE2(x, y)
Definition: coExport.h:34
#define NULL
Definition: covise_list.h:22
GLsizei const GLfloat * value
Definition: khronos-glext.h:6760
GLboolean GLuint group
Definition: khronos-glext.h:12389
GLenum GLenum variable
Definition: khronos-glext.h:9990
GLuint const GLchar * name
Definition: khronos-glext.h:6722
GLenum target
Definition: khronos-glext.h:8033
list of all chemical elements
Definition: coConfig.h:27
Definition: coConfigEntry.h:34
Definition: coConfigEntryString.h:24
Definition: coConfigEntryString.h:54
Definition: coConfigGroup.h:26
Definition: coConfigRoot.h:30
virtual void createGlobalConfig()=0
QString activeHostname
Definition: coConfigRoot.h:111
QStringList masternames
Definition: coConfigRoot.h:114
bool create
Definition: coConfigRoot.h:129
QStringList hostnames
Definition: coConfigRoot.h:112
coConfigEntry * hostConfig
Definition: coConfigRoot.h:120
coConfigEntry * globalConfig
Definition: coConfigRoot.h:118
coConfigGroup * group
Definition: coConfigRoot.h:108
bool readOnly
Definition: coConfigRoot.h:130
virtual void createHostConfig(const QString &hostname)=0
QHash< QString, coConfigEntry * > hostConfigs
Definition: coConfigRoot.h:122
QString activeCluster
Definition: coConfigRoot.h:113
QString filename
Definition: coConfigRoot.h:110
virtual void merge(const coConfigRoot *with)=0
coConfigEntry * clusterConfig
Definition: coConfigRoot.h:119
QSet< QString > included
Definition: coConfigRoot.h:132
coConfigEntry * getGlobalConfig()
Definition: coConfigRoot.h:86
virtual void load(bool create=false)=0
virtual coConfigRoot * clone() const =0
QString configName
Definition: coConfigRoot.h:116
virtual void createClusterConfig(const QString &mastername)=0
QHash< QString, coConfigEntry * > clusterConfigs
Definition: coConfigRoot.h:123
Definition: coConfigXercesRoot.h:36