33#ifndef OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
34#define OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
98 default:
return "UNKNOWN";
191 virtual std::string
id()
const = 0;
220 virtual std::string
url()
const = 0;
226 virtual std::vector<std::string>
tags()
const {
return {}; }
254 virtual bool has_input() const noexcept {
return false; }
Plugin lifecycle state enumerator.
Interface for output-writing plugins.
Definition IOutputPlugin.hpp:57
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:179
virtual IStateIOPlugin * create_state_io_plugin() const
Create a new IStateIOPlugin instance.
Definition IPluginComponentInfo.hpp:379
virtual IInputPlugin * create_input_plugin() const
Create a new IInputPlugin instance.
Definition IPluginComponentInfo.hpp:348
virtual std::vector< std::string > tags() const
Additional tags or keywords for discovery.
Definition IPluginComponentInfo.hpp:226
virtual std::string description() const =0
Detailed description of what this plugin does.
virtual bool has_state_io() const noexcept
True if this plugin can create an IStateIOPlugin.
Definition IPluginComponentInfo.hpp:272
virtual IReportPlugin * create_report_plugin() const
Create a new IReportPlugin instance.
Definition IPluginComponentInfo.hpp:368
virtual ~IPluginComponentInfo()=default
virtual bool registered() const noexcept
Check whether the plugin is currently registered.
Definition IPluginComponentInfo.hpp:323
virtual bool has_input() const noexcept
True if this plugin can create an IInputPlugin.
Definition IPluginComponentInfo.hpp:254
virtual bool has_output() const noexcept
True if this plugin can create an IOutputPlugin.
Definition IPluginComponentInfo.hpp:260
virtual RegistrationInfo registration_info() const
Get the current registration information.
Definition IPluginComponentInfo.hpp:333
virtual bool register_plugin(const RegistrationInfo &info)
Register the plugin with the provided registration information.
Definition IPluginComponentInfo.hpp:310
virtual bool has_report() const noexcept
True if this plugin can create an IReportPlugin.
Definition IPluginComponentInfo.hpp:266
virtual std::string url() const =0
URL to the plugin's home page or documentation.
virtual std::string id() const =0
Unique plugin identifier in reverse-DNS notation.
virtual std::vector< FileFilter > file_filters() const
File-format filters this plugin handles.
Definition IPluginComponentInfo.hpp:294
virtual std::string caption() const =0
Human-readable display name of the plugin.
virtual IOutputPlugin * create_output_plugin() const
Create a new IOutputPlugin instance.
Definition IPluginComponentInfo.hpp:359
virtual std::string license_text() const =0
Full license text for this plugin.
virtual std::string license_type() const =0
SPDX license identifier for this plugin.
virtual std::string vendor() const =0
Vendor / author name.
virtual std::string version() const =0
Plugin version string (Semantic Versioning recommended).
Interface for report-writing plugins.
Definition IReportPlugin.hpp:45
Interface for state / hot-start IO plugins.
Definition IStateIOPlugin.hpp:53
PluginRole
Identifies the I/O direction and category of a file filter entry.
Definition IPluginComponentInfo.hpp:77
const char * plugin_role_to_string(PluginRole role) noexcept
Convert a PluginRole to a stable, human-readable string.
Definition IPluginComponentInfo.hpp:91
PluginType
Identifies a plugin capability.
Definition IPluginComponentInfo.hpp:59
@ OUTPUT_WRITE
Plugin writes a time-series results file (e.g. *.out).
@ REPORT_WRITE
Plugin writes a summary report file (e.g. *.rpt).
@ STATE_READ
Plugin reads a hot-start / state file.
@ INPUT_READ
Plugin reads a model input file (e.g. *.inp).
@ STATE_WRITE
Plugin writes a hot-start / state file.
@ OUTPUT
Writes time-series results during simulation.
@ STATE_IO
Reads / writes simulation state (hot-start)
@ INPUT
Reads model data into SimulationContext.
@ REPORT
Writes summary statistics post-simulation.
Definition NodeCoupling.cpp:15
IPluginComponentInfo *(*)() PluginInfoFactory
Typedef for the C factory function that plugin libraries must export.
Definition IPluginComponentInfo.hpp:402
A file-format filter advertised by a plugin.
Definition IPluginComponentInfo.hpp:115
PluginRole role
I/O role this filter applies to.
Definition IPluginComponentInfo.hpp:140
std::string description
Human-readable format name shown to the user.
Definition IPluginComponentInfo.hpp:123
std::vector< std::string > mime_types
Optional MIME types for hosts that need them (web, mobile).
Definition IPluginComponentInfo.hpp:148
std::vector< std::string > patterns
Glob patterns that match files in this format.
Definition IPluginComponentInfo.hpp:132
Registration information for plugin activation.
Definition IPluginComponentInfo.hpp:161
std::string contact_email
Contact email for the registrant.
Definition IPluginComponentInfo.hpp:164
std::string deployment_id
Unique deployment or instance ID.
Definition IPluginComponentInfo.hpp:165
std::string license_key
License key or activation token (may be empty for open plugins)
Definition IPluginComponentInfo.hpp:162
std::string organization
Registering organization name.
Definition IPluginComponentInfo.hpp:163