src.ctf.lttng-live: use optional pattern for `ctf_stream_class_id`
[babeltrace.git] / src / plugins / ctf / lttng-live / viewer-connection.c
index c3b5ca1b27278a17f5749f9e70a8266592027c3f..34bac35afa0fd7c24c3f32b2c3a8b78167d659c9 100644 (file)
@@ -1539,13 +1539,14 @@ enum lttng_live_iterator_status lttng_live_get_next_index(
                index->ts_cycles.timestamp_end = be64toh(rp.timestamp_end);
                stream->current_inactivity_ts = index->ts_cycles.timestamp_end;
                ctf_stream_class_id = be64toh(rp.stream_id);
-               if (stream->ctf_stream_class_id != -1ULL) {
-                       BT_ASSERT(stream->ctf_stream_class_id ==
+               if (stream->ctf_stream_class_id.is_set) {
+                       BT_ASSERT(stream->ctf_stream_class_id.value==
                                ctf_stream_class_id);
                } else {
-                       stream->ctf_stream_class_id = ctf_stream_class_id;
+                       stream->ctf_stream_class_id.value = ctf_stream_class_id;
+                       stream->ctf_stream_class_id.is_set = true;
                }
-               stream->state = LTTNG_LIVE_STREAM_QUIESCENT;
+               lttng_live_stream_iterator_set_state(stream, LTTNG_LIVE_STREAM_QUIESCENT);
                status = LTTNG_LIVE_ITERATOR_STATUS_OK;
                break;
        }
@@ -1555,14 +1556,15 @@ enum lttng_live_iterator_status lttng_live_get_next_index(
 
                lttng_index_to_packet_index(&rp, index);
                ctf_stream_class_id = be64toh(rp.stream_id);
-               if (stream->ctf_stream_class_id != -1ULL) {
-                       BT_ASSERT(stream->ctf_stream_class_id ==
+               if (stream->ctf_stream_class_id.is_set) {
+                       BT_ASSERT(stream->ctf_stream_class_id.value==
                                ctf_stream_class_id);
                } else {
-                       stream->ctf_stream_class_id = ctf_stream_class_id;
+                       stream->ctf_stream_class_id.value = ctf_stream_class_id;
+                       stream->ctf_stream_class_id.is_set = true;
                }
 
-               stream->state = LTTNG_LIVE_STREAM_ACTIVE_DATA;
+               lttng_live_stream_iterator_set_state(stream, LTTNG_LIVE_STREAM_ACTIVE_DATA);
 
                if (flags & LTTNG_VIEWER_FLAG_NEW_METADATA) {
                        BT_COMP_LOGD("Marking trace as needing new metadata: "
@@ -1582,25 +1584,25 @@ enum lttng_live_iterator_status lttng_live_get_next_index(
        }
        case LTTNG_VIEWER_INDEX_RETRY:
                memset(index, 0, sizeof(struct packet_index));
-               stream->state = LTTNG_LIVE_STREAM_ACTIVE_NO_DATA;
+               lttng_live_stream_iterator_set_state(stream, LTTNG_LIVE_STREAM_ACTIVE_NO_DATA);
                status = LTTNG_LIVE_ITERATOR_STATUS_AGAIN;
                goto end;
        case LTTNG_VIEWER_INDEX_HUP:
                memset(index, 0, sizeof(struct packet_index));
                index->offset = EOF;
-               stream->state = LTTNG_LIVE_STREAM_EOF;
+               lttng_live_stream_iterator_set_state(stream, LTTNG_LIVE_STREAM_EOF);
                stream->has_stream_hung_up = true;
                status = LTTNG_LIVE_ITERATOR_STATUS_END;
                break;
        case LTTNG_VIEWER_INDEX_ERR:
                memset(index, 0, sizeof(struct packet_index));
-               stream->state = LTTNG_LIVE_STREAM_ACTIVE_NO_DATA;
+               lttng_live_stream_iterator_set_state(stream, LTTNG_LIVE_STREAM_ACTIVE_NO_DATA);
                status = LTTNG_LIVE_ITERATOR_STATUS_ERROR;
                goto end;
        default:
                BT_COMP_LOGD("Received get_next_index response: unknown value");
                memset(index, 0, sizeof(struct packet_index));
-               stream->state = LTTNG_LIVE_STREAM_ACTIVE_NO_DATA;
+               lttng_live_stream_iterator_set_state(stream, LTTNG_LIVE_STREAM_ACTIVE_NO_DATA);
                status = LTTNG_LIVE_ITERATOR_STATUS_ERROR;
                goto end;
        }
This page took 0.023945 seconds and 4 git commands to generate.