src.ctf.lttng-live: make lttng_live_stream_iterator::name an std::string
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 26 Jul 2022 22:26:30 +0000 (18:26 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 23 Aug 2022 16:06:16 +0000 (12:06 -0400)
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Change-Id: I515319dc62f147e4423c9eadd3dc00648e46e789
Reviewed-on: https://review.lttng.org/c/babeltrace/+/8457
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
src/plugins/ctf/lttng-live/data-stream.cpp
src/plugins/ctf/lttng-live/lttng-live.cpp
src/plugins/ctf/lttng-live/lttng-live.hpp

index 0ce563676f8d8c1f5aa206f17d627235cc61a7f0..4ad282942355009eecee57c5383db538cc90f687 100644 (file)
@@ -13,6 +13,7 @@
 #include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <sstream>
 
 #include <glib.h>
 
@@ -74,7 +75,7 @@ static bt_stream *medop_borrow_stream(bt_stream_class *stream_class, int64_t str
 
         BT_CLOGI("Creating stream %s (ID: %" PRIu64 ") out of stream "
                  "class %" PRId64,
-                 lttng_live_stream->name->str, stream_id, stream_class_id);
+                 lttng_live_stream->name.c_str(), stream_id, stream_class_id);
 
         bt_stream *stream;
 
@@ -97,13 +98,13 @@ static bt_stream *medop_borrow_stream(bt_stream_class *stream_class, int64_t str
         if (!stream) {
             BT_CLOGE_APPEND_CAUSE("Cannot create stream %s (stream class ID "
                                   "%" PRId64 ", stream ID %" PRIu64 ")",
-                                  lttng_live_stream->name->str, stream_class_id, stream_id);
+                                  lttng_live_stream->name.c_str(), stream_class_id, stream_id);
             return nullptr;
         }
 
         lttng_live_stream->stream = bt2::Stream::Shared::createWithoutRef(stream);
 
-        (*lttng_live_stream->stream)->name(lttng_live_stream->name->str);
+        (*lttng_live_stream->stream)->name(lttng_live_stream->name);
     }
 
     return (*lttng_live_stream->stream)->libObjPtr();
@@ -150,7 +151,7 @@ enum lttng_live_iterator_status lttng_live_lazy_msg_init(struct lttng_live_sessi
             BT_CLOGD("Creating CTF message iterator: "
                      "session-id=%" PRIu64 ", ctf-tc-addr=%p, "
                      "stream-iter-name=%s, self-msg-iter-addr=%p",
-                     session->id, ctf_tc, stream_iter->name->str, self_msg_iter);
+                     session->id, ctf_tc, stream_iter->name.c_str(), self_msg_iter);
             stream_iter->msg_iter = ctf_msg_iter_create(ctf_tc, lttng_live->max_query_size, medops,
                                                         stream_iter, self_msg_iter, logCfg);
             if (!stream_iter->msg_iter) {
@@ -175,6 +176,7 @@ lttng_live_stream_iterator_create(struct lttng_live_session *session, uint64_t c
 {
     struct lttng_live_component *lttng_live;
     struct lttng_live_trace *trace;
+    std::stringstream nameSs;
 
     BT_ASSERT(session);
     BT_ASSERT(session->lttng_live_msg_iter);
@@ -213,14 +215,9 @@ lttng_live_stream_iterator_create(struct lttng_live_session *session, uint64_t c
         }
     }
     stream_iter->buf.resize(lttng_live->max_query_size);
-    stream_iter->name = g_string_new(NULL);
-    if (!stream_iter->name) {
-        BT_CLOGE_APPEND_CAUSE("Failed to allocate live stream iterator name buffer");
-        goto error;
-    }
 
-    g_string_printf(stream_iter->name, STREAM_NAME_PREFIX "%" PRIu64,
-                    stream_iter->viewer_stream_id);
+    nameSs << STREAM_NAME_PREFIX << stream_iter->viewer_stream_id;
+    stream_iter->name = nameSs.str();
     g_ptr_array_add(trace->stream_iterators, stream_iter);
 
     /* Track the number of active stream iterator. */
@@ -241,10 +238,6 @@ void lttng_live_stream_iterator_destroy(struct lttng_live_stream_iterator *strea
         return;
     }
 
-    if (stream_iter->name) {
-        g_string_free(stream_iter->name, TRUE);
-    }
-
     bt_message_put_ref(stream_iter->current_msg);
 
     /* Track the number of active stream iterator. */
index a37cbfa1fdbc6dcf95d77e17da6c5cdd996567a6..615e4c2e4e2467fc2b825b1890bcbbf05e5b7f55 100644 (file)
@@ -347,7 +347,7 @@ static enum lttng_live_iterator_status lttng_live_iterator_next_handle_one_no_da
         BT_CLOGD(
             "Need to get an update for the metadata stream before proceeding further with this stream: "
             "stream-name=\"%s\"",
-            lttng_live_stream->name->str);
+            lttng_live_stream->name.c_str());
         ret = LTTNG_LIVE_ITERATOR_STATUS_CONTINUE;
         goto end;
     }
