OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm::IPluginComponentInfo Class Referenceabstract

Describes a plugin component: metadata, capabilities, and factory methods. More...

#include <IPluginComponentInfo.hpp>

Collaboration diagram for openswmm::IPluginComponentInfo:

Public Member Functions

virtual ~IPluginComponentInfo ()=default
 
virtual std::string id () const =0
 Unique plugin identifier in reverse-DNS notation.
 
virtual std::string caption () const =0
 Human-readable display name of the plugin.
 
virtual std::string description () const =0
 Detailed description of what this plugin does.
 
virtual std::string version () const =0
 Plugin version string (Semantic Versioning recommended).
 
virtual std::string vendor () const =0
 Vendor / author name.
 
virtual std::string url () const =0
 URL to the plugin's home page or documentation.
 
virtual std::vector< std::string > tags () const
 Additional tags or keywords for discovery.
 
virtual std::string license_type () const =0
 SPDX license identifier for this plugin.
 
virtual std::string license_text () const =0
 Full license text for this plugin.
 
virtual bool provides_output () const =0
 Returns true if this plugin provides an IOutputPlugin instance.
 
virtual bool provides_report () const =0
 Returns true if this plugin provides an IReportPlugin instance.
 
virtual IOutputPlugincreate_output_plugin () const
 Create a new IOutputPlugin instance.
 
virtual IReportPlugincreate_report_plugin () const
 Create a new IReportPlugin instance.
 

Detailed Description

Describes a plugin component: metadata, capabilities, and factory methods.

Plugins implement this class and export it via openswmm_plugin_info(). The PluginFactory uses it to discover capabilities and create instances.

Note
Implement this as a singleton — the PluginFactory holds one pointer to the IPluginComponentInfo and may call create_*_plugin() multiple times.

Constructor & Destructor Documentation

◆ ~IPluginComponentInfo()

virtual openswmm::IPluginComponentInfo::~IPluginComponentInfo ( )
virtualdefault

Member Function Documentation

◆ caption()

virtual std::string openswmm::IPluginComponentInfo::caption ( ) const
pure virtual

Human-readable display name of the plugin.

Returns
e.g. "HDF5 Output Plugin"

◆ create_output_plugin()

virtual IOutputPlugin * openswmm::IPluginComponentInfo::create_output_plugin ( ) const
inlinevirtual

Create a new IOutputPlugin instance.

The PluginFactory calls this if provides_output() returns true. The returned pointer is owned by the caller (PluginFactory). The factory will call delete on it during cleanup.

Returns
New IOutputPlugin instance, or nullptr if not supported.
Here is the caller graph for this function:

◆ create_report_plugin()

virtual IReportPlugin * openswmm::IPluginComponentInfo::create_report_plugin ( ) const
inlinevirtual

Create a new IReportPlugin instance.

The PluginFactory calls this if provides_report() returns true.

Returns
New IReportPlugin instance, or nullptr if not supported.
Here is the caller graph for this function:

◆ description()

virtual std::string openswmm::IPluginComponentInfo::description ( ) const
pure virtual

Detailed description of what this plugin does.

◆ id()

virtual std::string openswmm::IPluginComponentInfo::id ( ) const
pure virtual

Unique plugin identifier in reverse-DNS notation.

Returns
e.g. "org.hydrocouple.openswmm.plugins.hdf5output"

◆ license_text()

virtual std::string openswmm::IPluginComponentInfo::license_text ( ) const
pure virtual

Full license text for this plugin.

Return the complete license text (or a URL to it).

Returns
License text string.

◆ license_type()

virtual std::string openswmm::IPluginComponentInfo::license_type ( ) const
pure virtual

SPDX license identifier for this plugin.

Returns
e.g. "MIT", "GPL-3.0-only", "LicenseRef-Commercial"
See also
https://spdx.org/licenses/

◆ provides_output()

virtual bool openswmm::IPluginComponentInfo::provides_output ( ) const
pure virtual

Returns true if this plugin provides an IOutputPlugin instance.

An output plugin writes simulation result time series to a file or data store during simulation (via the IO thread).

Here is the caller graph for this function:

◆ provides_report()

virtual bool openswmm::IPluginComponentInfo::provides_report ( ) const
pure virtual

Returns true if this plugin provides an IReportPlugin instance.

A report plugin writes summary statistics at the end of a simulation run.

Here is the caller graph for this function:

◆ tags()

virtual std::vector< std::string > openswmm::IPluginComponentInfo::tags ( ) const
inlinevirtual

Additional tags or keywords for discovery.

Returns
Vector of keyword strings.

◆ url()

virtual std::string openswmm::IPluginComponentInfo::url ( ) const
pure virtual

URL to the plugin's home page or documentation.

Returns
e.g. "https://hydrocouple.org/plugins/hdf5"

◆ vendor()

virtual std::string openswmm::IPluginComponentInfo::vendor ( ) const
pure virtual

Vendor / author name.

Returns
e.g. "HydroCouple Consortium"

◆ version()

virtual std::string openswmm::IPluginComponentInfo::version ( ) const
pure virtual

Plugin version string (Semantic Versioning recommended).

Returns
e.g. "1.0.0"

The documentation for this class was generated from the following file: