OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm::IReportPlugin Class Referenceabstract

Interface for report-writing plugins. More...

#include <IReportPlugin.hpp>

Inheritance diagram for openswmm::IReportPlugin:
Collaboration diagram for openswmm::IReportPlugin:

Public Member Functions

virtual ~IReportPlugin ()=default
 
virtual PluginState state () const noexcept=0
 Query the current plugin state.
 
virtual int initialize (const std::vector< std::string > &init_args, const class IPluginComponentInfo *info)=0
 Initialize from [PLUGINS] arguments.
 
virtual int validate (const SimulationContext &ctx)=0
 Validate configuration against the loaded model.
 
virtual int prepare (const SimulationContext &ctx)=0
 Open report file(s) and write any headers.
 
virtual int update (const SimulationSnapshot &snapshot)
 Accumulate data from one output step. Called from IO thread.
 
virtual int write_summary (const SimulationContext &ctx)=0
 Write the final summary report. Called from main thread.
 
virtual int finalize (const SimulationContext &ctx)=0
 Flush and close report file(s).
 
virtual const char * last_error_message () const noexcept
 Get the last error message.
 

Detailed Description

Interface for report-writing plugins.

Constructor & Destructor Documentation

◆ ~IReportPlugin()

virtual openswmm::IReportPlugin::~IReportPlugin ( )
virtualdefault

Member Function Documentation

◆ finalize()

virtual int openswmm::IReportPlugin::finalize ( const SimulationContext ctx)
pure virtual

Flush and close report file(s).

Parameters
ctxFinal simulation context.
Returns
0 on success.
Postcondition
state() == PluginState::FINALIZED on success.

Implemented in openswmm::DefaultReportPlugin.

◆ initialize()

virtual int openswmm::IReportPlugin::initialize ( const std::vector< std::string > &  init_args,
const class IPluginComponentInfo info 
)
pure virtual

Initialize from [PLUGINS] arguments.

Parameters
init_argsTokenized arguments from the [PLUGINS] line.
infoBack-pointer to IPluginComponentInfo.
Returns
0 on success.
Postcondition
state() == PluginState::INITIALIZED on success.

◆ last_error_message()

virtual const char * openswmm::IReportPlugin::last_error_message ( ) const
inlinevirtualnoexcept

Get the last error message.

Reimplemented in openswmm::DefaultReportPlugin.

◆ prepare()

virtual int openswmm::IReportPlugin::prepare ( const SimulationContext ctx)
pure virtual

Open report file(s) and write any headers.

Parameters
ctxSimulation context.
Returns
0 on success.
Postcondition
state() == PluginState::PREPARED on success.

Implemented in openswmm::DefaultReportPlugin.

◆ state()

virtual PluginState openswmm::IReportPlugin::state ( ) const
pure virtualnoexcept

Query the current plugin state.

Implemented in openswmm::DefaultReportPlugin.

◆ update()

virtual int openswmm::IReportPlugin::update ( const SimulationSnapshot snapshot)
inlinevirtual

Accumulate data from one output step. Called from IO thread.

This is optional — some report plugins only use write_summary() and do nothing in update(). The default implementation is a no-op.

Parameters
snapshotRead-only simulation state at this output time step.
Returns
0 on success.

Reimplemented in openswmm::DefaultReportPlugin.

◆ validate()

virtual int openswmm::IReportPlugin::validate ( const SimulationContext ctx)
pure virtual

Validate configuration against the loaded model.

Parameters
ctxSimulation context (after input parsing).
Returns
0 on success.
Postcondition
state() == PluginState::VALIDATED on success.

Implemented in openswmm::DefaultReportPlugin.

◆ write_summary()

virtual int openswmm::IReportPlugin::write_summary ( const SimulationContext ctx)
pure virtual

Write the final summary report. Called from main thread.

Called after all update() calls have completed and finalize() has returned. Write summary statistics (peak flows, volumes, mass balance errors, etc.).

Parameters
ctxFinal simulation context (contains statistics).
Returns
0 on success.

Implemented in openswmm::DefaultReportPlugin.


The documentation for this class was generated from the following file: