* Babeltrace CTF file system Reader Component
*/
+#include <glib.h>
+#include <inttypes.h>
+
+#include <babeltrace2/babeltrace.h>
+
#define BT_COMP_LOG_SELF_COMP self_comp
-#define BT_LOG_OUTPUT_LEVEL log_level
+#define BT_LOG_OUTPUT_LEVEL ((enum bt_log_level) log_level)
#define BT_LOG_TAG "PLUGIN/SRC.CTF.FS"
#include "logging/comp-logging.h"
+#include "common/assert.h"
#include "common/common.h"
-#include <babeltrace2/babeltrace.h>
#include "common/uuid.h"
-#include <glib.h>
-#include "common/assert.h"
-#include <inttypes.h>
-#include <stdbool.h>
-#include "fs.hpp"
-#include "metadata.hpp"
+
+#include "plugins/common/param-validation/param-validation.h"
+
+#include "../common/src/metadata/tsdl/ctf-meta-configure-ir-trace.hpp"
+#include "../common/src/msg-iter/msg-iter.hpp"
#include "data-stream-file.hpp"
#include "file.hpp"
-#include "../common/metadata/decoder.hpp"
-#include "../common/metadata/ctf-meta-configure-ir-trace.hpp"
-#include "../common/msg-iter/msg-iter.hpp"
+#include "fs.hpp"
+#include "metadata.hpp"
#include "query.hpp"
-#include "plugins/common/param-validation/param-validation.h"
struct tracer_info
{
ctf_fs_ds_group_medops_data_destroy(msg_iter_data->msg_iter_medops_data);
}
- g_free(msg_iter_data);
+ delete msg_iter_data;
}
static bt_message_iterator_class_next_method_status
* accumulated message objects in the output
* message array, so we need to return
* BT_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_OK so that they are
- * transfered to downstream. This other status occurs
+ * transferred to downstream. This other status occurs
* again the next time muxer_msg_iter_do_next() is
* called, possibly without any accumulated
* message, in which case we'll return it.
bt_self_component_port_output *self_port)
{
struct ctf_fs_port_data *port_data;
- struct ctf_fs_msg_iter_data *msg_iter_data = NULL;
bt_message_iterator_class_initialize_method_status status;
bt_logging_level log_level;
enum ctf_msg_iter_medium_status medium_status;
bt_self_component_port_output_as_self_component_port(self_port));
BT_ASSERT(port_data);
log_level = port_data->ctf_fs->log_level;
- msg_iter_data = g_new0(struct ctf_fs_msg_iter_data, 1);
- if (!msg_iter_data) {
- status = BT_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_STATUS_MEMORY_ERROR;
- goto error;
- }
+ ctf_fs_msg_iter_data *msg_iter_data = new ctf_fs_msg_iter_data;
msg_iter_data->log_level = log_level;
msg_iter_data->self_comp = self_comp;
msg_iter_data->self_msg_iter = self_msg_iter;
if (ctf_fs_trace->metadata) {
ctf_fs_metadata_fini(ctf_fs_trace->metadata);
- g_free(ctf_fs_trace->metadata);
+ delete ctf_fs_trace->metadata;
}
- g_free(ctf_fs_trace);
+ delete ctf_fs_trace;
}
void ctf_fs_destroy(struct ctf_fs_component *ctf_fs)
g_ptr_array_free(ctf_fs->port_data, TRUE);
}
- g_free(ctf_fs);
+ delete ctf_fs;
}
static void port_data_destroy(struct ctf_fs_port_data *port_data)
return;
}
- g_free(port_data);
+ delete port_data;
}
static void port_data_destroy_notifier(void *data)
ctf_fs_trace_destroy(trace);
}
-struct ctf_fs_component *ctf_fs_component_create(bt_logging_level log_level,
- bt_self_component *self_comp)
+struct ctf_fs_component *ctf_fs_component_create(bt_logging_level log_level)
{
- struct ctf_fs_component *ctf_fs;
-
- ctf_fs = g_new0(struct ctf_fs_component, 1);
- if (!ctf_fs) {
- goto error;
- }
-
+ ctf_fs_component *ctf_fs = new ctf_fs_component;
ctf_fs->log_level = log_level;
ctf_fs->port_data = g_ptr_array_new_with_free_func(port_data_destroy_notifier);
if (!ctf_fs->port_data) {
}
static int create_one_port_for_trace(struct ctf_fs_component *ctf_fs,
- struct ctf_fs_trace *ctf_fs_trace,
struct ctf_fs_ds_file_group *ds_file_group,
bt_self_component_source *self_comp_src)
{
BT_COMP_LOGI("Creating one port named `%s`", port_name);
/* Create output port for this file */
- port_data = g_new0(struct ctf_fs_port_data, 1);
- if (!port_data) {
- goto error;
- }
-
+ port_data = new ctf_fs_port_data;
port_data->ctf_fs = ctf_fs;
port_data->ds_file_group = ds_file_group;
ret = bt_self_component_source_add_output_port(self_comp_src, port_name, port_data, NULL);
struct ctf_fs_ds_file_group *ds_file_group =
(struct ctf_fs_ds_file_group *) g_ptr_array_index(ctf_fs_trace->ds_file_groups, i);
- ret = create_one_port_for_trace(ctf_fs, ctf_fs_trace, ds_file_group, self_comp_src);
+ ret = create_one_port_for_trace(ctf_fs, ds_file_group, self_comp_src);
if (ret) {
BT_COMP_LOGE_APPEND_CAUSE(self_comp, "Cannot create output port.");
goto end;
g_string_free(ds_file_info->path, TRUE);
}
- g_free(ds_file_info);
+ delete ds_file_info;
}
static struct ctf_fs_ds_file_info *ctf_fs_ds_file_info_create(const char *path, int64_t begin_ns)
{
- struct ctf_fs_ds_file_info *ds_file_info;
-
- ds_file_info = g_new0(struct ctf_fs_ds_file_info, 1);
- if (!ds_file_info) {
- goto end;
- }
-
+ ctf_fs_ds_file_info *ds_file_info = new ctf_fs_ds_file_info;
ds_file_info->path = g_string_new(path);
if (!ds_file_info->path) {
ctf_fs_ds_file_info_destroy(ds_file_info);
ctf_fs_ds_index_destroy(ds_file_group->index);
bt_stream_put_ref(ds_file_group->stream);
- g_free(ds_file_group);
+ delete ds_file_group;
}
static struct ctf_fs_ds_file_group *ctf_fs_ds_file_group_create(struct ctf_fs_trace *ctf_fs_trace,
uint64_t stream_instance_id,
struct ctf_fs_ds_index *index)
{
- struct ctf_fs_ds_file_group *ds_file_group;
-
- ds_file_group = g_new0(struct ctf_fs_ds_file_group, 1);
- if (!ds_file_group) {
- goto error;
- }
-
+ ctf_fs_ds_file_group *ds_file_group = new ctf_fs_ds_file_group;
ds_file_group->ds_file_infos =
g_ptr_array_new_with_free_func((GDestroyNotify) ctf_fs_ds_file_info_destroy);
if (!ds_file_group->ds_file_infos) {
if (i == index->entries->len || !ds_index_entries_equal(entry, other_entry)) {
array_insert(index->entries, entry, i);
} else {
- g_free(entry);
+ delete entry;
}
}
struct ctf_fs_metadata_config *metadata_config,
bt_logging_level log_level)
{
- struct ctf_fs_trace *ctf_fs_trace;
int ret;
/* Only one of them must be set. */
BT_ASSERT(!self_comp != !self_comp_class);
- ctf_fs_trace = g_new0(struct ctf_fs_trace, 1);
- if (!ctf_fs_trace) {
- goto end;
- }
-
+ ctf_fs_trace *ctf_fs_trace = new struct ctf_fs_trace;
ctf_fs_trace->log_level = log_level;
ctf_fs_trace->self_comp = self_comp;
ctf_fs_trace->self_comp_class = self_comp_class;
goto error;
}
- ctf_fs_trace->metadata = g_new0(struct ctf_fs_metadata, 1);
- if (!ctf_fs_trace->metadata) {
- goto error;
- }
-
+ ctf_fs_trace->metadata = new ctf_fs_metadata;
ctf_fs_metadata_init(ctf_fs_trace->metadata);
ctf_fs_trace->ds_file_groups =
g_ptr_array_new_with_free_func((GDestroyNotify) ctf_fs_ds_file_group_destroy);
bt_self_component *self_comp = bt_self_component_source_as_self_component(self_comp_src);
ctf_fs = ctf_fs_component_create(
- bt_component_get_logging_level(bt_self_component_as_component(self_comp)), self_comp);
+ bt_component_get_logging_level(bt_self_component_as_component(self_comp)));
if (!ctf_fs) {
goto error;
}
return ctf_fs;
}
-bt_component_class_initialize_method_status
-ctf_fs_init(bt_self_component_source *self_comp_src, bt_self_component_source_configuration *config,
- const bt_value *params, __attribute__((unused)) void *init_method_data)
+bt_component_class_initialize_method_status ctf_fs_init(bt_self_component_source *self_comp_src,
+ bt_self_component_source_configuration *,
+ const bt_value *params, void *)
{
struct ctf_fs_component *ctf_fs;
bt_component_class_initialize_method_status ret =