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
inletregistry.h
Go to the documentation of this file.
1
16#ifndef OPENSWMMVIS_INLET_INLETREGISTRY_H
17#define OPENSWMMVIS_INLET_INLETREGISTRY_H
18
19#include "inlet/inletprovider.h"
20
21#include <QHash>
22#include <QObject>
23#include <QString>
24#include <QVector>
25
26namespace openswmmvis::inlet {
27
28class InletRegistry : public QObject
29{
30 Q_OBJECT
31
32public:
33 explicit InletRegistry(QObject *parent = nullptr);
34 ~InletRegistry() override;
35
36 QVector<InletProvider *> providers() const { return m_providers; }
37 int providerCount() const noexcept { return m_providers.size(); }
38
39 InletProvider *findByName(const QString &name) const;
40 bool hasName(const QString &name) const { return findByName(name) != nullptr; }
41
42 InletProvider *create(const QString &name);
43 void remove(InletProvider *p);
44 bool rename(InletProvider *p, const QString &newName);
45
49 QString impactSummary(InletProvider *p) const;
50
52 int saveToEngine(void *engineHandle);
53 int saveToEngine();
54
55 void *engineHandle() const noexcept { return m_engineHandle; }
56
57signals:
61 const QString &prevName, const QString &newName);
63
64private:
65 void wireProviderSignals_(InletProvider *p);
66
67 QVector<InletProvider *> m_providers;
68 QHash<QString, InletProvider *> m_byLowerName;
69 void *m_engineHandle = nullptr;
70};
71
72} // namespace openswmmvis::inlet
73
74#endif // OPENSWMMVIS_INLET_INLETREGISTRY_H
Definition inletprovider.h:95
Definition inletregistry.h:29
void providerParamsChanged(openswmmvis::inlet::InletProvider *provider)
int providerCount() const noexcept
Definition inletregistry.h:37
bool rename(InletProvider *p, const QString &newName)
Definition inletregistry.cpp:175
InletProvider * create(const QString &name)
Definition inletregistry.cpp:122
bool hasName(const QString &name) const
Definition inletregistry.h:40
InletProvider * findByName(const QString &name) const
Definition inletregistry.cpp:102
void providerAdded(openswmmvis::inlet::InletProvider *provider)
void providerRenamed(openswmmvis::inlet::InletProvider *provider, const QString &prevName, const QString &newName)
QVector< InletProvider * > providers() const
Definition inletregistry.h:36
void remove(InletProvider *p)
Definition inletregistry.cpp:156
QString impactSummary(InletProvider *p) const
Human-readable summary of what references p, from swmm_inlet_analyze_impact. Empty when nothing refer...
Definition inletregistry.cpp:133
void * engineHandle() const noexcept
Definition inletregistry.h:55
void providerAboutToBeRemoved(openswmmvis::inlet::InletProvider *provider)
int loadFromEngine(void *engineHandle)
Definition inletregistry.cpp:198
int saveToEngine()
Definition inletregistry.cpp:230
MVC model for a single SWMM inlet design ([INLETS]).
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition inletprovider.h:27
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474