33#ifndef OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
34#define OPENSWMM_IPLUGIN_COMPONENT_INFO_HPP
69 virtual std::string
id()
const = 0;
92 virtual std::string
vendor()
const = 0;
98 virtual std::string
url()
const = 0;
104 virtual std::vector<std::string>
tags()
const {
return {}; }
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:57
virtual std::vector< std::string > tags() const
Additional tags or keywords for discovery.
Definition IPluginComponentInfo.hpp:104
virtual std::string description() const =0
Detailed description of what this plugin does.
virtual IReportPlugin * create_report_plugin() const
Create a new IReportPlugin instance.
Definition IPluginComponentInfo.hpp:164
virtual ~IPluginComponentInfo()=default
virtual bool provides_report() const =0
Returns true if this plugin provides an IReportPlugin instance.
virtual std::string url() const =0
URL to the plugin's home page or documentation.
virtual bool provides_output() const =0
Returns true if this plugin provides an IOutputPlugin instance.
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 IOutputPlugin * create_output_plugin() const
Create a new IOutputPlugin instance.
Definition IPluginComponentInfo.hpp:155
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
Definition Controls.cpp:24
IPluginComponentInfo *(*)() PluginInfoFactory
Typedef for the C factory function that plugin libraries must export.
Definition IPluginComponentInfo.hpp:187