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
IProgress.hpp
Go to the documentation of this file.
1
13#pragma once
14#include <QObject>
15#include <QString>
16#include <QUuid>
17
19#define OPENSWMM_PROGRESS_IID "io.opensimulator.openswmm.IProgress/1.0"
20
21namespace OpenSWMM::Sdk
22{
24enum class ProgressOutcome {
25 Succeeded,
26 Failed,
28};
29
35{
36public:
38 virtual ~IProgress() = default;
46 virtual QUuid beginProgress(const QString &title, QObject *context) = 0;
55 virtual bool updateProgress(const QUuid &operationId, double fraction,
56 const QString &stage) = 0;
65 virtual bool finishProgress(const QUuid &operationId, ProgressOutcome outcome,
66 const QString &detail = {}) = 0;
67};
68}
70Q_DECLARE_METATYPE(OpenSWMM::Sdk::ProgressOutcome)
#define OPENSWMM_PROGRESS_IID
Frozen discovery identity for shared application progress.
Definition IProgress.hpp:19
Optional host-owned progress service; every method requires the GUI thread.
Definition IProgress.hpp:35
virtual QUuid beginProgress(const QString &title, QObject *context)=0
Begin an operation and immediately publish indeterminate shared progress.
virtual ~IProgress()=default
Destroy an implementation; plugins only borrow the host capability.
virtual bool updateProgress(const QUuid &operationId, double fraction, const QString &stage)=0
Update progress and its current human-readable stage.
virtual bool finishProgress(const QUuid &operationId, ProgressOutcome outcome, const QString &detail={})=0
Remove an operation from shared progress and record its terminal outcome once.
QPointer< QObject > context
Required provider lifetime guard.
Definition extensionattributes.cpp:31
const char * outcome
Definition meshenginesync.cpp:44
Public header-only ABI for independently compiled native GUI extensions.
Definition ExtensionHost.hpp:24
@ Succeeded
Settled successfully; a late cancel cannot change this outcome.
@ Cancelled
Settled as cancelled; no output rollback is implied.
@ Failed
Settled with an explicit worker/preparation error.
ProgressOutcome
Terminal classification for an extension-owned progress operation.
Definition IProgress.hpp:24
const char * title
Definition snowpackeditordialog.cpp:92