*/
#include <babeltrace/babeltrace-internal.h>
+#include <babeltrace/object-internal.h>
#include <babeltrace/plugin/component-factory.h>
#include <babeltrace/plugin/component.h>
+#include <babeltrace/plugin/component-class-internal.h>
#include <babeltrace/plugin/plugin-system.h>
#include <babeltrace/plugin/plugin.h>
#include <glib.h>
-#include <gmodule.h>
-
-struct component_class {
- enum bt_component_type type;
- GString *name;
-};
-
-struct source_component_class {
- struct component_class parent;
- bt_component_source_init_cb init;
-
-};
-
-struct sink_component_class {
- struct component_class parent;
- bt_component_sink_init_cb init;
-};
-
-struct plugin {
- const char *name;
- const char *author;
- const char *license;
- bt_plugin_init_func init;
- bt_plugin_init_func exit;
- GModule *module;
- /** Array of pointers to struct component_class */
- GPtrArray *components;
-};
struct bt_component_factory {
- /** Array of pointers to struct plugin */
+ struct bt_object base;
+ /** Array of pointers to struct bt_plugin */
GPtrArray *plugins;
+ /** Array of pointers to struct bt_component_class */
+ GPtrArray *component_classes;
};
#endif /* BABELTRACE_PLUGIN_COMPONENT_FACTORY_INTERNAL_H */