SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
pollutantregistry.h
Go to the documentation of this file.
1
11#ifndef OPENSWMMVIS_POLLUTANT_POLLUTANTREGISTRY_H
12#define OPENSWMMVIS_POLLUTANT_POLLUTANTREGISTRY_H
13
15
16#include <QHash>
17#include <QObject>
18#include <QString>
19#include <QVector>
20
21namespace openswmmvis::pollutant {
22
23class PollutantRegistry : public QObject
24{
25 Q_OBJECT
26
27public:
28 explicit PollutantRegistry(QObject *parent = nullptr);
30
31 QVector<PollutantProvider *> providers() const { return m_providers; }
32 int providerCount() const noexcept { return m_providers.size(); }
33
34 PollutantProvider *findByName(const QString &name) const;
35 bool hasName(const QString &name) const { return findByName(name) != nullptr; }
36
38 PollutantProvider *create(const QString &name);
39
41 bool rename(PollutantProvider *p, const QString &newName);
42
45
48 int saveToEngine(void *engineHandle);
49
51 int saveToEngine();
52
53 void *engineHandle() const noexcept { return m_engineHandle; }
54
55signals:
59 const QString &prevName, const QString &newName);
61
62private:
63 void wireProviderSignals_(PollutantProvider *p);
64
65 QVector<PollutantProvider *> m_providers;
66 QHash<QString, PollutantProvider *> m_byLowerName;
67 void *m_engineHandle = nullptr;
68};
69
70} // namespace openswmmvis::pollutant
71
72#endif // OPENSWMMVIS_POLLUTANT_POLLUTANTREGISTRY_H
Definition pollutantprovider.h:29
Definition pollutantregistry.h:24
bool rename(PollutantProvider *p, const QString &newName)
Definition pollutantregistry.cpp:59
bool hasName(const QString &name) const
Definition pollutantregistry.h:35
void providerAboutToBeRemoved(openswmmvis::pollutant::PollutantProvider *provider)
void remove(PollutantProvider *p)
Definition pollutantregistry.cpp:50
PollutantProvider * findByName(const QString &name) const
Definition pollutantregistry.cpp:21
void * engineHandle() const noexcept
Definition pollutantregistry.h:53
int saveToEngine()
Flush against the cached engine handle. No-op if never set.
Definition pollutantregistry.cpp:134
QVector< PollutantProvider * > providers() const
Definition pollutantregistry.h:31
void providerAdded(openswmmvis::pollutant::PollutantProvider *provider)
void providerParamsChanged(openswmmvis::pollutant::PollutantProvider *provider)
void providerRenamed(openswmmvis::pollutant::PollutantProvider *provider, const QString &prevName, const QString &newName)
int providerCount() const noexcept
Definition pollutantregistry.h:32
int loadFromEngine(void *engineHandle)
Populate from a live SWMM engine handle.
Definition pollutantregistry.cpp:83
PollutantProvider * create(const QString &name)
Create + own a new provider. Returns nullptr on name collision.
Definition pollutantregistry.cpp:39
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition pollutantprovider.h:26
MVC model for a single SWMM pollutant ([POLLUTANTS]).
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474