51#ifndef OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
52#define OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
112 return "OUTPUT_WRITE";
114 return "REPORT_WRITE";
118 return "STATE_WRITE";
216 virtual std::string
id()
const = 0;
237 virtual std::string
url()
const = 0;
242 virtual std::vector<std::string>
tags()
const {
return {}; }
266 virtual bool has_input() const noexcept {
return false; }
Plugin lifecycle state enumerator.
Interface for output-writing plugins.
Definition IOutputPlugin.hpp:77
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:201
virtual IStateIOPlugin * create_state_io_plugin() const
Allocate a distinct state_io plugin instance when supported and permitted.
Definition IPluginComponentInfo.hpp:361
virtual IInputPlugin * create_input_plugin() const
Allocate a distinct input plugin instance when supported and permitted.
Definition IPluginComponentInfo.hpp:334
virtual std::vector< std::string > tags() const
Copy optional discovery keywords.
Definition IPluginComponentInfo.hpp:242
virtual std::string description() const =0
Copy the component's descriptive metadata.
virtual bool has_state_io() const noexcept
Query whether this component advertises the state_io capability.
Definition IPluginComponentInfo.hpp:284
virtual IReportPlugin * create_report_plugin() const
Allocate a distinct report plugin instance when supported and permitted.
Definition IPluginComponentInfo.hpp:352
virtual ~IPluginComponentInfo()=default
Destroy component metadata only through its owning library/host lifetime. PluginFactory borrows singl...
virtual bool registered() const noexcept
Query implementation-defined registration readiness.
Definition IPluginComponentInfo.hpp:315
virtual bool has_input() const noexcept
Query whether this component advertises the input capability.
Definition IPluginComponentInfo.hpp:266
virtual bool has_output() const noexcept
Query whether this component advertises the output capability.
Definition IPluginComponentInfo.hpp:272
virtual RegistrationInfo registration_info() const
Copy implementation-reported current registration metadata.
Definition IPluginComponentInfo.hpp:321
virtual bool register_plugin(const RegistrationInfo &info)
Apply implementation-defined registration data before protected factories.
Definition IPluginComponentInfo.hpp:307
virtual bool has_report() const noexcept
Query whether this component advertises the report capability.
Definition IPluginComponentInfo.hpp:278
virtual std::string url() const =0
Copy the declared home/documentation URL.
virtual std::string id() const =0
Copy the stable discovery identifier for this component.
virtual std::vector< FileFilter > file_filters() const
Copy supported format/role filters for host discovery and file dialogs.
Definition IPluginComponentInfo.hpp:295
virtual std::string caption() const =0
Copy the component display name.
virtual IOutputPlugin * create_output_plugin() const
Allocate a distinct output plugin instance when supported and permitted.
Definition IPluginComponentInfo.hpp:343
virtual std::string license_text() const =0
Copy declared license text or a reference URL.
virtual std::string license_type() const =0
Copy the component's declared license identifier.
virtual std::string vendor() const =0
Copy declared vendor/author metadata.
virtual std::string version() const =0
Copy the component's declared version.
Interface for report-writing plugins.
Definition IReportPlugin.hpp:63
Interface for state / hot-start IO plugins.
Definition IStateIOPlugin.hpp:71
PluginRole
Identifies the I/O direction and category of a file filter entry.
Definition IPluginComponentInfo.hpp:95
PluginType
Identifies a plugin capability.
Definition IPluginComponentInfo.hpp:77
@ OUTPUT_WRITE
Plugin writes a time-series results file (e.g. *.out).
Definition IPluginComponentInfo.hpp:97
@ REPORT_WRITE
Plugin writes a summary report file (e.g. *.rpt).
Definition IPluginComponentInfo.hpp:98
@ STATE_READ
Plugin reads a hot-start / state file.
Definition IPluginComponentInfo.hpp:99
@ INPUT_READ
Plugin reads a model input file (e.g. *.inp).
Definition IPluginComponentInfo.hpp:96
@ STATE_WRITE
Plugin writes a hot-start / state file.
Definition IPluginComponentInfo.hpp:100
@ OUTPUT
Writes time-series results during simulation.
Definition IPluginComponentInfo.hpp:79
@ STATE_IO
Reads / writes simulation state (hot-start)
Definition IPluginComponentInfo.hpp:81
@ INPUT
Reads model data into SimulationContext.
Definition IPluginComponentInfo.hpp:78
@ REPORT
Writes summary statistics post-simulation.
Definition IPluginComponentInfo.hpp:80
Definition ExchangeLaw.hpp:60
IPluginComponentInfo *(*)() PluginInfoFactory
Typedef for the C factory function that plugin libraries must export.
Definition IPluginComponentInfo.hpp:384
const char * plugin_role_to_string(PluginRole role) noexcept
Read a stable static spelling for a plugin file role.
Definition IPluginComponentInfo.hpp:107
A file-format filter advertised by a plugin.
Definition IPluginComponentInfo.hpp:137
PluginRole role
I/O role this filter applies to.
Definition IPluginComponentInfo.hpp:162
std::string description
Human-readable format name shown to the user.
Definition IPluginComponentInfo.hpp:145
std::vector< std::string > mime_types
Optional MIME types for hosts that need them (web, mobile).
Definition IPluginComponentInfo.hpp:170
std::vector< std::string > patterns
Glob patterns that match files in this format.
Definition IPluginComponentInfo.hpp:154
Registration information for plugin activation.
Definition IPluginComponentInfo.hpp:183
std::string contact_email
Contact email for the registrant.
Definition IPluginComponentInfo.hpp:186
std::string deployment_id
Unique deployment or instance ID.
Definition IPluginComponentInfo.hpp:187
std::string license_key
License key or activation token (may be empty for open plugins)
Definition IPluginComponentInfo.hpp:184
std::string organization
Registering organization name.
Definition IPluginComponentInfo.hpp:185