|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
C API for dynamically loaded collector plugins. More...

Go to the source code of this file.
Classes | |
| struct | plugin_api_metadata |
| Plugin API metadata information. More... | |
Namespaces | |
| namespace | kcenon |
| namespace | kcenon::monitoring |
Macros | |
| #define | PLUGIN_API_VERSION 1 |
| #define | PLUGIN_EXPORT |
| #define | CREATE_PLUGIN_FN_NAME "create_plugin" |
| #define | DESTROY_PLUGIN_FN_NAME "destroy_plugin" |
| #define | GET_PLUGIN_INFO_FN_NAME "get_plugin_info" |
Typedefs | |
| typedef struct plugin_api_metadata | plugin_api_metadata |
| typedef kcenon::monitoring::collector_plugin *(* | create_plugin_fn) (void) |
| Create a plugin instance. | |
| typedef void(* | destroy_plugin_fn) (kcenon::monitoring::collector_plugin *plugin) |
| Destroy a plugin instance. | |
| typedef const plugin_api_metadata *(* | get_plugin_info_fn) (void) |
| Get plugin API metadata. | |
C API for dynamically loaded collector plugins.
This file defines the C ABI interface that all dynamically loaded plugins must implement. Using a C interface ensures compatibility across different C++ compilers and standard library versions.
Plugin Requirements:
Example Plugin Implementation:
Definition in file plugin_api.h.
| #define CREATE_PLUGIN_FN_NAME "create_plugin" |
Plugin function names (for dlsym/GetProcAddress lookup)
Definition at line 140 of file plugin_api.h.
| #define DESTROY_PLUGIN_FN_NAME "destroy_plugin" |
Definition at line 141 of file plugin_api.h.
| #define GET_PLUGIN_INFO_FN_NAME "get_plugin_info" |
Definition at line 142 of file plugin_api.h.
| #define PLUGIN_API_VERSION 1 |
Definition at line 57 of file plugin_api.h.
| #define PLUGIN_EXPORT |
Definition at line 65 of file plugin_api.h.
| typedef kcenon::monitoring::collector_plugin *(* create_plugin_fn) (void) |
Create a plugin instance.
This function must be exported by all plugins. The returned pointer is managed by the plugin loader. Do NOT delete the returned pointer directly - use destroy_plugin() instead.
Definition at line 111 of file plugin_api.h.
| typedef void(* destroy_plugin_fn) (kcenon::monitoring::collector_plugin *plugin) |
Destroy a plugin instance.
| plugin | Plugin instance to destroy (created by create_plugin) |
This function must be exported by all plugins. It is responsible for cleaning up all resources allocated by the plugin. After this call, the plugin pointer becomes invalid.
Definition at line 123 of file plugin_api.h.
| typedef const plugin_api_metadata *(* get_plugin_info_fn) (void) |
Get plugin API metadata.
This function must be exported by all plugins. The returned pointer must remain valid for the lifetime of the plugin. The metadata is used to verify API version compatibility.
Definition at line 135 of file plugin_api.h.
| typedef struct plugin_api_metadata plugin_api_metadata |