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
IModelEvents.hpp File Reference

Versioned, typed observations of GUI extension host state. More...

#include <QList>
#include <QMetaObject>
#include <QMetaType>
#include <QObject>
#include <QString>
#include <QUuid>
#include <functional>
#include <utility>
#include <variant>
Include dependency graph for IModelEvents.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OpenSWMM::Sdk::ModelEvent
 Model discovery, closing, activation, selection, edit or attribute observation. More...
 
struct  OpenSWMM::Sdk::SpatialEvent
 Visible-area, canvas membership or watched vector-boundary observation. More...
 
struct  OpenSWMM::Sdk::ResultsEvent
 Active result-source observation without result-reader ownership. More...
 
struct  OpenSWMM::Sdk::RunsEvent
 Simulation Status invalidation; query the run registry for current rows. More...
 
struct  OpenSWMM::Sdk::SettingsEvent
 One owning extension's settings invalidation. More...
 
struct  OpenSWMM::Sdk::ThemeEvent
 Palette invalidation; query current host theme tokens. More...
 
struct  OpenSWMM::Sdk::JobProgressEvent
 Copied progress from one of the owning extension's background jobs. More...
 
struct  OpenSWMM::Sdk::JobFinishedEvent
 Copied completion status from one of the owning extension's background jobs. More...
 
struct  OpenSWMM::Sdk::Event
 One typed observation published by an extension's host facade. More...
 
struct  OpenSWMM::Sdk::EventFilter
 Immutable-at-registration selection of event kinds and a model identity. More...
 
class  OpenSWMM::Sdk::IModelEvents
 Optional, frozen interface for receiver-scoped typed GUI observations. More...
 
class  OpenSWMM::Sdk::ScopedEventSubscription
 Move-only owner that disconnects a Qt subscription when its scope ends. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Sdk
 Public header-only ABI for independently compiled native GUI extensions.
 

Macros

#define OPENSWMM_MODEL_EVENTS_IID   "io.opensimulator.openswmm.IEventSource/1.0"
 Frozen Qt interface identity for the first typed host event service.
 

Typedefs

using OpenSWMM::Sdk::EventPayload = std::variant< ModelEvent, SpatialEvent, ResultsEvent, RunsEvent, SettingsEvent, ThemeEvent, JobProgressEvent, JobFinishedEvent >
 Closed, owning payload alternatives for the frozen IModelEvents event service.
 

Enumerations

enum class  OpenSWMM::Sdk::EventKind : quint32 {
  OpenSWMM::Sdk::InstanceDiscovered ,
  OpenSWMM::Sdk::InstanceClosing = 2 ,
  OpenSWMM::Sdk::InstanceActivated ,
  OpenSWMM::Sdk::SelectionChanged = 4 ,
  OpenSWMM::Sdk::ModelEdited = 5 ,
  OpenSWMM::Sdk::AttributesChanged ,
  OpenSWMM::Sdk::ViewportChanged = 7 ,
  OpenSWMM::Sdk::LayersChanged ,
  OpenSWMM::Sdk::BoundaryChanged = 9 ,
  OpenSWMM::Sdk::ActiveResultsChanged ,
  OpenSWMM::Sdk::RunsChanged = 11 ,
  OpenSWMM::Sdk::SettingsChanged = 12 ,
  OpenSWMM::Sdk::ThemeChanged = 13 ,
  OpenSWMM::Sdk::JobProgress = 14 ,
  OpenSWMM::Sdk::JobFinished = 15
}
 Existing host observations with explicit, stable numeric identities. More...
 

Variables

constexpr auto OpenSWMM::Sdk::MODEL_EVENTS_IID = OPENSWMM_MODEL_EVENTS_IID
 Discoverable interface IID, equivalent to OPENSWMM_MODEL_EVENTS_IID.
 

Detailed Description

Versioned, typed observations of GUI extension host state.

This optional interface is discovered through ExtensionHost::lifetime() with qobject_cast. Values describe the existing SDK event coverage, including its synchronous delivery and lifecycle limitations. They do not imply model readiness, committed transactions, state revisions or replay. The interface, enumerator values and payload layouts are frozen for this IID.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License
GPL-3.0-or-later

Macro Definition Documentation

◆ OPENSWMM_MODEL_EVENTS_IID

#define OPENSWMM_MODEL_EVENTS_IID   "io.opensimulator.openswmm.IEventSource/1.0"

Frozen Qt interface identity for the first typed host event service.