Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::plugin_loader Class Referenceabstract

Abstract interface for plugin loading. More...

#include <plugin_loader.h>

Inheritance diagram for kcenon::monitoring::plugin_loader:
Inheritance graph
Collaboration diagram for kcenon::monitoring::plugin_loader:
Collaboration graph

Public Member Functions

virtual ~plugin_loader ()=default
 
virtual auto load_plugin (std::string_view path) -> std::unique_ptr< collector_plugin >=0
 Load a plugin from a shared library.
 
virtual auto unload_plugin (std::string_view plugin_name) -> bool=0
 Unload a previously loaded plugin.
 
virtual auto get_last_error () const -> plugin_load_error=0
 Get the last error that occurred.
 
virtual auto get_last_error_message () const -> std::string=0
 Get detailed error message for the last error.
 
virtual auto is_plugin_loaded (std::string_view plugin_name) const -> bool=0
 Check if a plugin is currently loaded.
 
virtual auto get_loaded_plugins () const -> std::vector< std::string >=0
 Get list of loaded plugin names.
 

Detailed Description

Abstract interface for plugin loading.

This interface defines the contract for loading and unloading plugins. Concrete implementations provide platform-specific loading mechanisms.

Definition at line 77 of file plugin_loader.h.

Constructor & Destructor Documentation

◆ ~plugin_loader()

virtual kcenon::monitoring::plugin_loader::~plugin_loader ( )
virtualdefault

Member Function Documentation

◆ get_last_error()

virtual auto kcenon::monitoring::plugin_loader::get_last_error ( ) const -> plugin_load_error
pure virtual

Get the last error that occurred.

Returns
Error code

Implemented in kcenon::monitoring::dynamic_plugin_loader.

◆ get_last_error_message()

virtual auto kcenon::monitoring::plugin_loader::get_last_error_message ( ) const -> std::string
pure virtual

Get detailed error message for the last error.

Returns
Error message string

Implemented in kcenon::monitoring::dynamic_plugin_loader.

◆ get_loaded_plugins()

virtual auto kcenon::monitoring::plugin_loader::get_loaded_plugins ( ) const -> std::vector< std::string >
pure virtual

Get list of loaded plugin names.

Returns
Vector of plugin names

Implemented in kcenon::monitoring::dynamic_plugin_loader.

◆ is_plugin_loaded()

virtual auto kcenon::monitoring::plugin_loader::is_plugin_loaded ( std::string_view plugin_name) const -> bool
pure virtual

Check if a plugin is currently loaded.

Parameters
plugin_nameName of the plugin
Returns
True if the plugin is loaded

Implemented in kcenon::monitoring::dynamic_plugin_loader.

◆ load_plugin()

virtual auto kcenon::monitoring::plugin_loader::load_plugin ( std::string_view path) -> std::unique_ptr< collector_plugin >
pure virtual

Load a plugin from a shared library.

Parameters
pathPath to the plugin library (.so/.dylib/.dll)
Returns
Unique pointer to the loaded plugin, or nullptr on failure

The loader will:

  1. Load the shared library
  2. Resolve required symbols (create_plugin, etc.)
  3. Verify API version compatibility
  4. Create the plugin instance
  5. Track the plugin for cleanup

On failure, check get_last_error() for details.

Implemented in kcenon::monitoring::dynamic_plugin_loader.

◆ unload_plugin()

virtual auto kcenon::monitoring::plugin_loader::unload_plugin ( std::string_view plugin_name) -> bool
pure virtual

Unload a previously loaded plugin.

Parameters
plugin_nameName of the plugin to unload
Returns
True if unloaded successfully

This will:

  1. Destroy the plugin instance
  2. Unload the shared library
  3. Clean up tracking data

The plugin instance must have been destroyed before calling this.

Implemented in kcenon::monitoring::dynamic_plugin_loader.


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