Struct GatewayPluginLoadResult

Struct Documentation

struct GatewayPluginLoadResult

Result of loading a gateway plugin.

RAII wrapper guaranteeing correct destruction order: provider pointers are invalidated first, then the plugin is destroyed, then dlclose is called. Move-only (no copy).

Public Functions

GatewayPluginLoadResult() = default
~GatewayPluginLoadResult()
GatewayPluginLoadResult(GatewayPluginLoadResult &&other) noexcept
GatewayPluginLoadResult &operator=(GatewayPluginLoadResult &&other) noexcept
GatewayPluginLoadResult(const GatewayPluginLoadResult&) = delete
GatewayPluginLoadResult &operator=(const GatewayPluginLoadResult&) = delete
inline void *dl_handle() const

Get the dlopen handle (for dlsym queries by PluginManager)

Public Members

std::unique_ptr<GatewayPlugin> plugin
UpdateProvider *update_provider = nullptr

Non-owning pointer to UpdateProvider interface (null if plugin doesn’t provide updates). Lifetime tied to plugin - do not use after plugin is destroyed.

IntrospectionProvider *introspection_provider = nullptr

Non-owning pointer to IntrospectionProvider interface (null if not provided). Lifetime tied to plugin - do not use after plugin is destroyed.

LogProvider *log_provider = nullptr

Non-owning pointer to LogProvider interface (null if not provided). Lifetime tied to plugin - do not use after plugin is destroyed.

ScriptProvider *script_provider = nullptr

Non-owning pointer to ScriptProvider interface (null if not provided). Lifetime tied to plugin - do not use after plugin is destroyed.

DataProvider *data_provider = nullptr

Non-owning pointer to DataProvider interface (null if not provided). Unlike LogProvider/ScriptProvider, multiple plugins can each provide data for different entities.

OperationProvider *operation_provider = nullptr

Non-owning pointer to OperationProvider interface (null if not provided).

FaultProvider *fault_provider = nullptr

Non-owning pointer to FaultProvider interface (null if not provided).