X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fplugin%2Fplugin.h;h=1738c27df0d2e29b3b4e6bf6dc046aa7bbf78d7f;hb=9ac68eb139149d2768848dae5e263cc5a755d439;hp=1d172540806f5a76696b30b637381249757b9917;hpb=b2e0c9076135f47110af2d96dfaee397c597bc90;p=babeltrace.git diff --git a/include/babeltrace/plugin/plugin.h b/include/babeltrace/plugin/plugin.h index 1d172540..1738c27d 100644 --- a/include/babeltrace/plugin/plugin.h +++ b/include/babeltrace/plugin/plugin.h @@ -28,6 +28,7 @@ * SOFTWARE. */ +#include #include #include #include @@ -37,6 +38,7 @@ extern "C" { #endif struct bt_plugin; +struct bt_plugin_set; struct bt_component_class; /** @@ -51,14 +53,18 @@ enum bt_plugin_status { BT_PLUGIN_STATUS_NOMEM = -4, }; -extern struct bt_plugin *bt_plugin_create_from_name(const char *plugin_name); +extern struct bt_plugin *bt_plugin_find(const char *plugin_name); -extern struct bt_plugin **bt_plugin_create_all_from_file(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 **bt_plugin_create_all_from_dir(const char *path, +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. @@ -104,16 +110,23 @@ 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 int64_t bt_plugin_get_component_class_count(struct bt_plugin *plugin); -extern struct bt_component_class *bt_plugin_get_component_class( - struct bt_plugin *plugin, size_t index); +extern struct bt_component_class *bt_plugin_get_component_class_by_index( + struct bt_plugin *plugin, uint64_t index); extern struct bt_component_class *bt_plugin_get_component_class_by_name_and_type( struct bt_plugin *plugin, const char *name, enum bt_component_class_type type); +extern +int64_t 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, + uint64_t index); + #ifdef __cplusplus } #endif