src.ctf.lttng-live: add lttng_live_msg_iter destructor
[babeltrace.git] / src / plugins / ctf / lttng-live / lttng-live.cpp
index cdf324c21298c2268a9d54753c8e3c424583b2e2..43ae552a99100dc10380c609cbe6c653739c7031 100644 (file)
@@ -156,26 +156,14 @@ lttng_live_session::~lttng_live_session()
     }
 }
 
-static void lttng_live_msg_iter_destroy(struct lttng_live_msg_iter *lttng_live_msg_iter)
+lttng_live_msg_iter::~lttng_live_msg_iter()
 {
-    if (!lttng_live_msg_iter) {
-        goto end;
-    }
-
-    if (lttng_live_msg_iter->viewer_connection) {
-        delete lttng_live_msg_iter->viewer_connection;
-    }
-    BT_ASSERT(lttng_live_msg_iter->lttng_live_comp);
-    BT_ASSERT(lttng_live_msg_iter->lttng_live_comp->has_msg_iter);
+    BT_ASSERT(this->lttng_live_comp);
+    BT_ASSERT(this->lttng_live_comp->has_msg_iter);
 
     /* All stream iterators must be destroyed at this point. */
-    BT_ASSERT(lttng_live_msg_iter->active_stream_iter == 0);
-    lttng_live_msg_iter->lttng_live_comp->has_msg_iter = false;
-
-    delete lttng_live_msg_iter;
-
-end:
-    return;
+    BT_ASSERT(this->active_stream_iter == 0);
+    this->lttng_live_comp->has_msg_iter = false;
 }
 
 void lttng_live_msg_iter_finalize(bt_self_message_iterator *self_msg_iter)
@@ -187,7 +175,7 @@ void lttng_live_msg_iter_finalize(bt_self_message_iterator *self_msg_iter)
     lttng_live_msg_iter =
         (struct lttng_live_msg_iter *) bt_self_message_iterator_get_data(self_msg_iter);
     BT_ASSERT(lttng_live_msg_iter);
-    lttng_live_msg_iter_destroy(lttng_live_msg_iter);
+    delete lttng_live_msg_iter;
 }
 
 static enum lttng_live_iterator_status
@@ -1624,7 +1612,7 @@ lttng_live_msg_iter_init(bt_self_message_iterator *self_msg_it,
 
         viewer_status = live_viewer_connection_create(
             lttng_live->params.url.c_str(), false, lttng_live_msg_iter, lttng_live_msg_iter->logger,
-            &lttng_live_msg_iter->viewer_connection);
+            lttng_live_msg_iter->viewer_connection);
         if (viewer_status != LTTNG_LIVE_VIEWER_STATUS_OK) {
             if (viewer_status == LTTNG_LIVE_VIEWER_STATUS_ERROR) {
                 BT_CPPLOGE_APPEND_CAUSE_SPEC(lttng_live_msg_iter->logger,
@@ -1698,7 +1686,7 @@ lttng_live_msg_iter_init(bt_self_message_iterator *self_msg_it,
         goto end;
 
 error:
-        lttng_live_msg_iter_destroy(lttng_live_msg_iter);
+        delete lttng_live_msg_iter;
 end:
         return status;
     } catch (const std::bad_alloc&) {
@@ -1720,7 +1708,7 @@ lttng_live_query_list_sessions(const bt_value *params, const bt_value **result,
     bt_component_class_query_method_status status;
     const bt_value *url_value = NULL;
     const char *url;
-    struct live_viewer_connection *viewer_connection = NULL;
+    live_viewer_connection::UP viewer_connection;
     enum lttng_live_viewer_status viewer_status;
     enum bt_param_validation_status validation_status;
     gchar *validate_error = NULL;
@@ -1738,7 +1726,7 @@ lttng_live_query_list_sessions(const bt_value *params, const bt_value **result,
     url_value = bt_value_map_borrow_entry_value_const(params, URL_PARAM);
     url = bt_value_string_get(url_value);
 
-    viewer_status = live_viewer_connection_create(url, true, NULL, logger, &viewer_connection);
+    viewer_status = live_viewer_connection_create(url, true, NULL, logger, viewer_connection);
     if (viewer_status != LTTNG_LIVE_VIEWER_STATUS_OK) {
         if (viewer_status == LTTNG_LIVE_VIEWER_STATUS_ERROR) {
             BT_CPPLOGE_APPEND_CAUSE_SPEC(logger, "Failed to create viewer connection");
@@ -1751,7 +1739,7 @@ lttng_live_query_list_sessions(const bt_value *params, const bt_value **result,
         goto error;
     }
 
-    status = live_viewer_connection_list_sessions(viewer_connection, result);
+    status = live_viewer_connection_list_sessions(viewer_connection.get(), result);
     if (status != BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK) {
         BT_CPPLOGE_APPEND_CAUSE_SPEC(logger, "Failed to list viewer sessions");
         goto error;
@@ -1767,8 +1755,6 @@ error:
     }
 
 end:
-    delete viewer_connection;
-
     g_free(validate_error);
 
     return status;
This page took 0.026046 seconds and 4 git commands to generate.