@@ -355,7 +355,7 @@ static enum lttng_live_iterator_status lttng_live_iterator_next_handle_one_no_da
     if (lttng_live_stream->trace->session->new_streams_needed) {
         BT_CLOGD("Need to get an update of all streams before proceeding further with this stream: "
                  "stream-name=\"%s\"",
-                 lttng_live_stream->name->str);
+                 lttng_live_stream->name.c_str());
         ret = LTTNG_LIVE_ITERATOR_STATUS_CONTINUE;
         goto end;
     }
@@ -398,7 +398,7 @@ static enum lttng_live_iterator_status lttng_live_iterator_next_handle_one_no_da
     BT_CLOGD("Setting live stream reading info: stream-name=\"%s\", "
              "viewer-stream-id=%" PRIu64 ", stream-base-offset=%" PRIu64 ", stream-offset=%" PRIu64
              ", stream-len=%" PRIu64,
-             lttng_live_stream->name->str, lttng_live_stream->viewer_stream_id,
+             lttng_live_stream->name.c_str(), lttng_live_stream->viewer_stream_id,
              lttng_live_stream->base_offset, lttng_live_stream->offset, lttng_live_stream->len);
 
 end:
@@ -831,7 +831,7 @@ lttng_live_iterator_close_stream(struct lttng_live_msg_iter *lttng_live_msg_iter
 
     BT_CLOGD("Closing live stream iterator: stream-name=\"%s\", "
              "viewer-stream-id=%" PRIu64,
-             stream_iter->name->str, stream_iter->viewer_stream_id);
+             stream_iter->name.c_str(), stream_iter->viewer_stream_id);
 
     /*
      * The viewer has hung up on us so we are closing the stream. The
@@ -915,7 +915,7 @@ lttng_live_iterator_next_msg_on_stream(struct lttng_live_msg_iter *lttng_live_ms
 
     BT_CLOGD("Advancing live stream iterator until next message if possible: "
              "stream-name=\"%s\", viewer-stream-id=%" PRIu64,
-             stream_iter->name->str, stream_iter->viewer_stream_id);
+             stream_iter->name.c_str(), stream_iter->viewer_stream_id);
 
     if (stream_iter->has_stream_hung_up) {
         /*
@@ -977,7 +977,7 @@ end:
 
     BT_CLOGD("Returning from advancing live stream iterator: status=%s, "
              "stream-name=\"%s\", viewer-stream-id=%" PRIu64,
-             lttng_live_iterator_status_string(live_status), stream_iter->name->str,
+             lttng_live_iterator_status_string(live_status), stream_iter->name.c_str(),
              stream_iter->viewer_stream_id);
 
     return live_status;
@@ -1094,7 +1094,7 @@ handle_late_message(struct lttng_live_msg_iter *lttng_live_msg_iter,
 
     BT_CLOGD("Handling late message on live stream iterator: "
              "stream-name=\"%s\", viewer-stream-id=%" PRIu64,
-             stream_iter->name->str, stream_iter->viewer_stream_id);
+             stream_iter->name.c_str(), stream_iter->viewer_stream_id);
 
     if (!stream_iter->last_inactivity_ts.is_set) {
         BT_CLOGE_APPEND_CAUSE("Invalid live stream state: "
@@ -1228,7 +1228,7 @@ next_stream_iterator_for_trace(struct lttng_live_msg_iter *lttng_live_msg_iter,
             BT_CLOGD("Live stream iterator returned message: msg-type=%s, "
                      "stream-name=\"%s\", viewer-stream-id=%" PRIu64,
                      bt_common_message_type_string(bt_message_get_type(msg)),
-                     stream_iter->name->str, stream_iter->viewer_stream_id);
+                     stream_iter->name.c_str(), stream_iter->viewer_stream_id);
 
             /*
              * Get the timestamp in nanoseconds from origin of this
@@ -1258,7 +1258,7 @@ next_stream_iterator_for_trace(struct lttng_live_msg_iter *lttng_live_msg_iter,
                                           "lttng-live-msg-iter-addr=%p, "
                                           "stream-name=\"%s\", "
                                           "curr-msg-ts=%" PRId64 ", last-msg-ts=%" PRId64,
-                                          lttng_live_msg_iter, stream_iter->name->str,
+                                          lttng_live_msg_iter, stream_iter->name.c_str(),
                                           curr_msg_ts_ns, lttng_live_msg_iter->last_msg_ts_ns);
                     stream_iter_status = LTTNG_LIVE_ITERATOR_STATUS_ERROR;
                     goto end;
index a6b8574c163d703cbdb9bb0c9c955f9bfb834b01..52e419a915f954049add2e85427a1db65a7db45e 100644 (file)
@@ -113,8 +113,7 @@ struct lttng_live_stream_iterator
 
     std::vector<uint8_t> buf;
 
-    /* Owned by this. */
-    GString *name = nullptr;
+    std::string name;
 
     bool has_stream_hung_up = false;
 };
This page took 0.027871 seconds and 5 git commands to generate.