49#ifndef OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
50#define OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
114 default:
return "UNKNOWN";
207 virtual std::string
id()
const = 0;
236 virtual std::string
url()
const = 0;
242 virtual std::vector<std::string>
tags()
const {
return {}; }
270 virtual bool has_input() const noexcept {
return false; }
Plugin lifecycle state enumerator.
Interface for output-writing plugins.
Definition IOutputPlugin.hpp:73
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:195
virtual IStateIOPlugin * create_state_io_plugin() const
Create a new IStateIOPlugin instance.
Definition IPluginComponentInfo.hpp:395
virtual IInputPlugin * create_input_plugin() const
Create a new IInputPlugin instance.
Definition IPluginComponentInfo.hpp:364
virtual std::vector< std::string > tags() const
Additional tags or keywords for discovery.
Definition IPluginComponentInfo.hpp:242
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:288
virtual IReportPlugin * create_report_plugin() const
Create a new IReportPlugin instance.
Definition IPluginComponentInfo.hpp:384
virtual ~IPluginComponentInfo()=default
virtual bool registered() const noexcept
Check whether the plugin is currently registered.
Definition IPluginComponentInfo.hpp:339
virtual bool has_input() const noexcept
True if this plugin can create an IInputPlugin.
Definition IPluginComponentInfo.hpp:270
virtual bool has_output() const noexcept
True if this plugin can create an IOutputPlugin.
Definition IPluginComponentInfo.hpp:276
virtual RegistrationInfo registration_info() const
Get the current registration information.
Definition IPluginComponentInfo.hpp:349
virtual bool register_plugin(const RegistrationInfo &info)
Register the plugin with the provided registration information.
Definition IPluginComponentInfo.hpp:326
virtual bool has_report() const noexcept
True if this plugin can create an IReportPlugin.
Definition IPluginComponentInfo.hpp:282
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:310
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:375
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:61
Interface for state / hot-start IO plugins.
Definition IStateIOPlugin.hpp:69
PluginRole
Identifies the I/O direction and category of a file filter entry.
Definition IPluginComponentInfo.hpp:93
const char * plugin_role_to_string(PluginRole role) noexcept
Convert a PluginRole to a stable, human-readable string.
Definition IPluginComponentInfo.hpp:107
PluginType
Identifies a plugin capability.
Definition IPluginComponentInfo.hpp:75
@ OUTPUT_WRITE
Plugin writes a time-series results file (e.g. *.out).
Definition IPluginComponentInfo.hpp:95
@ REPORT_WRITE
Plugin writes a summary report file (e.g. *.rpt).
Definition IPluginComponentInfo.hpp:96
@ STATE_READ
Plugin reads a hot-start / state file.
Definition IPluginComponentInfo.hpp:97
@ INPUT_READ
Plugin reads a model input file (e.g. *.inp).
Definition IPluginComponentInfo.hpp:94
@ STATE_WRITE
Plugin writes a hot-start / state file.
Definition IPluginComponentInfo.hpp:98
@ OUTPUT
Writes time-series results during simulation.
Definition IPluginComponentInfo.hpp:77
@ STATE_IO
Reads / writes simulation state (hot-start)
Definition IPluginComponentInfo.hpp:79
@ INPUT
Reads model data into SimulationContext.
Definition IPluginComponentInfo.hpp:76
@ REPORT
Writes summary statistics post-simulation.
Definition IPluginComponentInfo.hpp:78
Definition NodeCoupling.cpp:16
IPluginComponentInfo *(*)() PluginInfoFactory
Typedef for the C factory function that plugin libraries must export.
Definition IPluginComponentInfo.hpp:418
A file-format filter advertised by a plugin.
Definition IPluginComponentInfo.hpp:131
PluginRole role
I/O role this filter applies to.
Definition IPluginComponentInfo.hpp:156
std::string description
Human-readable format name shown to the user.
Definition IPluginComponentInfo.hpp:139
std::vector< std::string > mime_types
Optional MIME types for hosts that need them (web, mobile).
Definition IPluginComponentInfo.hpp:164
std::vector< std::string > patterns
Glob patterns that match files in this format.
Definition IPluginComponentInfo.hpp:148
Registration information for plugin activation.
Definition IPluginComponentInfo.hpp:177
std::string contact_email
Contact email for the registrant.
Definition IPluginComponentInfo.hpp:180
std::string deployment_id
Unique deployment or instance ID.
Definition IPluginComponentInfo.hpp:181
std::string license_key
License key or activation token (may be empty for open plugins)
Definition IPluginComponentInfo.hpp:178
std::string organization
Registering organization name.
Definition IPluginComponentInfo.hpp:179