#include <inttypes.h>
#include <unistd.h>
-#include <babeltrace/assert-internal.h>
-#include <babeltrace/babeltrace.h>
-#include <babeltrace/compiler-internal.h>
-#include <babeltrace/types.h>
+#include <babeltrace2/assert-internal.h>
+#include <babeltrace2/babeltrace.h>
+#include <babeltrace2/compiler-internal.h>
+#include <babeltrace2/types.h>
#include <plugins-common.h>
#include "data-stream.h"
} while (0);
BT_HIDDEN
-bool lttng_live_is_canceled(struct lttng_live_component *lttng_live)
+bool lttng_live_graph_is_canceled(struct lttng_live_component *lttng_live)
{
const bt_component *component;
bool ret;
if (lttng_live_detach_session(session)) {
live_comp = session->lttng_live_msg_iter->lttng_live_comp;
if (session->lttng_live_msg_iter &&
- !lttng_live_is_canceled(live_comp)) {
+ !lttng_live_graph_is_canceled(live_comp)) {
/* Old relayd cannot detach sessions. */
BT_LOGD("Unable to detach lttng live session %" PRIu64,
session->id);
if (!session->attached) {
ret = lttng_live_attach_session(session);
if (ret) {
- if (lttng_live_msg_iter && lttng_live_is_canceled(
+ if (lttng_live_msg_iter && lttng_live_graph_is_canceled(
lttng_live_msg_iter->lttng_live_comp)) {
status = LTTNG_LIVE_ITERATOR_STATUS_AGAIN;
} else {
const bt_clock_class *clock_class = NULL;
const bt_clock_snapshot *clock_snapshot = NULL;
int ret = 0;
- bt_clock_snapshot_state cs_state = BT_CLOCK_SNAPSHOT_STATE_KNOWN;
bt_message_stream_activity_clock_snapshot_state sa_cs_state;
BT_ASSERT(msg);
msg);
BT_ASSERT(clock_class);
- cs_state = bt_message_event_borrow_default_clock_snapshot_const(
- msg, &clock_snapshot);
+ clock_snapshot = bt_message_event_borrow_default_clock_snapshot_const(
+ msg);
break;
case BT_MESSAGE_TYPE_PACKET_BEGINNING:
clock_class =
msg);
BT_ASSERT(clock_class);
- cs_state = bt_message_packet_beginning_borrow_default_clock_snapshot_const(
- msg, &clock_snapshot);
+ clock_snapshot = bt_message_packet_beginning_borrow_default_clock_snapshot_const(
+ msg);
break;
case BT_MESSAGE_TYPE_PACKET_END:
clock_class =
msg);
BT_ASSERT(clock_class);
- cs_state = bt_message_packet_end_borrow_default_clock_snapshot_const(
- msg, &clock_snapshot);
+ clock_snapshot = bt_message_packet_end_borrow_default_clock_snapshot_const(
+ msg);
break;
case BT_MESSAGE_TYPE_DISCARDED_EVENTS:
clock_class =
msg);
BT_ASSERT(clock_class);
- cs_state = bt_message_discarded_events_borrow_default_beginning_clock_snapshot_const(
- msg, &clock_snapshot);
+ clock_snapshot = bt_message_discarded_events_borrow_beginning_default_clock_snapshot_const(
+ msg);
break;
case BT_MESSAGE_TYPE_DISCARDED_PACKETS:
clock_class =
msg);
BT_ASSERT(clock_class);
- cs_state = bt_message_discarded_packets_borrow_default_beginning_clock_snapshot_const(
- msg, &clock_snapshot);
+ clock_snapshot = bt_message_discarded_packets_borrow_beginning_default_clock_snapshot_const(
+ msg);
break;
case BT_MESSAGE_TYPE_STREAM_ACTIVITY_BEGINNING:
clock_class =
break;
case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY:
- cs_state =
+ clock_snapshot =
bt_message_message_iterator_inactivity_borrow_default_clock_snapshot_const(
- msg, &clock_snapshot);
+ msg);
break;
default:
/* All the other messages have a higher priority */
goto end;
}
- if (cs_state != BT_CLOCK_SNAPSHOT_STATE_KNOWN) {
- BT_LOGE_STR("Unsupported unknown clock snapshot.");
- ret = -1;
- goto end;
- }
-
clock_class = bt_clock_snapshot_borrow_clock_class_const(clock_snapshot);
BT_ASSERT(clock_class);
static
void lttng_live_component_destroy_data(struct lttng_live_component *lttng_live)
{
+ if (!lttng_live) {
+ return;
+ }
if (lttng_live->params.url) {
g_string_free(lttng_live->params.url, TRUE);
}
lttng_live = lttng_live_component_create(params);
if (!lttng_live) {
ret = BT_SELF_COMPONENT_STATUS_NOMEM;
- goto end;
+ goto error;
}
lttng_live->self_comp = self_comp;
- if (lttng_live_is_canceled(lttng_live)) {
- goto end;
+ if (lttng_live_graph_is_canceled(lttng_live)) {
+ ret = BT_SELF_COMPONENT_STATUS_END;
+ goto error;
}
ret = bt_self_component_source_add_output_port(
lttng_live->self_comp, "out",
NULL, NULL);
if (ret != BT_SELF_COMPONENT_STATUS_OK) {
- goto end;
+ goto error;
}
bt_self_component_set_data(
bt_self_component_source_as_self_component(self_comp),
lttng_live);
+ goto end;
+error:
+ lttng_live_component_destroy_data(lttng_live);
+ lttng_live = NULL;
end:
return ret;
}