X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=src%2Fplugins%2Fctf%2Flttng-live%2Fdata-stream.c;h=e8f00d7f561f34f25957f60a3d8b920a9340b465;hp=79f6c3fa97cd540cbebfd1f80323c23836ef38df;hb=1a25881946640f778a14e8f5491795193572d826;hpb=76bbaebcbc68c8765517a3db2c293fad83a5d162 diff --git a/src/plugins/ctf/lttng-live/data-stream.c b/src/plugins/ctf/lttng-live/data-stream.c index 79f6c3fa..e8f00d7f 100644 --- a/src/plugins/ctf/lttng-live/data-stream.c +++ b/src/plugins/ctf/lttng-live/data-stream.c @@ -1,26 +1,10 @@ /* - * Copyright 2019 Francis Deslauriers - * Copyright 2016 - Philippe Proulx - * Copyright 2016 - Jérémie Galarneau - * Copyright 2010-2011 - EfficiOS Inc. and Linux Foundation - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. + * SPDX-License-Identifier: MIT * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Copyright 2019 Francis Deslauriers + * Copyright 2016 Philippe Proulx + * Copyright 2016 Jérémie Galarneau + * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation */ #define BT_COMP_LOG_SELF_COMP self_comp @@ -58,6 +42,8 @@ enum ctf_msg_iter_medium_status medop_request_bytes( uint64_t len_left; uint64_t read_len; + BT_ASSERT(request_sz); + if (stream->has_stream_hung_up) { status = CTF_MSG_ITER_MEDIUM_STATUS_EOF; goto end; @@ -65,7 +51,8 @@ enum ctf_msg_iter_medium_status medop_request_bytes( len_left = stream->base_offset + stream->len - stream->offset; if (!len_left) { - stream->state = LTTNG_LIVE_STREAM_ACTIVE_NO_DATA; + lttng_live_stream_iterator_set_state(stream, + LTTNG_LIVE_STREAM_ACTIVE_NO_DATA); status = CTF_MSG_ITER_MEDIUM_STATUS_AGAIN; goto end; } @@ -184,11 +171,6 @@ enum lttng_live_iterator_status lttng_live_lazy_msg_init( "Failed to create CTF message iterator"); goto error; } - - ctf_msg_iter_set_emit_stream_end_message( - stream_iter->msg_iter, true); - ctf_msg_iter_set_emit_stream_beginning_message( - stream_iter->msg_iter, true); } } @@ -230,7 +212,7 @@ struct lttng_live_stream_iterator *lttng_live_stream_iterator_create( stream_iter->log_level = log_level; stream_iter->self_comp = self_comp; - trace = lttng_live_borrow_trace(session, ctf_trace_id); + trace = lttng_live_session_borrow_or_create_trace_by_id(session, ctf_trace_id); if (!trace) { BT_COMP_LOGE_APPEND_CAUSE(self_comp, "Failed to borrow CTF trace."); @@ -240,8 +222,12 @@ struct lttng_live_stream_iterator *lttng_live_stream_iterator_create( stream_iter->trace = trace; stream_iter->state = LTTNG_LIVE_STREAM_ACTIVE_NO_DATA; stream_iter->viewer_stream_id = stream_id; - stream_iter->ctf_stream_class_id = -1ULL; - stream_iter->last_inactivity_ts = INT64_MIN; + + stream_iter->ctf_stream_class_id.is_set = false; + stream_iter->ctf_stream_class_id.value = UINT64_MAX; + + stream_iter->last_inactivity_ts.is_set = false; + stream_iter->last_inactivity_ts.value = 0; if (trace->trace) { struct ctf_trace_class *ctf_tc = @@ -256,11 +242,6 @@ struct lttng_live_stream_iterator *lttng_live_stream_iterator_create( "Failed to create CTF message iterator"); goto error; } - - ctf_msg_iter_set_emit_stream_end_message( - stream_iter->msg_iter, true); - ctf_msg_iter_set_emit_stream_beginning_message( - stream_iter->msg_iter, true); } stream_iter->buf = g_new0(uint8_t, lttng_live->max_query_size); if (!stream_iter->buf) {