OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm::DiscoveredPlugin Struct Reference

A plugin grouped by id with all the roles and filters it advertises. More...

#include <PluginDiscovery.hpp>

Collaboration diagram for openswmm::DiscoveredPlugin:

Public Attributes

std::string plugin_id
 IPluginComponentInfo::id()
 
std::string plugin_version
 IPluginComponentInfo::version()
 
std::string plugin_caption
 IPluginComponentInfo::caption()
 
std::vector< PluginRoleroles
 Distinct roles advertised across all filters.
 
std::vector< FileFilterfilters
 Every filter the plugin advertises.
 
bool is_builtin = false
 True when the plugin was registered as an engine built-in (via PluginFactory::register_builtin_infos) rather than discovered through the on-disk shared-library scan.
 

Detailed Description

A plugin grouped by id with all the roles and filters it advertises.

Companion view to DiscoveredFilter for hosts that need to reason about plugin capabilities at the plugin level rather than per-filter. The driving use case is detecting tri-role plugins (e.g., the GeoPackage trio sharing a single plugin_id) so a GUI can offer a "single container" toggle when one plugin handles INPUT_READ + REPORT_WRITE + OUTPUT_WRITE for the same extension.

A plugin appears once per plugin_id, with roles and filters accumulated across every IPluginComponentInfo registered under that id.

Member Data Documentation

◆ filters

std::vector<FileFilter> openswmm::DiscoveredPlugin::filters

Every filter the plugin advertises.

◆ is_builtin

bool openswmm::DiscoveredPlugin::is_builtin = false

True when the plugin was registered as an engine built-in (via PluginFactory::register_builtin_infos) rather than discovered through the on-disk shared-library scan.

Slice RC.3 (APPROVED 2026-05-25). Hosts use this to gate UI affordances that don't make sense for built-ins — e.g. the Simulation Options Plugins-tab Remove button cannot dlclose a statically-linked plugin, so it's greyed out when is_builtin == true. The default (false) keeps older callers' behavior unchanged: any plugin discovered via the directory scan is treated as a non-builtin.

◆ plugin_caption

std::string openswmm::DiscoveredPlugin::plugin_caption

◆ plugin_id

std::string openswmm::DiscoveredPlugin::plugin_id

◆ plugin_version

std::string openswmm::DiscoveredPlugin::plugin_version

◆ roles

std::vector<PluginRole> openswmm::DiscoveredPlugin::roles

Distinct roles advertised across all filters.


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