X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fplugin%2Fplugin.h;h=0e0bc8da54068df2fba76327ed2826e3a2b8b8f2;hb=a8ff38ef4b08728cd1bb93ae66a888dfbda4fbb2;hp=10581984f9519cc69ad08a054a0840a67d492396;hpb=33b34c437c354e1c065e33151135bc2e57e2e29c;p=babeltrace.git diff --git a/include/babeltrace/plugin/plugin.h b/include/babeltrace/plugin/plugin.h index 10581984..0e0bc8da 100644 --- a/include/babeltrace/plugin/plugin.h +++ b/include/babeltrace/plugin/plugin.h @@ -30,13 +30,14 @@ #include #include -#include +#include #ifdef __cplusplus extern "C" { #endif struct bt_plugin; +struct bt_plugin_set; struct bt_component_class; /** @@ -51,12 +52,18 @@ enum bt_plugin_status { BT_PLUGIN_STATUS_NOMEM = -4, }; -extern struct bt_plugin *bt_plugin_create_from_file(const char *path); +extern struct bt_plugin *bt_plugin_find(const char *plugin_name); -extern struct bt_plugin **bt_plugin_create_all_from_dir(const char *path, +extern struct bt_component_class *bt_plugin_find_component_class( + const char *plugin_name, const char *component_class_name, + enum bt_component_class_type component_class_type); + +extern struct bt_plugin_set *bt_plugin_create_all_from_file(const char *path); + +extern struct bt_plugin_set *bt_plugin_create_all_from_dir(const char *path, bool recurse); -extern struct bt_plugin **bt_plugin_create_all_from_static(void); +extern struct bt_plugin_set *bt_plugin_create_all_from_static(void); /** * Get the name of a plug-in. @@ -98,6 +105,10 @@ extern const char *bt_plugin_get_description(struct bt_plugin *plugin); */ extern const char *bt_plugin_get_path(struct bt_plugin *plugin); +extern enum bt_plugin_status bt_plugin_get_version(struct bt_plugin *plugin, + unsigned int *major, unsigned int *minor, unsigned int *patch, + const char **extra); + extern int bt_plugin_get_component_class_count(struct bt_plugin *plugin); extern struct bt_component_class *bt_plugin_get_component_class( @@ -106,7 +117,14 @@ extern struct bt_component_class *bt_plugin_get_component_class( extern struct bt_component_class *bt_plugin_get_component_class_by_name_and_type( struct bt_plugin *plugin, const char *name, - enum bt_component_type type); + enum bt_component_class_type type); + +extern +int bt_plugin_set_get_plugin_count(struct bt_plugin_set *plugin_set); + +extern +struct bt_plugin *bt_plugin_set_get_plugin(struct bt_plugin_set *plugin_set, + unsigned int index); #ifdef __cplusplus }