55#ifndef OPENSWMM_ISTATE_IO_PLUGIN_HPP
56#define OPENSWMM_ISTATE_IO_PLUGIN_HPP
98 virtual
int initialize(const std::vector<std::
string>& init_args,
118 virtual
bool can_read(const std::
string& path)
const {
return false; }
148 virtual std::vector<std::string>
warnings()
const {
return {}; }
Plugin lifecycle state enumerator.
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:201
Interface for state / hot-start IO plugins.
Definition IStateIOPlugin.hpp:71
virtual PluginState state() const noexcept=0
Read this implementation's current plugin lifecycle state.
virtual int read_state(const std::string &path, SimulationContext &ctx)=0
Decode supported persisted runtime state into an initialized compatible model.
virtual int write_state(const std::string &path, const SimulationContext &ctx)=0
Save supported runtime state at a caller-qualified accepted boundary.
virtual bool can_read(const std::string &path) const
Offer cheap format recognition for ordered state-reader dispatch.
Definition IStateIOPlugin.hpp:118
virtual ~IStateIOPlugin()=default
Destroy this polymorphic instance after its callbacks and resource lifecycle finish....
virtual int initialize(const std::vector< std::string > &init_args, const IPluginComponentInfo *info)=0
Parse instance configuration before model validation/preparation.
virtual int validate(const SimulationContext &ctx)=0
Qualify instance configuration against the loaded compatible model.
virtual int finalize(const SimulationContext &ctx)=0
Finish this instance after producer/update work has stopped.
virtual std::vector< std::string > warnings() const
Copy nonfatal diagnostics from the implementation's last state I/O operation.
Definition IStateIOPlugin.hpp:148
virtual const char * last_error_message() const noexcept
Borrow the latest implementation error text without clearing it.
Definition IStateIOPlugin.hpp:165
PluginState
Plugin lifecycle states.
Definition PluginState.hpp:86
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390