OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
IInputPlugin.hpp
Go to the documentation of this file.
1
27#ifndef OPENSWMM_IINPUT_PLUGIN_HPP
28#define OPENSWMM_IINPUT_PLUGIN_HPP
29
30#include <string>
31#include <vector>
32#include "PluginState.hpp"
33
34namespace openswmm {
35
36struct SimulationContext;
37class IPluginComponentInfo;
38
44public:
45 virtual ~IInputPlugin() = default;
46
48 virtual PluginState state() const noexcept = 0;
49
57 virtual int initialize(
58 const std::vector<std::string>& init_args,
59 const IPluginComponentInfo* info
60 ) = 0;
61
68 virtual int validate(const SimulationContext& ctx) = 0;
69
90 virtual int read(const std::string& path, SimulationContext& ctx) = 0;
91
102 virtual int write(const std::string& path, const SimulationContext& ctx) = 0;
103
114 virtual std::vector<std::string> skipped_sections() const { return {}; }
115
122 virtual int finalize(const SimulationContext& ctx) = 0;
123
125 virtual const char* last_error_message() const noexcept { return ""; }
126};
127
128} /* namespace openswmm */
129
130#endif /* OPENSWMM_IINPUT_PLUGIN_HPP */
Plugin lifecycle state enumerator.
Interface for input file reader/writer plugins.
Definition IInputPlugin.hpp:43
virtual int finalize(const SimulationContext &ctx)=0
Finalize and release resources.
virtual int validate(const SimulationContext &ctx)=0
Validate configuration against the loaded model.
virtual ~IInputPlugin()=default
virtual const char * last_error_message() const noexcept
Get the last error message.
Definition IInputPlugin.hpp:125
virtual std::vector< std::string > skipped_sections() const
Sections or elements that were skipped during the last read().
Definition IInputPlugin.hpp:114
virtual int initialize(const std::vector< std::string > &init_args, const IPluginComponentInfo *info)=0
Initialize from [PLUGINS] arguments.
virtual PluginState state() const noexcept=0
Query the current plugin state.
virtual int read(const std::string &path, SimulationContext &ctx)=0
Read model data from a file into the simulation context.
virtual int write(const std::string &path, const SimulationContext &ctx)=0
Write model data from the simulation context to a file.
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:179
PluginState
Plugin lifecycle states.
Definition PluginState.hpp:67
Definition NodeCoupling.cpp:15
Central, reentrant simulation context.
Definition SimulationContext.hpp:274