23#ifndef OPENSWMM_ENGINE_DEFAULT_OUTPUT_PLUGIN_HPP
24#define OPENSWMM_ENGINE_DEFAULT_OUTPUT_PLUGIN_HPP
26#include "../../../include/openswmm/plugin_sdk/IOutputPlugin.hpp"
57 int initialize(
const std::vector<std::string>& init_args,
69 return last_error_.c_str();
73 std::string out_path_;
75 std::string last_error_;
78 FILE* out_file_ =
nullptr;
83 int n_subcatch_vars_ = 0;
86 long id_start_pos_ = 0;
87 long input_start_pos_ = 0;
88 long output_start_pos_ = 0;
91 static constexpr int MAGIC_NUMBER = 516114522;
92 static constexpr int VERSION = 52001;
93 static constexpr int MAX_SYS_RESULTS = 14;
96 void writeID(
const char*
id);
97 void writeInt4(
int value);
98 void writeReal4(
float value);
99 void writeReal8(
double value);
Default output plugin: writes SWMM 5.x compatible binary .out file.
Definition DefaultOutputPlugin.hpp:42
int update(const SimulationSnapshot &snapshot) override
Write one output snapshot. Called from the IO thread.
Definition DefaultOutputPlugin.cpp:66
const char * last_error_message() const noexcept override
Get the last error message from this plugin instance.
Definition DefaultOutputPlugin.hpp:68
~DefaultOutputPlugin() override=default
int initialize(const std::vector< std::string > &init_args, const IPluginComponentInfo *info) override
Definition DefaultOutputPlugin.cpp:36
PluginState state() const noexcept override
Query the current plugin state.
Definition DefaultOutputPlugin.hpp:55
int prepare(const SimulationContext &ctx) override
Open output file(s) and write headers.
Definition DefaultOutputPlugin.cpp:49
int finalize(const SimulationContext &ctx) override
Flush and close output file(s). Called from main thread.
Definition DefaultOutputPlugin.cpp:112
int validate(const SimulationContext &ctx) override
Validate plugin configuration against the simulation model.
Definition DefaultOutputPlugin.cpp:44
Interface for output-writing plugins.
Definition IOutputPlugin.hpp:57
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:57
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