X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fplugin%2Fplugin-internal.h;h=4f361d6d6d2931285565f81fe64cb637581f43e0;hb=b6de043b9a9c465bf90cdf9dcee963be08a9e370;hp=3fc85c858c90b905e5a40531960cfb4308f729b1;hpb=633edee06e8dea4a4a2ba34a175d974f8b90726d;p=babeltrace.git diff --git a/include/babeltrace/plugin/plugin-internal.h b/include/babeltrace/plugin/plugin-internal.h index 3fc85c85..4f361d6d 100644 --- a/include/babeltrace/plugin/plugin-internal.h +++ b/include/babeltrace/plugin/plugin-internal.h @@ -1,8 +1,8 @@ -#ifndef BABELTRACE_PLUGIN_COMPONENT_INTERNAL_H -#define BABELTRACE_PLUGIN_COMPONENT_INTERNAL_H +#ifndef BABELTRACE_PLUGIN_PLUGIN_INTERNAL_H +#define BABELTRACE_PLUGIN_PLUGIN_INTERNAL_H /* - * BabelTrace - Component internal + * BabelTrace - Plug-in Internal * * Copyright 2015 Jérémie Galarneau * @@ -28,40 +28,39 @@ */ #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include -#ifdef __cplusplus -extern "C" { -#endif +struct bt_plugin_shared_lib_handle { + struct bt_object base; + GString *path; + GModule *module; -struct bt_notification; + /* True if initialization function was called */ + bool init_called; + bt_plugin_exit_func exit; +}; -struct bt_component { - struct bt_ctf_ref ref_count; - GString *name; - enum bt_plugin_type type; - /** No ownership taken */ - FILE *error_stream; +struct bt_plugin { + struct bt_object base; + bool frozen; - void *user_data; - bt_plugin_destroy_cb user_data_destroy; - bt_plugin_destroy_cb destroy; -}; + /* Owned by this */ + struct bt_plugin_shared_lib_handle *shared_lib_handle; -BT_HIDDEN -enum bt_component_status bt_component_init(struct bt_component *plugin, - const char *name, void *user_data, - bt_component_destroy_cb destroy_func, - enum bt_component_type component_type, - bt_component_destroy_cb component_destroy); + /* Array of pointers to bt_component_class (owned by this) */ + GPtrArray *comp_classes; -#ifdef __cplusplus -} -#endif + /* Pointers to plugin's memory: do NOT free */ + const struct __bt_plugin_descriptor *descriptor; + const char *name; + const char *author; + const char *license; + const char *description; + bt_plugin_init_func init; + const struct __bt_plugin_descriptor_version *version; +}; -#endif /* BABELTRACE_PLUGIN_COMPONENT_INTERNAL_H */ +#endif /* BABELTRACE_PLUGIN_PLUGIN_INTERNAL_H */