Fix: use `babeltrace2` instead of `babeltrace` in plugin paths
[babeltrace.git] / lib / plugin / plugin.c
index 70e99e4f033d7fd018c25e1efa546f48e7c3c55c..a6e9806d21f77a26fcb8b61cd71e0c3cf7f3c808 100644 (file)
@@ -1,6 +1,6 @@
 /*
+ * Copyright 2017-2018 Philippe Proulx <pproulx@efficios.com>
  * Copyright 2016 Jérémie Galarneau <jeremie.galarneau@efficios.com>
- * Copyright 2017 Philippe Proulx <pproulx@efficios.com>
  *
  * Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
  */
 
 #define BT_LOG_TAG "PLUGIN"
-#include <babeltrace/lib-logging-internal.h>
-
-#include <babeltrace/babeltrace-internal.h>
-#include <babeltrace/compiler-internal.h>
-#include <babeltrace/object.h>
-#include <babeltrace/common-internal.h>
-#include <babeltrace/plugin/plugin-internal.h>
-#include <babeltrace/plugin/plugin-so-internal.h>
-#include <babeltrace/graph/component-class.h>
-#include <babeltrace/graph/component-class-internal.h>
-#include <babeltrace/types.h>
-#include <babeltrace/assert-internal.h>
-#include <babeltrace/assert-pre-internal.h>
+#include <babeltrace2/lib-logging-internal.h>
+
+#include <babeltrace2/assert-internal.h>
+#include <babeltrace2/assert-pre-internal.h>
+#include <babeltrace2/babeltrace-internal.h>
+#include <babeltrace2/compiler-internal.h>
+#include <babeltrace2/common-internal.h>
+#include <babeltrace2/plugin/plugin-internal.h>
+#include <babeltrace2/plugin/plugin-so-internal.h>
+#include <babeltrace2/plugin/plugin-const.h>
+#include <babeltrace2/graph/component-class-const.h>
+#include <babeltrace2/graph/component-class-internal.h>
+#include <babeltrace2/types.h>
 #include <glib.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <ftw.h>
 #include <pthread.h>
 
-#define PYTHON_PLUGIN_PROVIDER_FILENAME        "libbabeltrace-python-plugin-provider." G_MODULE_SUFFIX
+#define PYTHON_PLUGIN_PROVIDER_FILENAME        "libbabeltrace2-python-plugin-provider." G_MODULE_SUFFIX
 #define PYTHON_PLUGIN_PROVIDER_SYM_NAME        bt_plugin_python_create_all_from_file
 #define PYTHON_PLUGIN_PROVIDER_SYM_NAME_STR    TOSTRING(PYTHON_PLUGIN_PROVIDER_SYM_NAME)
 
 #define APPEND_ALL_FROM_DIR_NFDOPEN_MAX        8
 
 #ifdef BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT
-#include <babeltrace/plugin/python-plugin-provider-internal.h>
+#include <babeltrace2/plugin/python-plugin-provider-internal.h>
 
 static
 struct bt_plugin_set *(*bt_plugin_python_create_all_from_file_sym)(const char *path) =
@@ -116,22 +116,21 @@ uint64_t bt_plugin_set_get_plugin_count(struct bt_plugin_set *plugin_set)
        return (uint64_t) plugin_set->plugins->len;
 }
 
-struct bt_plugin *bt_plugin_set_borrow_plugin_by_index(
-               struct bt_plugin_set *plugin_set,
-               uint64_t index)
+const struct bt_plugin *bt_plugin_set_borrow_plugin_by_index_const(
+               const struct bt_plugin_set *plugin_set, uint64_t index)
 {
        BT_ASSERT_PRE_NON_NULL(plugin_set, "Plugin set");
        BT_ASSERT_PRE_VALID_INDEX(index, plugin_set->plugins->len);
        return g_ptr_array_index(plugin_set->plugins, index);
 }
 
-struct bt_plugin_set *bt_plugin_create_all_from_static(void)
+const struct bt_plugin_set *bt_plugin_find_all_from_static(void)
 {
        /* bt_plugin_so_create_all_from_static() logs errors */
        return bt_plugin_so_create_all_from_static();
 }
 
