}
}
-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)
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
viewer_status = live_viewer_connection_create(
lttng_live->params.url.c_str(), false, lttng_live_msg_iter, lttng_live_msg_iter->logger,
- <tng_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,
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&) {
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;
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");
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;
}
end:
- delete viewer_connection;
-
g_free(validate_error);
return status;