src.ctf.lttng-live: introduce lttng_live_session::UP and use it
[babeltrace.git] / src / plugins / ctf / lttng-live / lttng-live.cpp
index 4ecb736c8c8874dc4d16a9d27fc645f1daab6848..d1307bf837b654aae82d503793207cc32dbe66d5 100644 (file)
@@ -125,55 +125,40 @@ int lttng_live_add_session(struct lttng_live_msg_iter *lttng_live_msg_iter, uint
                     "session-id={}, hostname=\"{}\", session-name=\"{}\"",
                     session_id, hostname, session_name);
 
-    lttng_live_session *session = new lttng_live_session {lttng_live_msg_iter->logger};
+    auto session = bt2s::make_unique<lttng_live_session>(lttng_live_msg_iter->logger);
+
     session->self_comp = lttng_live_msg_iter->self_comp;
     session->id = session_id;
     session->lttng_live_msg_iter = lttng_live_msg_iter;
     session->new_streams_needed = true;
-    session->hostname = g_string_new(hostname);
-    BT_ASSERT(session->hostname);
-
-    session->session_name = g_string_new(session_name);
-    BT_ASSERT(session->session_name);
+    session->hostname = hostname;
+    session->session_name = session_name;
 
-    g_ptr_array_add(lttng_live_msg_iter->sessions, session);
+    g_ptr_array_add(lttng_live_msg_iter->sessions, session.release());
 
     return 0;
 }
 
-static void lttng_live_destroy_session(struct lttng_live_session *session)
+lttng_live_session::~lttng_live_session()
 {
-    if (!session) {
-        goto end;
-    }
+    BT_CPPLOGD_SPEC(this->logger, "Destroying live session: session-id={}, session-name=\"{}\"",
+                    this->id, this->session_name);
 
-    BT_CPPLOGD_SPEC(session->logger,
-                    "Destroying live session: "
-                    "session-id={}, session-name=\"{}\"",
-                    session->id, session->session_name->str);
-    if (session->id != -1ULL) {
-        if (lttng_live_session_detach(session)) {
-            if (!lttng_live_graph_is_canceled(session->lttng_live_msg_iter)) {
+    if (this->id != -1ULL) {
+        if (lttng_live_session_detach(this)) {
+            if (!lttng_live_graph_is_canceled(this->lttng_live_msg_iter)) {
                 /* Old relayd cannot detach sessions. */
-                BT_CPPLOGD_SPEC(session->logger, "Unable to detach lttng live session {}",
-                                session->id);
+                BT_CPPLOGD_SPEC(this->logger, "Unable to detach lttng live session {}", this->id);
             }
         }
-        session->id = -1ULL;
-    }
-
-    if (session->hostname) {
-        g_string_free(session->hostname, TRUE);
-    }
 
-    if (session->session_name) {
-        g_string_free(session->session_name, TRUE);
+        this->id = -1ULL;
     }
+}
 
+static void lttng_live_destroy_session(struct lttng_live_session *session)
+{
     delete session;
-
-end:
-    return;
 }
 
 static void lttng_live_msg_iter_destroy(struct lttng_live_msg_iter *lttng_live_msg_iter)
@@ -357,9 +342,8 @@ lttng_live_get_session(struct lttng_live_msg_iter *lttng_live_msg_iter,
     }
 
     BT_CPPLOGD_SPEC(lttng_live_msg_iter->logger,
-                    "Updating all data streams: "
-                    "session-id={}, session-name=\"{}\"",
-                    session->id, session->session_name->str);
+                    "Updating all data streams: session-id={}, session-name=\"{}\"", session->id,
+                    session->session_name);
 
     status = lttng_live_session_get_new_streams(session, lttng_live_msg_iter->self_msg_iter);
     switch (status) {
@@ -383,7 +367,7 @@ lttng_live_get_session(struct lttng_live_msg_iter *lttng_live_msg_iter,
             lttng_live_msg_iter->logger,
             "Updating streams returned _END status. Override status to _OK in order fetch any remaining metadata:"
             "session-id={}, session-name=\"{}\"",
-            session->id, session->session_name->str);
+            session->id, session->session_name);
         status = LTTNG_LIVE_ITERATOR_STATUS_OK;
         break;
     default:
@@ -391,9 +375,8 @@ lttng_live_get_session(struct lttng_live_msg_iter *lttng_live_msg_iter,
     }
 
     BT_CPPLOGD_SPEC(lttng_live_msg_iter->logger,
-                    "Updating metadata stream for session: "
-                    "session-id={}, session-name=\"{}\"",
-                    session->id, session->session_name->str);
+                    "Updating metadata stream for session: session-id={}, session-name=\"{}\"",
+                    session->id, session->session_name);
 
     for (lttng_live_trace::UP& trace : session->traces) {
         status = lttng_live_metadata_update(trace.get());
This page took 0.02789 seconds and 4 git commands to generate.