COVISE Core
WSMap.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 WSMAP_H
9#define WSMAP_H
10
11#include "WSExport.h"
12#include "WSModule.h"
13
14#include <QObject>
15
16namespace covise
17{
18
19class WSLink;
20
21class WSLIBEXPORT WSMap : public QObject
22{
23
24 Q_OBJECT
25
26 Q_PROPERTY(QString mapname READ getMapName WRITE setMapName)
27
28 Q_DISABLE_COPY(WSMap)
29
30public:
31 WSMap();
32 virtual ~WSMap();
33
42 WSModule *addModule(const WSModule *module, const QString &instance, const QString &host);
43
50 WSModule *addModule(const WSModule *module);
51
58 WSModule *addModule(const covise::covise__Module &module);
59
65 const QString &removeModule(const QString &moduleID);
66
72 WSModule *takeModule(const QString &moduleID);
73
74public slots:
75
84 WSLink *link(const QString &fromModule, const QString &fromPort, const QString &toModule, const QString &toPort);
85 bool unlink(const QString &fromModule, const QString &fromPort, const QString &toModule, const QString &toPort);
86 bool unlink(WSLink *link);
87 bool unlink(const QString &linkID);
88
89 WSLink *getLink(const QString &linkID) const;
90 QList<WSLink *> getLinks() const;
91
98 WSModule *getModule(const QString &name, const QString &instance, const QString &host) const;
99
104 WSModule *getModule(const QString &moduleID) const;
105
112 WSModule *getModuleByTitle(const QString &title) const;
113
117 QList<WSModule *> getModules() const;
118
123 void setMapName(const QString &name);
124
129 const QString &getMapName() const
130 {
131 return this->mapName;
132 }
133
140 static QString makeKeyName(const QString &name, const QString &instance, const QString &host);
141
142signals:
143 void moduleAdded(WSModule *module);
144 void moduleRemoved(const QString &moduleID);
145
146private:
147 // The running modules
148 QMap<QString, WSModule *> runningModules;
149
150 // The name of the map
151 QString mapName;
152
153 QMap<QString, covise::WSLink *> links;
154
159 void setRunningModules(const QMap<QString, WSModule *> &modules)
160 {
161 runningModules = modules;
162 }
163
168 void printList(const QMap<QString, WSModule *> &map);
169
170private slots:
171 void linkDestroyed(const QString &linkID);
172};
173}
174#endif // WSMAP_H
#define WSLIBEXPORT
Definition: coExport.h:385
GLuint const GLchar * name
Definition: khronos-glext.h:6722
list of all chemical elements
Definition: coConfig.h:27
Definition: WSLink.h:22
Definition: WSMap.h:22
const QString & getMapName() const
Definition: WSMap.h:129
QMap< QString, covise::WSLink * > links
Definition: WSMap.h:153
QMap< QString, WSModule * > runningModules
Definition: WSMap.h:148
void moduleAdded(WSModule *module)
QString mapName
Definition: WSMap.h:151
void moduleRemoved(const QString &moduleID)
void setRunningModules(const QMap< QString, WSModule * > &modules)
Definition: WSMap.h:159
Definition: WSModule.h:24