25#ifndef OPENSWMMVIS_CONTROLS_CONTROLRULEREGISTRY_H
26#define OPENSWMMVIS_CONTROLS_CONTROLRULEREGISTRY_H
45 QVector<ControlRuleProvider *>
providers()
const {
return m_providers; }
87 const QString &prevName,
const QString &newName);
90 QVector<ControlRuleProvider *> m_providers;
91 QHash<QString, ControlRuleProvider *> m_byLowerName;
Definition controlruleprovider.h:45
Definition controlruleregistry.h:38
int saveToEngine(void *engineHandle)
Push every provider back to the engine via swmm_control_clear_rules + a swmm_control_add_rule loop....
Definition controlruleregistry.cpp:126
bool rename(ControlRuleProvider *p, const QString &newName)
Rename a provider with uniqueness check. Returns false on collision (case-insensitive) or empty name.
Definition controlruleregistry.cpp:53
QVector< ControlRuleProvider * > providers() const
Definition controlruleregistry.h:45
~ControlRuleRegistry() override
ControlRuleProvider * findByName(const QString &name) const
Definition controlruleregistry.cpp:21
bool hasName(const QString &name) const
Definition controlruleregistry.h:49
ControlRuleProvider * create(const QString &name, const QString &body)
Create + own a new provider with the given name + body. Returns the new provider, or nullptr if the n...
Definition controlruleregistry.cpp:26
void providerAboutToBeRemoved(openswmmvis::controls::ControlRuleProvider *provider)
void providerRenamed(openswmmvis::controls::ControlRuleProvider *provider, const QString &prevName, const QString &newName)
void remove(ControlRuleProvider *p)
Remove a provider from the registry (no engine touch — the layer does that via applyControlRuleRemove...
Definition controlruleregistry.cpp:44
void clear()
Drop every provider without touching the engine. Used by loadFromEngine and by project teardown.
Definition controlruleregistry.cpp:66
int loadFromEngine(void *engineHandle)
Reload every provider from a live SWMM engine. Walks swmm_control_count + _get_rule + _get_id....
Definition controlruleregistry.cpp:81
int providerCount() const noexcept
Definition controlruleregistry.h:46
void providerAdded(openswmmvis::controls::ControlRuleProvider *provider)
Slice BR Phase 6.8.1 — MVC model for a single SWMM control rule.
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition controlruleprovider.h:34
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474