OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
DefaultReportPlugin.hpp
Go to the documentation of this file.
1
19#ifndef OPENSWMM_ENGINE_DEFAULT_REPORT_PLUGIN_HPP
20#define OPENSWMM_ENGINE_DEFAULT_REPORT_PLUGIN_HPP
21
22#include "../../../include/openswmm/plugin_sdk/IReportPlugin.hpp"
23
24#include <ctime>
25#include <string>
26
27namespace openswmm {
28
33class DefaultReportPlugin final : public IReportPlugin {
34public:
35 explicit DefaultReportPlugin(std::string rpt_path);
36 ~DefaultReportPlugin() override = default;
37
38 PluginState state() const noexcept override { return state_; }
39
40 int initialize(const std::vector<std::string>& init_args,
41 const IPluginComponentInfo* info) override;
42
43 int validate (const SimulationContext& ctx) override;
44 int prepare (const SimulationContext& ctx) override;
45 int update (const SimulationSnapshot& snapshot) override;
46 int finalize (const SimulationContext& ctx) override;
47
49 int write_summary(const SimulationContext& ctx) override;
50
51 const char* last_error_message() const noexcept override {
52 return last_error_.c_str();
53 }
54
55private:
56 std::string rpt_path_;
58 std::string last_error_;
59 std::time_t wall_start_ = 0;
60};
61
62} /* namespace openswmm */
63
64#endif /* OPENSWMM_ENGINE_DEFAULT_REPORT_PLUGIN_HPP */
Default report plugin: writes SWMM 5.x compatible .rpt report file.
Definition DefaultReportPlugin.hpp:33
PluginState state() const noexcept override
Query the current plugin state.
Definition DefaultReportPlugin.hpp:38
int write_summary(const SimulationContext &ctx) override
Write the summary statistics table to the .rpt file.
Definition DefaultReportPlugin.cpp:110
int prepare(const SimulationContext &ctx) override
Open report file(s) and write any headers.
Definition DefaultReportPlugin.cpp:90
int update(const SimulationSnapshot &snapshot) override
Accumulate data from one output step. Called from IO thread.
Definition DefaultReportPlugin.cpp:96
int validate(const SimulationContext &ctx) override
Validate configuration against the loaded model.
Definition DefaultReportPlugin.cpp:85
int finalize(const SimulationContext &ctx) override
Flush and close report file(s).
Definition DefaultReportPlugin.cpp:101
~DefaultReportPlugin() override=default
int initialize(const std::vector< std::string > &init_args, const IPluginComponentInfo *info) override
Definition DefaultReportPlugin.cpp:79
const char * last_error_message() const noexcept override
Get the last error message.
Definition DefaultReportPlugin.hpp:51
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:57
Interface for report-writing plugins.
Definition IReportPlugin.hpp:45
PluginState
Plugin lifecycle states.
Definition PluginState.hpp:67
@ UNLOADED
Library not yet loaded (or was closed).
Definition Controls.cpp:24
Central, reentrant simulation context.
Definition SimulationContext.hpp:141
Complete simulation state snapshot at one output time step.
Definition SimulationSnapshot.hpp:90