#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sstream>
#include <glib.h>
BT_CLOGI("Creating stream %s (ID: %" PRIu64 ") out of stream "
"class %" PRId64,
- lttng_live_stream->name->str, stream_id, stream_class_id);
+ lttng_live_stream->name.c_str(), stream_id, stream_class_id);
bt_stream *stream;
if (!stream) {
BT_CLOGE_APPEND_CAUSE("Cannot create stream %s (stream class ID "
"%" PRId64 ", stream ID %" PRIu64 ")",
- lttng_live_stream->name->str, stream_class_id, stream_id);
+ lttng_live_stream->name.c_str(), stream_class_id, stream_id);
return nullptr;
}
lttng_live_stream->stream = bt2::Stream::Shared::createWithoutRef(stream);
- (*lttng_live_stream->stream)->name(lttng_live_stream->name->str);
+ (*lttng_live_stream->stream)->name(lttng_live_stream->name);
}
return (*lttng_live_stream->stream)->libObjPtr();
BT_CLOGD("Creating CTF message iterator: "
"session-id=%" PRIu64 ", ctf-tc-addr=%p, "
"stream-iter-name=%s, self-msg-iter-addr=%p",
- session->id, ctf_tc, stream_iter->name->str, self_msg_iter);
+ session->id, ctf_tc, stream_iter->name.c_str(), self_msg_iter);
stream_iter->msg_iter = ctf_msg_iter_create(ctf_tc, lttng_live->max_query_size, medops,
stream_iter, self_msg_iter, logCfg);
if (!stream_iter->msg_iter) {
{
struct lttng_live_component *lttng_live;
struct lttng_live_trace *trace;
+ std::stringstream nameSs;
BT_ASSERT(session);
BT_ASSERT(session->lttng_live_msg_iter);
}
}
stream_iter->buf.resize(lttng_live->max_query_size);
- stream_iter->name = g_string_new(NULL);
- if (!stream_iter->name) {
- BT_CLOGE_APPEND_CAUSE("Failed to allocate live stream iterator name buffer");
- goto error;
- }
- g_string_printf(stream_iter->name, STREAM_NAME_PREFIX "%" PRIu64,
- stream_iter->viewer_stream_id);
+ nameSs << STREAM_NAME_PREFIX << stream_iter->viewer_stream_id;
+ stream_iter->name = nameSs.str();
g_ptr_array_add(trace->stream_iterators, stream_iter);
/* Track the number of active stream iterator. */
return;
}
- if (stream_iter->name) {
- g_string_free(stream_iter->name, TRUE);
- }
-
bt_message_put_ref(stream_iter->current_msg);
/* Track the number of active stream iterator. */
BT_CLOGD(
"Need to get an update for the metadata stream before proceeding further with this stream: "
"stream-name=\"%s\"",
- lttng_live_stream->name->str);
+ lttng_live_stream->name.c_str());
ret = LTTNG_LIVE_ITERATOR_STATUS_CONTINUE;
goto end;
}
if (lttng_live_stream->trace->session->new_streams_needed) {
BT_CLOGD("Need to get an update of all streams before proceeding further with this stream: "
"stream-name=\"%s\"",
- lttng_live_stream->name->str);
+ lttng_live_stream->name.c_str());
ret = LTTNG_LIVE_ITERATOR_STATUS_CONTINUE;
goto end;
}
BT_CLOGD("Setting live stream reading info: stream-name=\"%s\", "
"viewer-stream-id=%" PRIu64 ", stream-base-offset=%" PRIu64 ", stream-offset=%" PRIu64
", stream-len=%" PRIu64,
- lttng_live_stream->name->str, lttng_live_stream->viewer_stream_id,
+ lttng_live_stream->name.c_str(), lttng_live_stream->viewer_stream_id,
lttng_live_stream->base_offset, lttng_live_stream->offset, lttng_live_stream->len);
end:
BT_CLOGD("Closing live stream iterator: stream-name=\"%s\", "
"viewer-stream-id=%" PRIu64,
- stream_iter->name->str, stream_iter->viewer_stream_id);
+ stream_iter->name.c_str(), stream_iter->viewer_stream_id);
/*
* The viewer has hung up on us so we are closing the stream. The
BT_CLOGD("Advancing live stream iterator until next message if possible: "
"stream-name=\"%s\", viewer-stream-id=%" PRIu64,
- stream_iter->name->str, stream_iter->viewer_stream_id);
+ stream_iter->name.c_str(), stream_iter->viewer_stream_id);
if (stream_iter->has_stream_hung_up) {
/*
BT_CLOGD("Returning from advancing live stream iterator: status=%s, "
"stream-name=\"%s\", viewer-stream-id=%" PRIu64,
- lttng_live_iterator_status_string(live_status), stream_iter->name->str,
+ lttng_live_iterator_status_string(live_status), stream_iter->name.c_str(),
stream_iter->viewer_stream_id);
return live_status;
BT_CLOGD("Handling late message on live stream iterator: "
"stream-name=\"%s\", viewer-stream-id=%" PRIu64,
- stream_iter->name->str, stream_iter->viewer_stream_id);
+ stream_iter->name.c_str(), stream_iter->viewer_stream_id);
if (!stream_iter->last_inactivity_ts.is_set) {
BT_CLOGE_APPEND_CAUSE("Invalid live stream state: "
BT_CLOGD("Live stream iterator returned message: msg-type=%s, "
"stream-name=\"%s\", viewer-stream-id=%" PRIu64,
bt_common_message_type_string(bt_message_get_type(msg)),
- stream_iter->name->str, stream_iter->viewer_stream_id);
+ stream_iter->name.c_str(), stream_iter->viewer_stream_id);
/*
* Get the timestamp in nanoseconds from origin of this
"lttng-live-msg-iter-addr=%p, "
"stream-name=\"%s\", "
"curr-msg-ts=%" PRId64 ", last-msg-ts=%" PRId64,
- lttng_live_msg_iter, stream_iter->name->str,
+ lttng_live_msg_iter, stream_iter->name.c_str(),
curr_msg_ts_ns, lttng_live_msg_iter->last_msg_ts_ns);
stream_iter_status = LTTNG_LIVE_ITERATOR_STATUS_ERROR;
goto end;