From: Jérémie Galarneau Date: Sat, 27 Aug 2016 20:15:28 +0000 (-0400) Subject: Add ctf fs component skeleton X-Git-Tag: v2.0.0-pre1~786 X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=ea0b4b9e9695ab6df854b38d23773ab822a402d6;p=babeltrace.git Add ctf fs component skeleton Signed-off-by: Jérémie Galarneau --- diff --git a/plugins/ctf/fs/fs-internal.h b/plugins/ctf/fs/fs-internal.h index 3f87bd0e..448fff2a 100644 --- a/plugins/ctf/fs/fs-internal.h +++ b/plugins/ctf/fs/fs-internal.h @@ -30,12 +30,20 @@ #include #include -#define FS_COMPONENT_NAME "ctf" -#define FS_COMPONENT_DESCRIPTION \ +#define CTF_FS_COMPONENT_NAME "ctf" +#define CTF_FS_COMPONENT_DESCRIPTION \ "Component used to read a CTF trace located on a file system." +struct ctf_fs_component_options { + bool opt_dummy : 1; +}; + +struct ctf_fs_component { + struct ctf_fs_component_options options; +}; + BT_HIDDEN -enum bt_component_status fs_init(struct bt_component *source, +enum bt_component_status ctf_fs_init(struct bt_component *source, struct bt_value *params); #endif /* BABELTRACE_PLUGIN_CTF_FS_INTERNAL_H */ diff --git a/plugins/ctf/fs/fs.c b/plugins/ctf/fs/fs.c index 1142691e..3178c5c9 100644 --- a/plugins/ctf/fs/fs.c +++ b/plugins/ctf/fs/fs.c @@ -1,7 +1,7 @@ /* - * reader.c + * fs.c * - * Babeltrace CTF Reader Component + * Babeltrace CTF file system Reader Component * * Copyright 2016 Jérémie Galarneau * @@ -26,14 +26,69 @@ * SOFTWARE. */ +#include +#include +#include #include "fs-internal.h" -#include + +static bool ctf_fs_debug; + +static +struct ctf_fs_component *ctf_fs_create(struct bt_value *params) +{ + return g_new0(struct ctf_fs_component, 1); +} + +static +void ctf_fs_destroy(void *data) +{ + g_free(data); +} BT_HIDDEN -enum bt_component_status fs_init(struct bt_component *component, - struct bt_value *params) +enum bt_component_status ctf_fs_iterator_init(struct bt_component *source, + struct bt_notification_iterator *it) { - return BT_COMPONENT_STATUS_OK; + enum bt_component_status ret = BT_COMPONENT_STATUS_OK; + + assert(source && it); + return ret; } +BT_HIDDEN +enum bt_component_status ctf_fs_init(struct bt_component *source, + struct bt_value *params) +{ + struct ctf_fs_component *ctf_fs; + enum bt_component_status ret = BT_COMPONENT_STATUS_OK; + + assert(source); + ctf_fs_debug = g_strcmp0(getenv("CTF_FS_DEBUG"), "1") == 0; + ctf_fs = ctf_fs_create(params); + if (!ctf_fs) { + ret = BT_COMPONENT_STATUS_NOMEM; + goto end; + } + ret = bt_component_set_destroy_cb(source, ctf_fs_destroy); + if (ret != BT_COMPONENT_STATUS_OK) { + goto error; + } + + ret = bt_component_set_private_data(source, ctf_fs); + if (ret != BT_COMPONENT_STATUS_OK) { + goto error; + } + + ret = bt_component_source_set_iterator_init_cb(source, + ctf_fs_iterator_init); + if (ret != BT_COMPONENT_STATUS_OK) { + goto error; + } +end: + return ret; +error: + (void) bt_component_set_private_data(source, NULL); + ctf_fs_destroy(ctf_fs); + return ret; +} diff --git a/plugins/ctf/plugin.c b/plugins/ctf/plugin.c index 16c2c5b6..ef6ed2fd 100644 --- a/plugins/ctf/plugin.c +++ b/plugins/ctf/plugin.c @@ -37,8 +37,8 @@ BT_PLUGIN_AUTHOR("Jérémie Galarneau"); BT_PLUGIN_LICENSE("MIT"); BT_PLUGIN_COMPONENT_CLASSES_BEGIN -BT_PLUGIN_SOURCE_COMPONENT_CLASS_ENTRY(FS_COMPONENT_NAME, - FS_COMPONENT_DESCRIPTION, fs_init); +BT_PLUGIN_SOURCE_COMPONENT_CLASS_ENTRY(CTF_FS_COMPONENT_NAME, + CTF_FS_COMPONENT_DESCRIPTION, ctf_fs_init); BT_PLUGIN_SOURCE_COMPONENT_CLASS_ENTRY(LTTNG_LIVE_COMPONENT_NAME, LTTNG_LIVE_COMPONENT_DESCRIPTION, lttng_live_init); BT_PLUGIN_COMPONENT_CLASSES_END