cpp-common/bt2c/logging.hpp: remove no-formatting ("str") alternatives
[babeltrace.git] / src / plugins / ctf / common / src / msg-iter / msg-iter.cpp
index ea9a24721ba97205831723e9ba2e05292dd6fc6e..50a545bba940265ccbd1c54b8374908ed602b229 100644 (file)
@@ -15,6 +15,7 @@
 #include "common/common.h"
 #include "cpp-common/bt2c/fmt.hpp"
 #include "cpp-common/bt2c/logging.hpp"
+#include "cpp-common/bt2c/make-span.hpp"
 #include "cpp-common/vendor/fmt/format.h"
 
 #include "../bfcr/bfcr.hpp"
@@ -523,7 +524,7 @@ static enum ctf_msg_iter_status request_medium_bytes(struct ctf_msg_iter *msg_it
                         "packet-offset={}, cur={}, size={}, addr={}",
                         msg_it->buf.packet_offset, msg_it->buf.at, msg_it->buf.sz,
                         fmt::ptr(msg_it->buf.addr));
-        BT_CPPLOGT_MEM_SPEC(msg_it->logger, buffer_addr, buffer_sz,
+        BT_CPPLOGT_MEM_SPEC(msg_it->logger, bt2c::makeSpan(buffer_addr, buffer_sz),
                             "Returned bytes at {}:", fmt::ptr(buffer_addr));
     } else if (m_status == CTF_MSG_ITER_MEDIUM_STATUS_EOF) {
         /*
@@ -598,11 +599,11 @@ read_dscope_begin_state(struct ctf_msg_iter *msg_it, struct ctf_field_class *dsc
     switch (bfcr_status) {
     case BT_BFCR_STATUS_OK:
         /* Field class was read completely */
-        BT_CPPLOGT_STR_SPEC(msg_it->logger, "Field was completely decoded.");
+        BT_CPPLOGT_SPEC(msg_it->logger, "Field was completely decoded.");
         msg_it->state = done_state;
         break;
     case BT_BFCR_STATUS_EOF:
-        BT_CPPLOGT_STR_SPEC(msg_it->logger, "BFCR needs more data to decode field completely.");
+        BT_CPPLOGT_SPEC(msg_it->logger, "BFCR needs more data to decode field completely.");
         msg_it->state = continue_state;
         break;
     default:
@@ -654,12 +655,12 @@ static enum ctf_msg_iter_status read_dscope_continue_state(struct ctf_msg_iter *
     switch (bfcr_status) {
     case BT_BFCR_STATUS_OK:
         /* Type was read completely. */
-        BT_CPPLOGT_STR_SPEC(msg_it->logger, "Field was completely decoded.");
+        BT_CPPLOGT_SPEC(msg_it->logger, "Field was completely decoded.");
         msg_it->state = done_state;
         break;
     case BT_BFCR_STATUS_EOF:
         /* Stay in this continue state. */
-        BT_CPPLOGT_STR_SPEC(msg_it->logger, "BFCR needs more data to decode field completely.");
+        BT_CPPLOGT_SPEC(msg_it->logger, "BFCR needs more data to decode field completely.");
         break;
     default:
         BT_CPPLOGE_APPEND_CAUSE_SPEC(msg_it->logger,
@@ -2642,10 +2643,10 @@ end:
     return msg;
 }
 
-struct ctf_msg_iter *ctf_msg_iter_create(struct ctf_trace_class *tc, size_t max_request_sz,
-                                         struct ctf_msg_iter_medium_ops medops, void *data,
-                                         bt_self_message_iterator *self_msg_iter,
-                                         const bt2c::Logger& parentLogger)
+ctf_msg_iter_up ctf_msg_iter_create(struct ctf_trace_class *tc, size_t max_request_sz,
+                                    struct ctf_msg_iter_medium_ops medops, void *data,
+                                    bt_self_message_iterator *self_msg_iter,
+                                    const bt2c::Logger& parentLogger)
 {
     struct bt_bfcr_cbs cbs = {
         .classes =
@@ -2678,13 +2679,13 @@ struct ctf_msg_iter *ctf_msg_iter_create(struct ctf_trace_class *tc, size_t max_
                     "data={}, log-level={}",
                     fmt::ptr(tc), max_request_sz, fmt::ptr(data), logger.level());
 
-    ctf_msg_iter *msg_it = new ctf_msg_iter {std::move(logger)};
+    ctf_msg_iter_up msg_it {new ctf_msg_iter {std::move(logger)}};
     msg_it->self_msg_iter = self_msg_iter;
     msg_it->meta.tc = tc;
     msg_it->medium.medops = medops;
     msg_it->medium.max_request_sz = max_request_sz;
     msg_it->medium.data = data;
-    msg_it->stack = stack_new(msg_it);
+    msg_it->stack = stack_new(msg_it.get());
     msg_it->stored_values = g_array_new(FALSE, TRUE, sizeof(uint64_t));
     g_array_set_size(msg_it->stored_values, tc->stored_value_count);
 
@@ -2693,14 +2694,14 @@ struct ctf_msg_iter *ctf_msg_iter_create(struct ctf_trace_class *tc, size_t max_
         goto error;
     }
 
-    msg_it->bfcr = bt_bfcr_create(cbs, msg_it, msg_it->logger);
+    msg_it->bfcr = bt_bfcr_create(cbs, msg_it.get(), msg_it->logger);
     if (!msg_it->bfcr) {
         BT_CPPLOGE_APPEND_CAUSE_SPEC(msg_it->logger,
                                      "Failed to create binary class reader (BFCR).");
         goto error;
     }
 
-    ctf_msg_iter_reset(msg_it);
+    ctf_msg_iter_reset(msg_it.get());
     BT_CPPLOGD_SPEC(msg_it->logger,
                     "Created CTF plugin message iterator: "
                     "trace-addr={}, max-request-size={}, "
@@ -2713,8 +2714,7 @@ end:
     return msg_it;
 
 error:
-    ctf_msg_iter_destroy(msg_it);
-    msg_it = NULL;
+    msg_it.reset();
     goto end;
 }
 
@@ -2728,7 +2728,7 @@ void ctf_msg_iter_destroy(struct ctf_msg_iter *msg_it)
                     fmt::ptr(msg_it));
 
     if (msg_it->stack) {
-        BT_CPPLOGD_STR_SPEC(msg_it->logger, "Destroying field stack.");
+        BT_CPPLOGD_SPEC(msg_it->logger, "Destroying field stack.");
         stack_destroy(msg_it->stack);
     }
 
@@ -2744,6 +2744,11 @@ void ctf_msg_iter_destroy(struct ctf_msg_iter *msg_it)
     delete msg_it;
 }
 
+void ctf_msg_iter_deleter::operator()(ctf_msg_iter *iter) noexcept
+{
+    ctf_msg_iter_destroy(iter);
+}
+
 enum ctf_msg_iter_status ctf_msg_iter_get_next_message(struct ctf_msg_iter *msg_it,
                                                        const bt_message **message)
 {
@@ -2756,7 +2761,7 @@ enum ctf_msg_iter_status ctf_msg_iter_get_next_message(struct ctf_msg_iter *msg_
     while (true) {
         status = handle_state(msg_it);
         if (G_UNLIKELY(status == CTF_MSG_ITER_STATUS_AGAIN)) {
-            BT_CPPLOGD_STR_SPEC(msg_it->logger, "Medium returned CTF_MSG_ITER_STATUS_AGAIN.");
+            BT_CPPLOGD_SPEC(msg_it->logger, "Medium returned CTF_MSG_ITER_STATUS_AGAIN.");
             goto end;
         } else if (G_UNLIKELY(status != CTF_MSG_ITER_STATUS_OK)) {
             BT_CPPLOGE_APPEND_CAUSE_SPEC(msg_it->logger,
@@ -2890,7 +2895,7 @@ static enum ctf_msg_iter_status decode_until_state(struct ctf_msg_iter *msg_it,
 
         status = handle_state(msg_it);
         if (G_UNLIKELY(status == CTF_MSG_ITER_STATUS_AGAIN)) {
-            BT_CPPLOGD_STR_SPEC(msg_it->logger, "Medium returned CTF_MSG_ITER_STATUS_AGAIN.");
+            BT_CPPLOGD_SPEC(msg_it->logger, "Medium returned CTF_MSG_ITER_STATUS_AGAIN.");
             goto end;
         } else if (G_UNLIKELY(status != CTF_MSG_ITER_STATUS_OK)) {
             BT_CPPLOGE_APPEND_CAUSE_SPEC(msg_it->logger,
This page took 0.025336 seconds and 4 git commands to generate.