57#define PLUGIN_API_VERSION 1
60#if defined(_WIN32) || defined(_WIN64)
61 #define PLUGIN_EXPORT __declspec(dllexport)
62#elif defined(__GNUC__) || defined(__clang__)
63 #define PLUGIN_EXPORT __attribute__((visibility("default")))
70namespace kcenon {
namespace monitoring {
class collector_plugin; } }
140#define CREATE_PLUGIN_FN_NAME "create_plugin"
141#define DESTROY_PLUGIN_FN_NAME "destroy_plugin"
142#define GET_PLUGIN_INFO_FN_NAME "get_plugin_info"
161#define IMPLEMENT_PLUGIN(PluginClass, Name, Version, Description, Author, Category) \
163 PLUGIN_EXPORT struct collector_plugin* create_plugin() { \
164 return new PluginClass(); \
167 PLUGIN_EXPORT void destroy_plugin(struct collector_plugin* plugin) { \
171 PLUGIN_EXPORT const plugin_api_metadata* get_plugin_info() { \
172 static plugin_api_metadata metadata = { \
173 PLUGIN_API_VERSION, \
Pure virtual interface for metric collector plugins.
struct plugin_api_metadata plugin_api_metadata
void(* destroy_plugin_fn)(kcenon::monitoring::collector_plugin *plugin)
Destroy a plugin instance.