COVISE Core
coConfigEntry.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 COCONFIGENTRY_H
9#define COCONFIGENTRY_H
10
11#include "coConfigConstants.h"
12#include "coConfigEntryString.h"
14#include "coConfigSchemaInfos.h"
15
16#include <QHash>
17#include <QObject>
18#include <QString>
19#include <QRegExp>
20#include <QList>
21
22#include <util/coTypes.h>
23
25
26#ifndef CO_gcc3
27EXPORT_TEMPLATE2(template class CONFIGEXPORT QHash<QString, QString *>)
28#endif
29
30namespace covise
31{
32
33class CONFIGEXPORT coConfigEntry : public Subject<coConfigEntry>
34{
35 friend class coConfigXercesEntry;
36
37public:
39 virtual ~coConfigEntry();
40
41 coConfigEntryStringList getScopeList(QString scope);
42 coConfigEntryStringList getVariableList(QString scope);
43 void appendVariableList(coConfigEntryStringList &list,QString scope);
44
45 coConfigEntryString getValue(const QString &variable, QString scope);
46 //coConfigEntryStringList getValues(const QString & variable, QString scope);
47
48 const char *getEntry(const char *variable);
49
50 bool setValue(const QString &variable, const QString &value,
51 const QString &section);
52 void addValue(const QString &variable, const QString &value,
53 const QString &section);
54
55 bool deleteValue(const QString &variable, const QString &section);
56 bool deleteSection(const QString &section);
57
58 bool hasValues() const;
59
60 const QString &getPath() const;
61 QString getName() const;
62 const char *getCName() const;
63 const QString &getConfigName() const;
64
65 bool isList() const;
66 bool hasChildren() const;
67
68 void setReadOnly(bool ro);
69 bool isReadOnly() const;
70
71 static QString &cleanName(QString &name);
72
73 coConfigSchemaInfos *getSchemaInfos();
74 void setSchemaInfos(coConfigSchemaInfos *infos);
75
76 void entryChanged();
77
78 virtual void merge(const coConfigEntry *with);
79 virtual coConfigEntry *clone() const = 0;
80
81protected:
82 coConfigEntry(const coConfigEntry *entry);
83
84 void setPath(const QString &path);
85 void makeSection(const QString &section);
86
87private:
88 bool matchingAttributes() const;
89 bool matchingHost() const;
90 bool matchingMaster() const;
91 bool matchingArch() const;
92 bool matchingRank() const;
93
95 QString configName;
96 QString path;
97
100
102 QHash<QString, QString *> attributes;
103 QStringList textNodes;
104
107
108 //TODO How to get rid of this friend...
110 mutable char *cName;
111 mutable QString name;
112};
113}
114#endif
#define CONFIGEXPORT
Definition: coExport.h:367
#define EXPORT_TEMPLATE2(x, y)
Definition: coExport.h:34
GLsizei const GLfloat * value
Definition: khronos-glext.h:6760
GLsizei const GLchar ** path
Definition: khronos-glext.h:7952
GLenum GLenum variable
Definition: khronos-glext.h:9990
GLuint const GLchar * name
Definition: khronos-glext.h:6722
list of all chemical elements
Definition: coConfig.h:27
ConfigScope
Definition: coConfigConstants.h:25
Definition: coConfigEditorController.h:32
Definition: coConfigEntry.h:34
QHash< QString, QString * > attributes
Definition: coConfigEntry.h:102
QString path
Definition: coConfigEntry.h:96
bool readOnly
Definition: coConfigEntry.h:99
coConfigConstants::ConfigScope configScope
Definition: coConfigEntry.h:94
coConfigSchemaInfos * schemaInfos
Definition: coConfigEntry.h:105
QString name
Definition: coConfigEntry.h:111
bool matchingArch() const
bool matchingRank() const
char * cName
Definition: coConfigEntry.h:110
bool matchingMaster() const
bool isListNode
Definition: coConfigEntry.h:98
QStringList textNodes
Definition: coConfigEntry.h:103
QString elementGroup
Definition: coConfigEntry.h:106
virtual coConfigEntry * clone() const =0
QString configName
Definition: coConfigEntry.h:95
bool matchingHost() const
coConfigEntryPtrList children
Definition: coConfigEntry.h:101
Definition: coConfigEntryPtrList.h:24
Definition: coConfigEntryString.h:24
Definition: coConfigEntryString.h:54
Definition: coConfigEntryToEditor.h:15
Definition: coConfigSchemaInfos.h:31
Definition: coConfigXercesEntry.h:37