doc/api/libbabeltrace2/DoxygenLayout.xml: use `topics` tab
[babeltrace.git] / src / plugins / ctf / fs-sink / translate-trace-ir-to-ctf-ir.cpp
index 96884a162af12a366ecafb8ea32f5e2ee238d059..ca634b952aba11b45143748c9b34a37824c0ca46 100644 (file)
 
 #include <babeltrace2/babeltrace.h>
 
-#define BT_COMP_LOG_SELF_COMP (ctx->self_comp)
-#define BT_LOG_OUTPUT_LEVEL   (ctx->log_level)
-#define BT_LOG_TAG            "PLUGIN/SINK.CTF.FS/TRANSLATE-TRACE-IR-TO-CTF-IR"
-#include "logging/comp-logging.h"
-
 #include "common/assert.h"
 #include "common/common.h"
+#include "cpp-common/bt2/field-path.hpp"
+#include "cpp-common/bt2c/fmt.hpp"
 
 #include "fs-sink-ctf-meta.hpp"
 #include "fs-sink.hpp"
@@ -40,20 +37,24 @@ namespace sink {
 
 struct TraceIrToCtfIrCtx
 {
-    bt_logging_level log_level;
-    bt_self_component *self_comp;
+    explicit TraceIrToCtfIrCtx(const bt2c::Logger& parentLogger) :
+        logger {parentLogger, "PLUGIN/SINK.CTF.FS/TRANSLATE-TRACE-IR-TO-CTF-IR"}
+    {
+    }
+
+    bt2c::Logger logger;
 
     /* Weak */
-    struct fs_sink_ctf_stream_class *cur_sc;
+    struct fs_sink_ctf_stream_class *cur_sc = nullptr;
 
     /* Weak */
-    struct fs_sink_ctf_event_class *cur_ec;
+    struct fs_sink_ctf_event_class *cur_ec = nullptr;
 
-    bt_field_path_scope cur_scope;
+    bt_field_path_scope cur_scope = BT_FIELD_PATH_SCOPE_PACKET_CONTEXT;
 
     /*
      * Array of `struct field_path_elem` */
-    GArray *cur_path;
+    GArray *cur_path = nullptr;
 };
 
 } /* namespace sink */
@@ -183,9 +184,10 @@ static inline int cur_path_stack_push(ctf::sink::TraceIrToCtfIrCtx *ctx, const c
                 is_reserved_member_name(name, "timestamp_end") ||
                 is_reserved_member_name(name, "events_discarded") ||
                 is_reserved_member_name(name, "packet_seq_num")) {
-                BT_COMP_LOGE("Unsupported reserved TSDL structure field class member "
-                             "or variant field class option name: name=\"%s\"",
-                             name);
+                BT_CPPLOGE_SPEC(ctx->logger,
+                                "Unsupported reserved TSDL structure field class member "
+                                "or variant field class option name: name=\"{}\"",
+                                name);
                 ret = -1;
                 goto end;
             }
@@ -193,9 +195,10 @@ static inline int cur_path_stack_push(ctf::sink::TraceIrToCtfIrCtx *ctx, const c
 
         if (!ist_valid_identifier(field_path_elem->name->str)) {
             ret = -1;
-            BT_COMP_LOGE("Unsupported non-TSDL structure field class member "
-                         "or variant field class option name: name=\"%s\"",
-                         field_path_elem->name->str);
+            BT_CPPLOGE_SPEC(ctx->logger,
+                            "Unsupported non-TSDL structure field class member "
+                            "or variant field class option name: name=\"{}\"",
+                            field_path_elem->name->str);
             goto end;
         }
     }
