COVISE Core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
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 
15 #include <config/coConfigEntry.h>
17 
18 #include <util/coTypes.h>
19 
20 #ifndef CO_gcc3
21 EXPORT_TEMPLATE2(template class CONFIGEXPORT QHash<QString, covise::coConfigEntry *>)
22 #endif
23 
24 namespace covise
25 {
26 
27 class coConfigGroup;
28 
30 {
31  friend class coConfigXercesRoot;
32 
33 public:
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::null) 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 
96 protected:
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;
111  QString activeHostname;
112  QStringList hostnames;
113  QString activeCluster;
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;
130  bool readOnly;
131 
132  QSet<QString> included;
133 };
134 }
135 #endif
Definition: coConfigEntryString.h:53
QSet< QString > included
Definition: coConfigRoot.h:132
#define CONFIGEXPORT
Definition: coExport.h:355
Definition: coConfigGroup.h:25
GLenum GLenum variable
Definition: khronos-glext.h:9990
Definition: coConfigRoot.h:29
Definition: coConfigEntryString.h:23
coConfigEntry * clusterConfig
Definition: coConfigRoot.h:119
GLenum target
Definition: khronos-glext.h:8033
GLuint const GLchar * name
Definition: khronos-glext.h:6722
coConfigGroup * group
Definition: coConfigRoot.h:108
QStringList masternames
Definition: coConfigRoot.h:114
coConfigEntry * globalConfig
Definition: coConfigRoot.h:118
QStringList hostnames
Definition: coConfigRoot.h:112
QHash< QString, coConfigEntry * > clusterConfigs
Definition: coConfigRoot.h:123
#define EXPORT_TEMPLATE2(x, y)
Definition: coExport.h:34
GLboolean GLuint group
Definition: khronos-glext.h:12389
coConfigEntry * getGlobalConfig()
Definition: coConfigRoot.h:86
GLsizei const GLfloat * value
Definition: khronos-glext.h:6760
bool create
Definition: coConfigRoot.h:129
QString filename
Definition: coConfigRoot.h:110
QHash< QString, coConfigEntry * > hostConfigs
Definition: coConfigRoot.h:122
coConfigEntry * hostConfig
Definition: coConfigRoot.h:120
Definition: coConfigEntry.h:33
QString activeCluster
Definition: coConfigRoot.h:113
QString configName
Definition: coConfigRoot.h:116
#define NULL
Definition: covise_list.h:22
Definition: coConfigXercesRoot.h:35
bool readOnly
Definition: coConfigRoot.h:130
QString activeHostname
Definition: coConfigRoot.h:111