"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)
}
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) {
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:
}
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());