@@ -616,17 +619,19 @@ translate_structure_field_class_members(ctf::sink::TraceIrToCtfIrCtx *ctx,
         memb_ir_fc = bt_field_class_structure_member_borrow_field_class_const(member);
         ret = cur_path_stack_push(ctx, name, true, memb_ir_fc, &struct_fc->base);
         if (ret) {
-            BT_COMP_LOGE("Cannot translate structure field class member: "
-                         "name=\"%s\"",
-                         name);
+            BT_CPPLOGE_SPEC(ctx->logger,
+                            "Cannot translate structure field class member: "
+                            "name=\"{}\"",
+                            name);
             goto end;
         }
 
         ret = translate_field_class(ctx);
         if (ret) {
-            BT_COMP_LOGE("Cannot translate structure field class member: "
-                         "name=\"%s\"",
-                         name);
+            BT_CPPLOGE_SPEC(ctx->logger,
+                            "Cannot translate structure field class member: "
+                            "name=\"{}\"",
+                            name);
             goto end;
         }
 
@@ -875,13 +880,13 @@ static inline int translate_option_field_class(ctf::sink::TraceIrToCtfIrCtx *ctx
     append_to_parent_field_class(ctx, &fc->base);
     ret = cur_path_stack_push(ctx, NULL, false, content_ir_fc, &fc->base);
     if (ret) {
-        BT_COMP_LOGE_STR("Cannot translate option field class content.");
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate option field class content.");
         goto end;
     }
 
     ret = translate_field_class(ctx);
     if (ret) {
-        BT_COMP_LOGE_STR("Cannot translate option field class content.");
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate option field class content.");
         goto end;
     }
 
@@ -1026,17 +1031,19 @@ append_to_parent:
          */
         ret = cur_path_stack_push(ctx, prot_opt_name, false, opt_ir_fc, &fc->base);
         if (ret) {
-            BT_COMP_LOGE("Cannot translate variant field class option: "
-                         "name=\"%s\"",
-                         prot_opt_name);
+            BT_CPPLOGE_SPEC(ctx->logger,
+                            "Cannot translate variant field class option: "
+                            "name=\"{}\"",
+                            prot_opt_name);
             goto end;
         }
 
         ret = translate_field_class(ctx);
         if (ret) {
-            BT_COMP_LOGE("Cannot translate variant field class option: "
-                         "name=\"%s\"",
-                         prot_opt_name);
+            BT_CPPLOGE_SPEC(ctx->logger,
+                            "Cannot translate variant field class option: "
+                            "name=\"{}\"",
+                            prot_opt_name);
             goto end;
         }
 
@@ -1064,13 +1071,13 @@ static inline int translate_static_array_field_class(ctf::sink::TraceIrToCtfIrCt
     append_to_parent_field_class(ctx, &fc->base.base);
     ret = cur_path_stack_push(ctx, NULL, false, elem_ir_fc, &fc->base.base);
     if (ret) {
-        BT_COMP_LOGE_STR("Cannot translate static array field class element.");
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate static array field class element.");
         goto end;
     }
 
     ret = translate_field_class(ctx);
     if (ret) {
-        BT_COMP_LOGE_STR("Cannot translate static array field class element.");
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate static array field class element.");
         goto end;
     }
 
@@ -1104,13 +1111,13 @@ static inline int translate_dynamic_array_field_class(ctf::sink::TraceIrToCtfIrC
     append_to_parent_field_class(ctx, &fc->base.base);
     ret = cur_path_stack_push(ctx, NULL, false, elem_ir_fc, &fc->base.base);
     if (ret) {
-        BT_COMP_LOGE_STR("Cannot translate dynamic array field class element.");
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate dynamic array field class element.");
         goto end;
     }
 
     ret = translate_field_class(ctx);
     if (ret) {
-        BT_COMP_LOGE_STR("Cannot translate dynamic array field class element.");
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate dynamic array field class element.");
         goto end;
     }
 
@@ -1446,18 +1453,16 @@ static int translate_scope_field_class(ctf::sink::TraceIrToCtfIrCtx *ctx, bt_fie
     BT_ASSERT(ctx->cur_path->len == 0);
     ret = cur_path_stack_push(ctx, NULL, false, ir_fc, NULL);
     if (ret) {
-        BT_COMP_LOGE("Cannot translate scope structure field class: "
-                     "scope=%d",
-                     scope);
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate scope structure field class: scope={}",
+                        static_cast<bt2::FieldPathScope>(scope));
         goto end;
     }
 
     ret =
         translate_structure_field_class_members(ctx, fs_sink_ctf_field_class_as_struct(*fc), ir_fc);
     if (ret) {
-        BT_COMP_LOGE("Cannot translate scope structure field class: "
-                     "scope=%d",
-                     scope);
+        BT_CPPLOGE_SPEC(ctx->logger, "Cannot translate scope structure field class: scope={}",
+                        static_cast<bt2::FieldPathScope>(scope));
         goto end;
     }
 
@@ -1470,13 +1475,10 @@ end:
     return ret;
 }
 
-static inline void ctx_init(ctf::sink::TraceIrToCtfIrCtx *ctx, struct fs_sink_comp *fs_sink)
+static inline void ctx_init(ctf::sink::TraceIrToCtfIrCtx *ctx)
 {
-    memset(ctx, 0, sizeof(*ctx));
     ctx->cur_path = g_array_new(FALSE, TRUE, sizeof(struct field_path_elem));
     BT_ASSERT(ctx->cur_path);
-    ctx->log_level = fs_sink->log_level;
-    ctx->self_comp = fs_sink->self_comp;
 }
 
 static inline void ctx_fini(ctf::sink::TraceIrToCtfIrCtx *ctx)
@@ -1492,13 +1494,13 @@ static int translate_event_class(struct fs_sink_comp *fs_sink, struct fs_sink_ct
                                  struct fs_sink_ctf_event_class **out_ec)
 {
     int ret = 0;
-    ctf::sink::TraceIrToCtfIrCtx ctx;
+    ctf::sink::TraceIrToCtfIrCtx ctx {fs_sink->logger};
     struct fs_sink_ctf_event_class *ec;
 
     BT_ASSERT(sc);
     BT_ASSERT(ir_ec);
 
-    ctx_init(&ctx, fs_sink);
+    ctx_init(&ctx);
     ec = fs_sink_ctf_event_class_create(sc, ir_ec);
     BT_ASSERT(ec);
     ctx.cur_sc = sc;
@@ -1587,11 +1589,11 @@ static int translate_stream_class(struct fs_sink_comp *fs_sink, struct fs_sink_c
                                   struct fs_sink_ctf_stream_class **out_sc)
 {
     int ret = 0;
-    ctf::sink::TraceIrToCtfIrCtx ctx;
+    ctf::sink::TraceIrToCtfIrCtx ctx {fs_sink->logger};
 
     BT_ASSERT(trace);
     BT_ASSERT(ir_sc);
-    ctx_init(&ctx, fs_sink);
+    ctx_init(&ctx);
     *out_sc = fs_sink_ctf_stream_class_create(trace, ir_sc);
     BT_ASSERT(*out_sc);
 
@@ -1695,10 +1697,10 @@ struct fs_sink_ctf_trace *translate_trace_trace_ir_to_ctf_ir(struct fs_sink_comp
         bt_trace_borrow_environment_entry_by_index_const(ir_trace, i, &name, &val);
 
         if (!ist_valid_identifier(name)) {
-            BT_COMP_LOG_CUR_LVL(BT_LOG_ERROR, fs_sink->log_level, fs_sink->self_comp,
-                                "Unsupported trace class's environment entry name: "
-                                "name=\"%s\"",
-                                name);
+            BT_CPPLOGE_SPEC(fs_sink->logger,
+                            "Unsupported trace class's environment entry name: "
+                            "name=\"{}\"",
+                            name);
             goto end;
         }
 
@@ -1707,10 +1709,10 @@ struct fs_sink_ctf_trace *translate_trace_trace_ir_to_ctf_ir(struct fs_sink_comp
         case BT_VALUE_TYPE_STRING:
             break;
         default:
-            BT_COMP_LOG_CUR_LVL(BT_LOG_ERROR, fs_sink->log_level, fs_sink->self_comp,
-                                "Unsupported trace class's environment entry value type: "
-                                "type=%s",
-                                bt_common_value_type_string(bt_value_get_type(val)));
+            BT_CPPLOGE_SPEC(fs_sink->logger,
+                            "Unsupported trace class's environment entry value type: "
+                            "type={}",
+                            static_cast<bt2::ValueType>(bt_value_get_type(val)));
             goto end;
         }
     }
This page took 0.026269 seconds and 4 git commands to generate.