-struct bt_plugin_set *bt_plugin_create_all_from_file(const char *path)
+const struct bt_plugin_set *bt_plugin_find_all_from_file(const char *path)
 {
        struct bt_plugin_set *plugin_set = NULL;
 
@@ -171,13 +170,13 @@ static void destroy_gstring(void *data)
        g_string_free(data, TRUE);
 }
 
-struct bt_plugin *bt_plugin_find(const char *plugin_name)
+const struct bt_plugin *bt_plugin_find(const char *plugin_name)
 {
        const char *system_plugin_dir;
        char *home_plugin_dir = NULL;
        const char *envvar;
-       struct bt_plugin *plugin = NULL;
-       struct bt_plugin_set *plugin_set = NULL;
+       const struct bt_plugin *plugin = NULL;
+       const struct bt_plugin_set *plugin_set = NULL;
        GPtrArray *dirs = NULL;
        int ret;
        size_t i, j;
@@ -196,10 +195,10 @@ struct bt_plugin *bt_plugin_find(const char *plugin_name)
         *
         * 1. BABELTRACE_PLUGIN_PATH environment variable
         *    (colon-separated list of directories)
-        * 2. ~/.local/lib/babeltrace/plugins
+        * 2. ~/.local/lib/babeltrace2/plugins
         * 3. Default system directory for Babeltrace plugins, usually
-        *    /usr/lib/babeltrace/plugins or
-        *    /usr/local/lib/babeltrace/plugins if installed
+        *    /usr/lib/babeltrace2/plugins or
+        *    /usr/local/lib/babeltrace2/plugins if installed
         *    locally
         * 4. Built-in plugins (static)
         *
@@ -247,7 +246,7 @@ struct bt_plugin *bt_plugin_find(const char *plugin_name)
 
                /*
                 * Skip this if the directory does not exist because
-                * bt_plugin_create_all_from_dir() would log a warning.
+                * bt_plugin_find_all_from_dir() would log a warning.
                 */
                if (!g_file_test(dir->str, G_FILE_TEST_IS_DIR)) {
                        BT_LOGV("Skipping nonexistent directory path: "
@@ -255,8 +254,8 @@ struct bt_plugin *bt_plugin_find(const char *plugin_name)
                        continue;
                }
 
-               /* bt_plugin_create_all_from_dir() logs details/errors */
-               plugin_set = bt_plugin_create_all_from_dir(dir->str, BT_FALSE);
+               /* bt_plugin_find_all_from_dir() logs details/errors */
+               plugin_set = bt_plugin_find_all_from_dir(dir->str, BT_FALSE);
                if (!plugin_set) {
                        BT_LOGD("No plugins found in directory: path=\"%s\"",
                                dir->str);
@@ -264,7 +263,7 @@ struct bt_plugin *bt_plugin_find(const char *plugin_name)
                }
 
                for (j = 0; j < plugin_set->plugins->len; j++) {
-                       struct bt_plugin *candidate_plugin =
+                       const struct bt_plugin *candidate_plugin =
                                g_ptr_array_index(plugin_set->plugins, j);
 
                        if (strcmp(bt_plugin_get_name(candidate_plugin),
@@ -282,10 +281,10 @@ struct bt_plugin *bt_plugin_find(const char *plugin_name)
        }
 
        bt_object_put_ref(plugin_set);
-       plugin_set = bt_plugin_create_all_from_static();
+       plugin_set = bt_plugin_find_all_from_static();
        if (plugin_set) {
                for (j = 0; j < plugin_set->plugins->len; j++) {
-                       struct bt_plugin *candidate_plugin =
+                       const struct bt_plugin *candidate_plugin =
                                g_ptr_array_index(plugin_set->plugins, j);
 
                        if (strcmp(bt_plugin_get_name(candidate_plugin),
@@ -341,7 +340,7 @@ int nftw_append_all_from_dir(const char *file, const struct stat *sb, int flag,
        switch (flag) {
        case FTW_F:
        {
-               struct bt_plugin_set *plugins_from_file;
+               const struct bt_plugin_set *plugins_from_file;
 
                if (name[0] == '.') {
                        /* Skip hidden files */
@@ -349,7 +348,7 @@ int nftw_append_all_from_dir(const char *file, const struct stat *sb, int flag,
                        goto end;
                }
 
-               plugins_from_file = bt_plugin_create_all_from_file(file);
+               plugins_from_file = bt_plugin_find_all_from_file(file);
 
                if (plugins_from_file) {
                        size_t j;
@@ -361,7 +360,9 @@ int nftw_append_all_from_dir(const char *file, const struct stat *sb, int flag,
                                BT_LIB_LOGD("Adding plugin to plugin set: "
                                        "plugin-path=\"%s\", %![plugin-]+l",
                                        file, plugin);
-                               bt_plugin_set_add_plugin(append_all_from_dir_info.plugin_set, plugin);
+                               bt_plugin_set_add_plugin(
+                                       append_all_from_dir_info.plugin_set,
+                                       plugin);
                        }
 
                        bt_object_put_ref(plugins_from_file);
@@ -407,7 +408,7 @@ enum bt_plugin_status bt_plugin_create_append_all_from_dir(
        return ret;
 }
 
-struct bt_plugin_set *bt_plugin_create_all_from_dir(const char *path,
+const struct bt_plugin_set *bt_plugin_find_all_from_dir(const char *path,
                bt_bool recurse)
 {
        struct bt_plugin_set *plugin_set;
@@ -442,38 +443,38 @@ end:
        return plugin_set;
 }
 
-const char *bt_plugin_get_name(struct bt_plugin *plugin)
+const char *bt_plugin_get_name(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return plugin->info.name_set ? plugin->info.name->str : NULL;
 }
 
-const char *bt_plugin_get_author(struct bt_plugin *plugin)
+const char *bt_plugin_get_author(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return plugin->info.author_set ? plugin->info.author->str : NULL;
 }
 
-const char *bt_plugin_get_license(struct bt_plugin *plugin)
+const char *bt_plugin_get_license(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return plugin->info.license_set ? plugin->info.license->str : NULL;
 }
 
-const char *bt_plugin_get_path(struct bt_plugin *plugin)
+const char *bt_plugin_get_path(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return plugin->info.path_set ? plugin->info.path->str : NULL;
 }
 
-const char *bt_plugin_get_description(struct bt_plugin *plugin)
+const char *bt_plugin_get_description(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return plugin->info.description_set ?
                plugin->info.description->str : NULL;
 }
 
-enum bt_property_availability bt_plugin_get_version(struct bt_plugin *plugin,
+enum bt_property_availability bt_plugin_get_version(const struct bt_plugin *plugin,
                unsigned int *major, unsigned int *minor, unsigned int *patch,
                const char **extra)
 {
@@ -508,19 +509,19 @@ end:
        return avail;
 }
 
-uint64_t bt_plugin_get_source_component_class_count(struct bt_plugin *plugin)
+uint64_t bt_plugin_get_source_component_class_count(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return (uint64_t) plugin->src_comp_classes->len;
 }
 
-uint64_t bt_plugin_get_filter_component_class_count(struct bt_plugin *plugin)
+uint64_t bt_plugin_get_filter_component_class_count(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return (uint64_t) plugin->flt_comp_classes->len;
 }
 
-uint64_t bt_plugin_get_sink_component_class_count(struct bt_plugin *plugin)
+uint64_t bt_plugin_get_sink_component_class_count(const struct bt_plugin *plugin)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
        return (uint64_t) plugin->sink_comp_classes->len;
@@ -528,7 +529,7 @@ uint64_t bt_plugin_get_sink_component_class_count(struct bt_plugin *plugin)
 
 static inline
 struct bt_component_class *borrow_component_class_by_index(
-               struct bt_plugin *plugin, GPtrArray *comp_classes,
+               const struct bt_plugin *plugin, GPtrArray *comp_classes,
                uint64_t index)
 {
        BT_ASSERT_PRE_NON_NULL(plugin, "Plugin");
@@ -536,34 +537,33 @@ struct bt_component_class *borrow_component_class_by_index(
        return g_ptr_array_index(comp_classes, index);
 }
 
-
-struct bt_component_class_source *
-bt_plugin_borrow_source_component_class_by_index(
-               struct bt_plugin *plugin, uint64_t index)
+const struct bt_component_class_source *
+bt_plugin_borrow_source_component_class_by_index_const(
+               const struct bt_plugin *plugin, uint64_t index)
 {
-       return (void *) borrow_component_class_by_index(plugin,
+       return (const void *) borrow_component_class_by_index(plugin,
                plugin->src_comp_classes, index);
 }
 
-struct bt_component_class_filter *
-bt_plugin_borrow_filter_component_class_by_index(
-               struct bt_plugin *plugin, uint64_t index)
+const struct bt_component_class_filter *
+bt_plugin_borrow_filter_component_class_by_index_const(
+               const struct bt_plugin *plugin, uint64_t index)
 {
-       return (void *) borrow_component_class_by_index(plugin,
+       return (const void *) borrow_component_class_by_index(plugin,
                plugin->flt_comp_classes, index);
 }
 
-struct bt_component_class_sink *
-bt_plugin_borrow_sink_component_class_by_index(
-               struct bt_plugin *plugin, uint64_t index)
+const struct bt_component_class_sink *
+bt_plugin_borrow_sink_component_class_by_index_const(
+               const struct bt_plugin *plugin, uint64_t index)
 {
-       return (void *) borrow_component_class_by_index(plugin,
+       return (const void *) borrow_component_class_by_index(plugin,
                plugin->sink_comp_classes, index);
 }
 
 static inline
 struct bt_component_class *borrow_component_class_by_name(
-               struct bt_plugin *plugin, GPtrArray *comp_classes,
+               const struct bt_plugin *plugin, GPtrArray *comp_classes,
                const char *name)
 {
        struct bt_component_class *comp_class = NULL;
@@ -589,26 +589,46 @@ struct bt_component_class *borrow_component_class_by_name(
        return comp_class;
 }
 
-struct bt_component_class_source *
-bt_plugin_borrow_source_component_class_by_name(struct bt_plugin *plugin,
-               const char *name)
+const struct bt_component_class_source *
+bt_plugin_borrow_source_component_class_by_name_const(
+               const struct bt_plugin *plugin, const char *name)
 {
-       return (void *) borrow_component_class_by_name(plugin,
+       return (const void *) borrow_component_class_by_name(plugin,
                plugin->src_comp_classes, name);
 }
 
-struct bt_component_class_filter *
-bt_plugin_borrow_filter_component_class_by_name(struct bt_plugin *plugin,
-               const char *name)
+const struct bt_component_class_filter *
+bt_plugin_borrow_filter_component_class_by_name_const(
+               const struct bt_plugin *plugin, const char *name)
 {
-       return (void *) borrow_component_class_by_name(plugin,
+       return (const void *) borrow_component_class_by_name(plugin,
                plugin->flt_comp_classes, name);
 }
 
-struct bt_component_class_sink *
-bt_plugin_borrow_sink_component_class_by_name(struct bt_plugin *plugin,
-               const char *name)
+const struct bt_component_class_sink *
+bt_plugin_borrow_sink_component_class_by_name_const(
+               const struct bt_plugin *plugin, const char *name)
 {
-       return (void *) borrow_component_class_by_name(plugin,
+       return (const void *) borrow_component_class_by_name(plugin,
                plugin->sink_comp_classes, name);
 }
+
+void bt_plugin_get_ref(const struct bt_plugin *plugin)
+{
+       bt_object_get_ref(plugin);
+}
+
+void bt_plugin_put_ref(const struct bt_plugin *plugin)
+{
+       bt_object_put_ref(plugin);
+}
+
+void bt_plugin_set_get_ref(const struct bt_plugin_set *plugin_set)
+{
+       bt_object_get_ref(plugin_set);
+}
+
+void bt_plugin_set_put_ref(const struct bt_plugin_set *plugin_set)
+{
+       bt_object_put_ref(plugin_set);
+}
This page took 0.030255 seconds and 4 git commands to generate.