23#ifndef OPENSWMM_ENGINE_DEFAULT_OUTPUT_PLUGIN_HPP
24#define OPENSWMM_ENGINE_DEFAULT_OUTPUT_PLUGIN_HPP
58 int initialize(
const std::vector<std::string>& init_args,
70 return last_error_.c_str();
74 std::string out_path_;
76 std::string last_error_;
79 FILE* out_file_ =
nullptr;
84 int n_subcatch_vars_ = 0;
87 int flow_units_code_ = 0;
88 long id_start_pos_ = 0;
89 long input_start_pos_ = 0;
90 long output_start_pos_ = 0;
96 double ucf_length_ = 1.0;
97 double ucf_landarea_ = 1.0;
100 std::vector<char> subcatch_rpt_flag_;
101 std::vector<char> node_rpt_flag_;
102 std::vector<char> link_rpt_flag_;
104 static constexpr int MAGIC_NUMBER = 516114522;
105 static constexpr int VERSION = 60000;
109 void writeID(
const char*
id);
110 void writeInt4(
int value);
111 void writeReal4(
float value);
112 void writeReal8(
double value);
Interface for output-writing plugins.
DefaultOutputPlugin(std::string out_path)
Construct with the output file path.
Definition DefaultOutputPlugin.cpp:34
int update(const SimulationSnapshot &snapshot) override
Write one output snapshot. Called from the IO thread.
Definition DefaultOutputPlugin.cpp:77
const char * last_error_message() const noexcept override
Get the last error message from this plugin instance.
Definition DefaultOutputPlugin.hpp:69
~DefaultOutputPlugin() override=default
int initialize(const std::vector< std::string > &init_args, const IPluginComponentInfo *info) override
Definition DefaultOutputPlugin.cpp:39
PluginState state() const noexcept override
Query the current plugin state.
Definition DefaultOutputPlugin.hpp:56
int prepare(const SimulationContext &ctx) override
Open output file(s) and write headers.
Definition DefaultOutputPlugin.cpp:52
int finalize(const SimulationContext &ctx) override
Flush and close output file(s). Called from main thread.
Definition DefaultOutputPlugin.cpp:183
int validate(const SimulationContext &ctx) override
Validate plugin configuration against the simulation model.
Definition DefaultOutputPlugin.cpp:47
Interface for output-writing plugins.
Definition IOutputPlugin.hpp:57
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:179
#define MAX_SYS_RESULTS
Maximum number of system results.
Definition enums.h:412
#define VERSION
SWMM version number.
Definition consts.h:39
PluginState
Plugin lifecycle states.
Definition PluginState.hpp:67
@ UNLOADED
Library not yet loaded (or was closed).
Definition PluginState.hpp:68
Definition NodeCoupling.cpp:15
Central, reentrant simulation context.
Definition SimulationContext.hpp:292
Complete simulation state snapshot at one output time step.
Definition SimulationSnapshot.hpp:101