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.