X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Fctf%2Ffs-src%2Fquery.c;h=e69699c274ca8481b89964e850c55223b1933dab;hb=d23b766e7b7542ddff2211264b4ece1f3a347773;hp=b2e5248dc69c0a21607fa1df6aede774a4cb5e05;hpb=1db12e0dc4ab058df9de9801caf3f00841c92ce5;p=babeltrace.git diff --git a/src/plugins/ctf/fs-src/query.c b/src/plugins/ctf/fs-src/query.c index b2e5248d..e69699c2 100644 --- a/src/plugins/ctf/fs-src/query.c +++ b/src/plugins/ctf/fs-src/query.c @@ -37,6 +37,7 @@ #include "common/macros.h" #include #include "fs.h" +#include "logging/comp-logging.h" #define METADATA_TEXT_SIG "/* CTF 1.8" @@ -48,12 +49,14 @@ struct range { 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; @@ -73,20 +76,23 @@ bt_component_class_query_method_status metadata_info_query( 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; } @@ -96,7 +102,8 @@ bt_component_class_query_method_status metadata_info_query( 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; } @@ -108,7 +115,8 @@ bt_component_class_query_method_status metadata_info_query( 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; } @@ -117,25 +125,29 @@ bt_component_class_query_method_status metadata_info_query( 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; } @@ -159,14 +171,16 @@ bt_component_class_query_method_status metadata_info_query( 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; } @@ -476,13 +490,16 @@ end: 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; @@ -491,7 +508,8 @@ bt_component_class_query_method_status trace_info_query( 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; } @@ -501,12 +519,14 @@ bt_component_class_query_method_status trace_info_query( 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; } @@ -526,7 +546,8 @@ bt_component_class_query_method_status trace_info_query( 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; }