OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
DefaultInputPlugin.hpp
Go to the documentation of this file.
1
16#ifndef OPENSWMM_ENGINE_DEFAULT_INPUT_PLUGIN_HPP
17#define OPENSWMM_ENGINE_DEFAULT_INPUT_PLUGIN_HPP
18
19#include "../../../include/openswmm/plugin_sdk/IInputPlugin.hpp"
20#include "../input/SectionRegistry.hpp"
21
22#include <string>
23#include <vector>
24
25namespace openswmm {
26
37public:
42
43 PluginState state() const noexcept override { return state_; }
44
45 int initialize(const std::vector<std::string>& init_args,
46 const IPluginComponentInfo* info) override;
47
48 int validate(const SimulationContext& ctx) override;
49
50 int read(const std::string& path, SimulationContext& ctx) override;
51
52 int write(const std::string& path, const SimulationContext& ctx) override;
53
54 int finalize(const SimulationContext& ctx) override;
55
56 const char* last_error_message() const noexcept override {
57 return last_error_.c_str();
58 }
59
60 std::vector<std::string> skipped_sections() const override {
61 return skipped_sections_;
62 }
63
65 input::SectionRegistry& registry() noexcept { return registry_; }
66
67private:
69 void register_builtin_handlers();
70
71 input::SectionRegistry registry_;
73 std::string last_error_;
74 std::vector<std::string> skipped_sections_;
75};
76
77} /* namespace openswmm */
78
79#endif /* OPENSWMM_ENGINE_DEFAULT_INPUT_PLUGIN_HPP */
Default input plugin that reads/writes SWMM .inp files.
Definition DefaultInputPlugin.hpp:36
DefaultInputPlugin()
Construct and register all built-in section handlers.
Definition DefaultInputPlugin.cpp:44
std::vector< std::string > skipped_sections() const override
Sections or elements that were skipped during the last read().
Definition DefaultInputPlugin.hpp:60
int finalize(const SimulationContext &ctx) override
Finalize and release resources.
Definition DefaultInputPlugin.cpp:177
const char * last_error_message() const noexcept override
Get the last error message.
Definition DefaultInputPlugin.hpp:56
PluginState state() const noexcept override
Query the current plugin state.
Definition DefaultInputPlugin.hpp:43
int read(const std::string &path, SimulationContext &ctx) override
Read model data from a file into the simulation context.
Definition DefaultInputPlugin.cpp:156
int initialize(const std::vector< std::string > &init_args, const IPluginComponentInfo *info) override
Initialize from [PLUGINS] arguments.
Definition DefaultInputPlugin.cpp:143
int write(const std::string &path, const SimulationContext &ctx) override
Write model data from the simulation context to a file.
Definition DefaultInputPlugin.cpp:169
input::SectionRegistry & registry() noexcept
Access the section registry (for custom section registration).
Definition DefaultInputPlugin.hpp:65
int validate(const SimulationContext &ctx) override
Validate configuration against the loaded model.
Definition DefaultInputPlugin.cpp:151
Interface for input file reader/writer plugins.
Definition IInputPlugin.hpp:43
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:179
Registry that maps section tags (e.g., "[JUNCTIONS]") to handlers.
Definition SectionRegistry.hpp:71
PluginState
Plugin lifecycle states.
Definition PluginState.hpp:67
@ UNLOADED
Library not yet loaded (or was closed).
Definition NodeCoupling.cpp:15
Central, reentrant simulation context.
Definition SimulationContext.hpp:274