Remove DoesNotExist object status. It was removed in MOQT draft-18 PiperOrigin-RevId: 996652559
diff --git a/quiche/quic/moqt/moqt_fetch_task.h b/quiche/quic/moqt/moqt_fetch_task.h index a3866d1..4578ab0 100644 --- a/quiche/quic/moqt/moqt_fetch_task.h +++ b/quiche/quic/moqt/moqt_fetch_task.h
@@ -69,8 +69,7 @@ kError, }; - // Returns the next object received via the fetch, if available. MUST NOT - // return an object with status kObjectDoesNotExist. + // Returns the next object received via the fetch, if available. virtual GetNextObjectResult GetNextObject(PublishedObject& output) = 0; // Sets the callback that is called when GetNextObject() has previously
diff --git a/quiche/quic/moqt/moqt_framer_test.cc b/quiche/quic/moqt/moqt_framer_test.cc index 6ebc2d2..19cebc5 100644 --- a/quiche/quic/moqt/moqt_framer_test.cc +++ b/quiche/quic/moqt/moqt_framer_test.cc
@@ -309,13 +309,13 @@ TEST_F(MoqtFramerSimpleTest, BadObjectInput) { MoqtObject object = { - // Invalid: DoesNotExist with non-zero payload length. + // Invalid: EndOfTrack with non-zero payload length. /*track_alias=*/4, /*group_id=*/5, /*object_id=*/6, /*publisher_priority=*/7, std::string(kDefaultPropertyBlob.data(), kDefaultPropertyBlob.size()), - /*object_status=*/MoqtObjectStatus::kObjectDoesNotExist, + /*object_status=*/MoqtObjectStatus::kEndOfTrack, /*subgroup_id=*/8, /*first_object_in_subgroup=*/true, /*payload_length=*/3, @@ -345,7 +345,7 @@ }; quiche::QuicheBuffer buffer; - object.object_status = MoqtObjectStatus::kObjectDoesNotExist; + object.object_status = MoqtObjectStatus::kEndOfTrack; EXPECT_QUIC_BUG(buffer = framer_.SerializeObjectDatagram( object, "foo", kDefaultPublisherPriority), "Object metadata is invalid");
diff --git a/quiche/quic/moqt/moqt_messages.cc b/quiche/quic/moqt/moqt_messages.cc index 421f283..fffce1a 100644 --- a/quiche/quic/moqt/moqt_messages.cc +++ b/quiche/quic/moqt/moqt_messages.cc
@@ -266,11 +266,16 @@ } // namespace MoqtObjectStatus IntegerToObjectStatus(uint64_t integer) { - if (integer >= - static_cast<uint64_t>(MoqtObjectStatus::kInvalidObjectStatus)) { - return MoqtObjectStatus::kInvalidObjectStatus; + switch (integer) { + case 0x0: + return MoqtObjectStatus::kNormal; + case 0x3: + return MoqtObjectStatus::kEndOfGroup; + case 0x4: + return MoqtObjectStatus::kEndOfTrack; + default: + return MoqtObjectStatus::kInvalidObjectStatus; } - return static_cast<MoqtObjectStatus>(integer); } MoqtError SetupOptionsAllowedByMessage(const SetupOptions& options,
diff --git a/quiche/quic/moqt/moqt_messages_test.cc b/quiche/quic/moqt/moqt_messages_test.cc index 8bd9a12..85f6c91 100644 --- a/quiche/quic/moqt/moqt_messages_test.cc +++ b/quiche/quic/moqt/moqt_messages_test.cc
@@ -4,6 +4,7 @@ #include "quiche/quic/moqt/moqt_messages.h" +#include <cstdint> #include <initializer_list> #include <optional> @@ -336,5 +337,16 @@ } } +TEST(MoqtMessagesTest, IntegerToObjectStatus) { + EXPECT_EQ(IntegerToObjectStatus(0), MoqtObjectStatus::kNormal); + EXPECT_EQ(IntegerToObjectStatus(1), MoqtObjectStatus::kInvalidObjectStatus); + EXPECT_EQ(IntegerToObjectStatus(2), MoqtObjectStatus::kInvalidObjectStatus); + EXPECT_EQ(IntegerToObjectStatus(3), MoqtObjectStatus::kEndOfGroup); + EXPECT_EQ(IntegerToObjectStatus(4), MoqtObjectStatus::kEndOfTrack); + EXPECT_EQ(IntegerToObjectStatus(5), MoqtObjectStatus::kInvalidObjectStatus); + EXPECT_EQ(IntegerToObjectStatus(UINT64_MAX), + MoqtObjectStatus::kInvalidObjectStatus); +} + } // namespace } // namespace moqt::test
diff --git a/quiche/quic/moqt/moqt_object_test.cc b/quiche/quic/moqt/moqt_object_test.cc index fc6e2bb..c30b8ce 100644 --- a/quiche/quic/moqt/moqt_object_test.cc +++ b/quiche/quic/moqt/moqt_object_test.cc
@@ -70,7 +70,7 @@ EXPECT_TRUE(metadata.IsMalformed(other)); other = metadata; - other.status = MoqtObjectStatus::kObjectDoesNotExist; + other.status = MoqtObjectStatus::kEndOfGroup; EXPECT_TRUE(metadata.IsMalformed(other)); other = metadata; @@ -111,7 +111,7 @@ EXPECT_NE(metadata, other); other = metadata; - other.status = MoqtObjectStatus::kObjectDoesNotExist; + other.status = MoqtObjectStatus::kEndOfGroup; EXPECT_NE(metadata, other); other = metadata;
diff --git a/quiche/quic/moqt/moqt_session_test.cc b/quiche/quic/moqt/moqt_session_test.cc index 7511dbe..a90154c 100644 --- a/quiche/quic/moqt/moqt_session_test.cc +++ b/quiche/quic/moqt/moqt_session_test.cc
@@ -1516,8 +1516,6 @@ MoqtObjectStatus status, Location location, absl::string_view payload, MoqtFetchTask::GetNextObjectResult second_result) { - // Nothing is sent for status = kObjectDoesNotExist. Do not use this function. - QUICHE_DCHECK(status != MoqtObjectStatus::kObjectDoesNotExist); QUICHE_DCHECK(second_result != MoqtFetchTask::GetNextObjectResult::kSuccess); EXPECT_CALL(data_stream, CanWrite).WillRepeatedly(Return(true)); EXPECT_CALL(*fetch_task, GetNextObject)
diff --git a/quiche/quic/moqt/moqt_types.h b/quiche/quic/moqt/moqt_types.h index 873dc4f..7b57138 100644 --- a/quiche/quic/moqt/moqt_types.h +++ b/quiche/quic/moqt/moqt_types.h
@@ -54,7 +54,6 @@ enum class QUICHE_EXPORT MoqtObjectStatus : uint64_t { kNormal = 0x0, - kObjectDoesNotExist = 0x1, kEndOfGroup = 0x3, kEndOfTrack = 0x4, kInvalidObjectStatus = 0x5,
diff --git a/quiche/quic/moqt/moqt_uni_stream_test.cc b/quiche/quic/moqt/moqt_uni_stream_test.cc index b898a05..f6a62ce 100644 --- a/quiche/quic/moqt/moqt_uni_stream_test.cc +++ b/quiche/quic/moqt/moqt_uni_stream_test.cc
@@ -352,7 +352,7 @@ TEST_F(OutgoingFetchStreamTest, OnCanWriteNonNormalStatus) { PublishedObject obj = DefaultObject(); - obj.metadata.status = MoqtObjectStatus::kObjectDoesNotExist; + obj.metadata.status = MoqtObjectStatus::kEndOfGroup; EXPECT_CALL(mock_stream_, CanWrite()) .WillOnce(Return(true)) .WillOnce(Return(false));
diff --git a/quiche/quic/moqt/test_tools/moqt_test_message.h b/quiche/quic/moqt/test_tools/moqt_test_message.h index 6c6703a..d4db588 100644 --- a/quiche/quic/moqt/test_tools/moqt_test_message.h +++ b/quiche/quic/moqt/test_tools/moqt_test_message.h
@@ -297,7 +297,7 @@ : ObjectMessage(), datagram_type_(datagram_type) { // Update ObjectMessage::object_ to match the datagram type. if (datagram_type.has_status()) { - object_.object_status = MoqtObjectStatus::kObjectDoesNotExist; + object_.object_status = MoqtObjectStatus::kEndOfTrack; object_.payload_length = 0; } else { object_.object_status = datagram_type.end_of_group()