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
extensionviewaccess.h
Go to the documentation of this file.
1
10#pragma once
11#include "sdk/IViewEvents.hpp"
12#include "sdk/IViewControls.hpp"
13#include <QObject>
14#include <QPointer>
15#include <memory>
16
19
20namespace openswmmvis
21{
22class ExtensionStateRegistry;
24using ViewEventSink = std::function<void(OpenSWMM::Sdk::ViewEvent)>;
25
27class ExtensionLayerBridge final : public QObject
28{
29public:
35 ~ExtensionLayerBridge() override;
38 QList<OpenSWMM::Sdk::LayerViewState> snapshot() const;
42 QUuid identity(OpenSWMMVisLayer *layer) const;
46 OpenSWMMVisLayer *resolve(const QUuid &id) const;
51 bool execute(const OpenSWMM::Sdk::ViewCommand &command, QString *error);
57 QList<qint64> selectedFeatures(const QUuid &id, int offset, int limit) const;
58
59private:
60 struct Data;
61 std::unique_ptr<Data> mData;
62};
63
65class ExtensionResultsBridge final : public QObject
66{
67public:
73 std::function<QUuid(OpenSWMMVisLayer *)> identity,
76 ~ExtensionResultsBridge() override;
79 QList<OpenSWMM::Sdk::ResultsViewState> snapshot() const;
86 QString *error);
87
88private:
89 struct Data;
90 std::unique_ptr<Data> mData;
91};
92
104
106class ExtensionViewAccess final : public QObject
107{
108 Q_OBJECT
109public:
114 ~ExtensionViewAccess() override;
120 void refresh();
125 bool execute(const OpenSWMM::Sdk::ViewCommand &command, QString *error);
131 QList<qint64> selectedFeatures(const QUuid &id, int offset, int limit) const;
135 QUuid identity(OpenSWMMVisLayer *layer) const;
136
137private:
138 QPointer<SWMMVisProjectWindow> mWindow;
139 QPointer<ExtensionStateRegistry> mRegistry;
140 std::unique_ptr<ExtensionLayerBridge> mLayers;
141 std::unique_ptr<ExtensionResultsBridge> mResults;
142 QUuid mOrigin;
143 bool mInitializing = true;
146 OpenSWMM::Sdk::ViewSnapshot capture() const;
149 void record(OpenSWMM::Sdk::ViewEvent event);
150};
151}
Versioned validated canvas and attached-results commands for extensions.
Versioned model, layer and attached-results observations and copied view metadata.
Abstract base class for all layers displayed in the MapCanvas.
Definition openswmmvislayer.h:133
MDI sub-window owning a MapCanvas, per-project services and map tools, referring to a workspace-assoc...
Definition swmmvisprojectwindow.h:74
Per-session layer membership identities, semantic watchers and validated commands.
Definition extensionviewaccess.h:28
OpenSWMMVisLayer * resolve(const QUuid &id) const
Resolve a current runtime attachment for private controller use.
Definition extensionlayerevents.cpp:504
QList< qint64 > selectedFeatures(const QUuid &id, int offset, int limit) const
Copy a sorted bounded page of current vector selection identities.
Definition extensionlayerevents.cpp:514
~ExtensionLayerBridge() override
Disconnect per-membership watchers before releasing private state.
Definition extensionlayerevents.cpp:457
QList< OpenSWMM::Sdk::LayerViewState > snapshot() const
Read native layer metadata outside public getters.
Definition extensionlayerevents.cpp:467
bool execute(const OpenSWMM::Sdk::ViewCommand &command, QString *error)
Dispatch a validated layer action using its native controller.
Definition extensionlayerevents.cpp:528
QUuid identity(OpenSWMMVisLayer *layer) const
Resolve an already tracked native pointer to its runtime attachment.
Definition extensionlayerevents.cpp:498
Per-session attached result lifecycle and published cursor/variable metadata.
Definition extensionviewaccess.h:66
QList< OpenSWMM::Sdk::ResultsViewState > snapshot() const
Read copied native reader/source/channel state outside public getters.
Definition extensionresultsevents.cpp:379
bool execute(const OpenSWMM::Sdk::ViewCommand &command, OpenSWMMVisLayer *layer, QString *error)
Execute a results controller action against a current attachment.
Definition extensionresultsevents.cpp:394
~ExtensionResultsBridge() override
Disconnect result/source/style watchers.
Definition extensionresultsevents.cpp:372
Canonical native coordinator publishing into the application-owned registry.
Definition extensionviewaccess.h:107
void refresh()
Refresh final restored metadata before native readiness is committed.
Definition extensionviewaccess.cpp:52
QList< qint64 > selectedFeatures(const QUuid &id, int offset, int limit) const
Read one bounded page of current layer selection.
Definition extensionviewaccess.cpp:110
bool execute(const OpenSWMM::Sdk::ViewCommand &command, QString *error)
Validate session generation/readiness then execute a typed view command.
Definition extensionviewaccess.cpp:64
QUuid identity(OpenSWMMVisLayer *layer) const
Resolve a tracked native layer to its current runtime attachment.
Definition extensionviewaccess.cpp:115
~ExtensionViewAccess() override
Destroy native bridges before the window's QObject children.
Definition extensionviewaccess.cpp:30
static ExtensionViewAccess * find(SWMMVisProjectWindow *window)
Find an already installed coordinator without creating state.
Definition extensionviewaccess.cpp:35
QPointer< QObject > context
Required provider lifetime guard.
Definition extensionattributes.cpp:31
std::function< void(bool)> changed
Guarded layer refresh callback.
Definition extensionattributes.cpp:36
Definition aquiferprovider.h:24
void installExtensionModelViewEvents(SWMMVisProjectWindow *window, QObject *context, ViewEventSink changed)
Connect native model/selection/unit observations once per window.
Definition extensionmodelevents.cpp:44
std::function< void(OpenSWMM::Sdk::ViewEvent)> ViewEventSink
Native metadata change callback, consumed by the canonical window coordinator.
Definition extensionviewaccess.h:24
void populateExtensionModelViewState(SWMMVisProjectWindow *window, OpenSWMM::Sdk::ViewSnapshot &snapshot)
Copy project display units and canonical selection count into view metadata.
Definition extensionmodelevents.cpp:114
std::uint64_t limit
Definition smsio.cpp:24
Owning bounded request for one native view-controller action.
Definition IViewControls.hpp:45
Owning deferred observation identifying state to query again.
Definition IViewEvents.hpp:113
Pure copied current metadata at the shared registry watermark.
Definition IViewEvents.hpp:98
Private per-session attachment map and guarded native signal wiring.
Definition extensionlayerevents.cpp:101
Private attached-reader records; QObject connection handles have explicit ownership.
Definition extensionresultsevents.cpp:146
double error
Definition terrainerrorfield.cpp:42
double offset
Definition timeseriesassignment.cpp:21
TraceAnalysisLayer * layer
Definition traceanalysislayer.cpp:162