#include "common/macros.h"
#include <babeltrace2/babeltrace.h>
#include "fs.h"
+#include "logging/comp-logging.h"
#define METADATA_TEXT_SIG "/* CTF 1.8"
BT_HIDDEN
bt_component_class_query_method_status metadata_info_query(
- bt_self_component_class_source *comp_class,
+ bt_self_component_class_source *self_comp_class_src,
const bt_value *params, bt_logging_level log_level,
const bt_value **user_result)
{
bt_component_class_query_method_status status =
BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK;
+ bt_self_component_class *self_comp_class =
+ bt_self_component_class_source_as_self_component_class(self_comp_class_src);
bt_value *result = NULL;
const bt_value *path_value = NULL;
char *metadata_text = NULL;
BT_ASSERT(params);
if (!bt_value_is_map(params)) {
- BT_LOGE_STR("Query parameters is not a map value object.");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Query parameters is not a map value object.");
status = BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_ERROR;
goto error;
}
path_value = bt_value_map_borrow_entry_value_const(params, "path");
if (!path_value) {
- BT_LOGE_STR("Mandatory `path` parameter missing");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Mandatory `path` parameter missing");
status = BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_ERROR;
goto error;
}
if (!bt_value_is_string(path_value)) {
- BT_LOGE_STR("`path` parameter is required to be a string value");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "`path` parameter is required to be a string value");
status = BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_ERROR;
goto error;
}
BT_ASSERT(path);
metadata_fp = ctf_fs_metadata_open_file(path);
if (!metadata_fp) {
- BT_LOGE("Cannot open trace metadata: path=\"%s\".", path);
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Cannot open trace metadata: path=\"%s\".", path);
goto error;
}
metadata_fp, &metadata_text, bo, NULL, NULL,
log_level, NULL);
if (ret) {
- BT_LOGE("Cannot decode packetized metadata file: path=\"%s\"",
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Cannot decode packetized metadata file: path=\"%s\"",
path);
goto error;
}
ret = fseek(metadata_fp, 0, SEEK_END);
if (ret) {
- BT_LOGE_ERRNO("Failed to seek to the end of the metadata file",
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE_ERRNO(self_comp_class,
+ "Failed to seek to the end of the metadata file",
": path=\"%s\"", path);
goto error;
}
filesize = ftell(metadata_fp);
if (filesize < 0) {
- BT_LOGE_ERRNO("Failed to get the current position in the metadata file",
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE_ERRNO(self_comp_class,
+ "Failed to get the current position in the metadata file",
": path=\"%s\"", path);
goto error;
}
rewind(metadata_fp);
metadata_text = malloc(filesize + 1);
if (!metadata_text) {
- BT_LOGE_STR("Cannot allocate buffer for metadata text.");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Cannot allocate buffer for metadata text.");
goto error;
}
if (fread(metadata_text, filesize, 1, metadata_fp) != 1) {
- BT_LOGE_ERRNO("Cannot read metadata file", ": path=\"%s\"",
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE_ERRNO(self_comp_class,
+ "Cannot read metadata file", ": path=\"%s\"",
path);
goto error;
}
ret = bt_value_map_insert_string_entry(result, "text",
g_metadata_text->str);
if (ret) {
- BT_LOGE_STR("Cannot insert metadata text into query result.");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Cannot insert metadata text into query result.");
goto error;
}
ret = bt_value_map_insert_bool_entry(result, "is-packetized",
is_packetized);
if (ret) {
- BT_LOGE_STR("Cannot insert \"is-packetized\" attribute into query result.");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Cannot insert \"is-packetized\" attribute into query result.");
goto error;
}
BT_HIDDEN
bt_component_class_query_method_status trace_info_query(
- bt_self_component_class_source *comp_class,
+ bt_self_component_class_source *self_comp_class_src,
const bt_value *params, bt_logging_level log_level,
const bt_value **user_result)
{
struct ctf_fs_component *ctf_fs = NULL;
bt_component_class_query_method_status status =
BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK;
+ bt_self_component_class *self_comp_class =
+ bt_self_component_class_source_as_self_component_class(
+ self_comp_class_src);
bt_value *result = NULL;
const bt_value *inputs_value = NULL;
int ret = 0;
BT_ASSERT(params);
if (!bt_value_is_map(params)) {
- BT_LOGE("Query parameters is not a map value object.");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Query parameters is not a map value object.");
status = BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_ERROR;
goto error;
}
goto error;
}
- if (!read_src_fs_parameters(params, &inputs_value, ctf_fs)) {
+ if (!read_src_fs_parameters(params, &inputs_value, ctf_fs, NULL,
+ self_comp_class)) {
status = BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_ERROR;
goto error;
}
- if (ctf_fs_component_create_ctf_fs_traces(NULL, ctf_fs, inputs_value)) {
+ if (ctf_fs_component_create_ctf_fs_traces(ctf_fs, inputs_value, NULL,
+ self_comp_class)) {
goto error;
}
trace_info = bt_value_map_create();
if (!trace_info) {
- BT_LOGE("Failed to create trace info map.");
+ BT_COMP_CLASS_LOGE_APPEND_CAUSE(self_comp_class,
+ "Failed to create trace info map.");
goto error;
}