diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc index f318acf4ff..88b99bb515 100644 --- a/pc/peer_connection.cc +++ b/pc/peer_connection.cc @@ -1092,7 +1092,7 @@ PeerConnection::AddTransceiver( if (parameters.encodings.size() > 1 && num_rids == 0) { rtc::UniqueStringGenerator rid_generator; for (RtpEncodingParameters& encoding : parameters.encodings) { - encoding.rid = rid_generator(); + encoding.rid = rid_generator.GenerateString(); } } diff --git a/pc/peer_connection_simulcast_unittest.cc b/pc/peer_connection_simulcast_unittest.cc index 54b49309bb..98179f9829 100644 --- a/pc/peer_connection_simulcast_unittest.cc +++ b/pc/peer_connection_simulcast_unittest.cc @@ -117,7 +117,7 @@ std::vector CreateLayers(int num_layers, bool active) { rtc::UniqueStringGenerator rid_generator; std::vector rids; for (int i = 0; i < num_layers; ++i) { - rids.push_back(rid_generator()); + rids.push_back(rid_generator.GenerateString()); } return CreateLayers(rids, active); } diff --git a/rtc_base/unique_id_generator.h b/rtc_base/unique_id_generator.h index 342dad7766..d103caf2fc 100644 --- a/rtc_base/unique_id_generator.h +++ b/rtc_base/unique_id_generator.h @@ -44,7 +44,9 @@ class UniqueNumberGenerator { // If there are no available numbers to generate, this method will fail // with an `RTC_CHECK`. TIntegral GenerateNumber(); - TIntegral operator()() { return GenerateNumber(); } + + // Alias for GenerateId, used for allowing typed testing + TIntegral Generate() { return GenerateNumber(); } // Adds an id that this generator should no longer generate. // Return value indicates whether the ID was hitherto unknown. @@ -74,7 +76,9 @@ class UniqueRandomIdGenerator { // This method becomes more expensive with each use, as the probability of // collision for the randomly generated numbers increases. uint32_t GenerateId(); - uint32_t operator()() { return GenerateId(); } + + // Alias for GenerateId, used for allowing typed testing + uint32_t Generate() { return GenerateId(); } // Adds an id that this generator should no longer generate. // Return value indicates whether the ID was hitherto unknown. @@ -100,7 +104,8 @@ class UniqueStringGenerator { ~UniqueStringGenerator(); std::string GenerateString(); - std::string operator()() { return GenerateString(); } + // Alias for GenerateString, used for allowing typed testing + std::string Generate() { return GenerateString(); } // Adds an id that this generator should no longer generate. // Return value indicates whether the ID was hitherto unknown. diff --git a/rtc_base/unique_id_generator_unittest.cc b/rtc_base/unique_id_generator_unittest.cc index c6eb511e57..ec9c3fb4e5 100644 --- a/rtc_base/unique_id_generator_unittest.cc +++ b/rtc_base/unique_id_generator_unittest.cc @@ -62,7 +62,7 @@ TYPED_TEST(UniqueIdGeneratorTest, ElementsDoNotRepeat) { Generator generator; std::vector values; for (size_t i = 0; i < num_elements; i++) { - values.push_back(generator()); + values.push_back(generator.Generate()); } EXPECT_EQ(num_elements, values.size()); @@ -78,7 +78,7 @@ TYPED_TEST(UniqueIdGeneratorTest, KnownElementsAreNotGenerated) { Generator generator1; std::vector known_values; for (size_t i = 0; i < num_elements; i++) { - known_values.push_back(generator1()); + known_values.push_back(generator1.Generate()); } EXPECT_EQ(num_elements, known_values.size()); @@ -87,7 +87,7 @@ TYPED_TEST(UniqueIdGeneratorTest, KnownElementsAreNotGenerated) { std::vector values; for (size_t i = 0; i < num_elements; i++) { - values.push_back(generator2()); + values.push_back(generator2.Generate()); } EXPECT_THAT(values, ::testing::SizeIs(num_elements)); absl::c_sort(values); @@ -105,7 +105,7 @@ TYPED_TEST(UniqueIdGeneratorTest, AddedElementsAreNotGenerated) { Generator generator1; std::vector known_values; for (size_t i = 0; i < num_elements; i++) { - known_values.push_back(generator1()); + known_values.push_back(generator1.Generate()); } EXPECT_EQ(num_elements, known_values.size()); @@ -118,7 +118,7 @@ TYPED_TEST(UniqueIdGeneratorTest, AddedElementsAreNotGenerated) { std::vector values; for (size_t i = 0; i < num_elements; i++) { - values.push_back(generator2()); + values.push_back(generator2.Generate()); } EXPECT_THAT(values, ::testing::SizeIs(num_elements)); absl::c_sort(values); @@ -134,7 +134,7 @@ TYPED_TEST(UniqueIdGeneratorTest, AddKnownIdOnNewIdReturnsTrue) { rtc::InitRandom(0); Generator generator1; - const typename Generator::value_type id = generator1(); + const typename Generator::value_type id = generator1.Generate(); rtc::InitRandom(0); Generator generator2; @@ -146,7 +146,7 @@ TYPED_TEST(UniqueIdGeneratorTest, AddKnownIdCalledAgainForSameIdReturnsFalse) { rtc::InitRandom(0); Generator generator1; - const typename Generator::value_type id = generator1(); + const typename Generator::value_type id = generator1.Generate(); rtc::InitRandom(0); Generator generator2; @@ -160,7 +160,7 @@ TYPED_TEST(UniqueIdGeneratorTest, rtc::InitRandom(0); Generator generator1; - const typename Generator::value_type id = generator1(); + const typename Generator::value_type id = generator1.Generate(); std::vector known_values = {id}; rtc::InitRandom(0); @@ -182,7 +182,7 @@ TEST(UniqueNumberGenerator, UsedOnSecondaryThread) { ASSERT_NE(current_tq, webrtc::TaskQueueBase::Current()); // Generating an id should be fine in this context. - generator.GenerateNumber(); + generator.Generate(); } #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) @@ -196,13 +196,13 @@ TEST(UniqueNumberGeneratorDeathTest, FailsWhenUsedInWrongContext) { FakeTaskQueue initial_fake_task_queue; // Generate an ID on the current thread. This causes the generator to attach // to the current thread context. - generator.GenerateNumber(); + generator.Generate(); // Instantiate a fake task queue that will register itself as the current tq. FakeTaskQueue fake_task_queue; // Attempting to generate an id should now trigger a dcheck. - EXPECT_DEATH(generator.GenerateNumber(), ""); + EXPECT_DEATH(generator.Generate(), ""); } #endif diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc index 7b33ca2fde..038ae80792 100644 --- a/video/video_send_stream_tests.cc +++ b/video/video_send_stream_tests.cc @@ -3786,7 +3786,8 @@ class PacingFactorObserver : public test::SendTest { } // Want send side, not present by default, so add it. send_config->rtp.extensions.emplace_back( - RtpExtension::kTransportSequenceNumberUri, unique_id_generator()); + RtpExtension::kTransportSequenceNumberUri, + unique_id_generator.GenerateNumber()); } // ALR only enabled for screenshare.