X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Ffs-src%2Fmetadata.c;h=6ae43df90212d7773d3bf26d0902ff92a62bfe2b;hb=4dd8c9bfd3117da4a3d72f721c3d0db0a74c191d;hp=13cc816e124596c3b9560c4bc659decfdec1325d;hpb=8318bbaae63a9b00bcc3d9bf66a6d73ecd34f7ed;p=babeltrace.git diff --git a/plugins/ctf/fs-src/metadata.c b/plugins/ctf/fs-src/metadata.c index 13cc816e..6ae43df9 100644 --- a/plugins/ctf/fs-src/metadata.c +++ b/plugins/ctf/fs-src/metadata.c @@ -32,50 +32,35 @@ #include #include -#define PRINT_ERR_STREAM ctf_fs->error_fp -#define PRINT_PREFIX "ctf-fs-metadata" -#include "print.h" - #include "fs.h" #include "file.h" #include "metadata.h" #include "../common/metadata/decoder.h" -#define NSEC_PER_SEC 1000000000LL +#define BT_LOG_TAG "PLUGIN-CTF-FS-METADATA-SRC" +#include "logging.h" BT_HIDDEN FILE *ctf_fs_metadata_open_file(const char *trace_path) { - GString *metadata_path = g_string_new(trace_path); + GString *metadata_path; FILE *fp = NULL; + metadata_path = g_string_new(trace_path); if (!metadata_path) { - goto error; + goto end; } g_string_append(metadata_path, "/" CTF_FS_METADATA_FILENAME); fp = fopen(metadata_path->str, "rb"); - if (!fp) { - goto error; - } - - goto end; - -error: - if (fp) { - fclose(fp); - fp = NULL; - } - -end: g_string_free(metadata_path, TRUE); +end: return fp; } -static struct ctf_fs_file *get_file(struct ctf_fs_component *ctf_fs, - const char *trace_path) +static struct ctf_fs_file *get_file(const char *trace_path) { - struct ctf_fs_file *file = ctf_fs_file_create(ctf_fs); + struct ctf_fs_file *file = ctf_fs_file_create(); if (!file) { goto error; @@ -84,7 +69,7 @@ static struct ctf_fs_file *get_file(struct ctf_fs_component *ctf_fs, g_string_append(file->path, trace_path); g_string_append(file->path, "/" CTF_FS_METADATA_FILENAME); - if (ctf_fs_file_open(ctf_fs, file, "rb")) { + if (ctf_fs_file_open(file, "rb")) { goto error; } @@ -100,37 +85,42 @@ end: return file; } -int ctf_fs_metadata_set_trace(struct ctf_fs_component *ctf_fs) +int ctf_fs_metadata_set_trace(struct ctf_fs_trace *ctf_fs_trace, + struct ctf_fs_metadata_config *config) { int ret = 0; struct ctf_fs_file *file = NULL; struct ctf_metadata_decoder *metadata_decoder = NULL; + struct ctf_metadata_decoder_config decoder_config = { + .clock_class_offset_s = config ? config->clock_class_offset_s : 0, + .clock_class_offset_ns = config ? config->clock_class_offset_ns : 0, + }; - file = get_file(ctf_fs, ctf_fs->trace_path->str); + file = get_file(ctf_fs_trace->path->str); if (!file) { - PERR("Cannot create metadata file object\n"); + BT_LOGE("Cannot create metadata file object"); ret = -1; goto end; } - metadata_decoder = ctf_metadata_decoder_create(ctf_fs->error_fp, - ctf_fs->options.clock_offset * NSEC_PER_SEC + - ctf_fs->options.clock_offset_ns); + metadata_decoder = ctf_metadata_decoder_create( + config ? &decoder_config : NULL, + ctf_fs_trace->name->str); if (!metadata_decoder) { - PERR("Cannot create metadata decoder object\n"); + BT_LOGE("Cannot create metadata decoder object"); ret = -1; goto end; } ret = ctf_metadata_decoder_decode(metadata_decoder, file->fp); if (ret) { - PERR("Cannot decode metadata file\n"); + BT_LOGE("Cannot decode metadata file"); goto end; } - ctf_fs->metadata->trace = ctf_metadata_decoder_get_trace( + ctf_fs_trace->metadata->trace = ctf_metadata_decoder_get_trace( metadata_decoder); - assert(ctf_fs->metadata->trace); + assert(ctf_fs_trace->metadata->trace); end: ctf_fs_file_destroy(file);