-#ifndef BABELTRACE_PLUGIN_INTERNAL_H
-#define BABELTRACE_PLUGIN_INTERNAL_H
+#ifndef BABELTRACE_PLUGIN_COMPONENT_INTERNAL_H
+#define BABELTRACE_PLUGIN_COMPONENT_INTERNAL_H
/*
- * BabelTrace - Plug-in internal
+ * BabelTrace - Component internal
*
* Copyright 2015 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
* SOFTWARE.
*/
-#include <stdint.h>
+#include <babeltrace/babeltrace-internal.h>
+#include <babeltrace/plugin/plugin.h>
+#include <babeltrace/plugin/component.h>
+#include <babeltrace/plugin/plugin-system.h>
+#include <babeltrace/ctf-writer/ref-internal.h>
+#include <glib.h>
+#include <stdio.h>
#ifdef __cplusplus
extern "C" {
struct bt_notification;
-struct bt_plugin {
- const char * name;
+struct bt_component {
+ struct bt_ctf_ref ref_count;
+ GString *name;
enum bt_plugin_type type;
+ /** No ownership taken */
+ FILE *error_stream;
+
+ void *user_data;
+ bt_plugin_destroy_cb user_data_destroy;
+ bt_plugin_destroy_cb destroy;
};
+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);
+
#ifdef __cplusplus
}
#endif
-#endif /* BABELTRACE_PLUGIN_INTERNAL_H */
+#endif /* BABELTRACE_PLUGIN_COMPONENT_INTERNAL_H */