diff --git a/net/dcsctp/common/BUILD.gn b/net/dcsctp/common/BUILD.gn index 80520132b0..273a002f8b 100644 --- a/net/dcsctp/common/BUILD.gn +++ b/net/dcsctp/common/BUILD.gn @@ -10,7 +10,7 @@ import("../../../webrtc.gni") rtc_source_set("internal_types") { deps = [ - "../public:strong_alias", + "../../../rtc_base:rtc_base_approved", "../public:types", ] sources = [ "internal_types.h" ] diff --git a/net/dcsctp/common/internal_types.h b/net/dcsctp/common/internal_types.h index e7dabf303d..2354b92cc4 100644 --- a/net/dcsctp/common/internal_types.h +++ b/net/dcsctp/common/internal_types.h @@ -13,31 +13,32 @@ #include #include -#include "net/dcsctp/public/strong_alias.h" #include "net/dcsctp/public/types.h" +#include "rtc_base/strong_alias.h" namespace dcsctp { // Stream Sequence Number (SSN) -using SSN = StrongAlias; +using SSN = webrtc::StrongAlias; // Message Identifier (MID) -using MID = StrongAlias; +using MID = webrtc::StrongAlias; // Fragment Sequence Number (FSN) -using FSN = StrongAlias; +using FSN = webrtc::StrongAlias; // Transmission Sequence Number (TSN) -using TSN = StrongAlias; +using TSN = webrtc::StrongAlias; // Reconfiguration Request Sequence Number -using ReconfigRequestSN = StrongAlias; +using ReconfigRequestSN = + webrtc::StrongAlias; // Verification Tag, used for packet validation. -using VerificationTag = StrongAlias; +using VerificationTag = webrtc::StrongAlias; // Tie Tag, used as a nonce when connecting. -using TieTag = StrongAlias; +using TieTag = webrtc::StrongAlias; } // namespace dcsctp #endif // NET_DCSCTP_COMMON_INTERNAL_TYPES_H_ diff --git a/net/dcsctp/common/sequence_numbers.h b/net/dcsctp/common/sequence_numbers.h index 52b638b54a..919fc5014a 100644 --- a/net/dcsctp/common/sequence_numbers.h +++ b/net/dcsctp/common/sequence_numbers.h @@ -26,7 +26,7 @@ namespace dcsctp { // need to be unwrapped in order, as long as the difference to the previous one // is not larger than half the range of the wrapped sequence number. // -// The WrappedType must be a StrongAlias type. +// The WrappedType must be a webrtc::StrongAlias type. template class UnwrappedSequenceNumber { public: diff --git a/net/dcsctp/common/sequence_numbers_test.cc b/net/dcsctp/common/sequence_numbers_test.cc index f5fa788876..c4842f089e 100644 --- a/net/dcsctp/common/sequence_numbers_test.cc +++ b/net/dcsctp/common/sequence_numbers_test.cc @@ -14,7 +14,7 @@ namespace dcsctp { namespace { -using Wrapped = StrongAlias; +using Wrapped = webrtc::StrongAlias; using TestSequence = UnwrappedSequenceNumber; TEST(SequenceNumbersTest, SimpleUnwrapping) { diff --git a/net/dcsctp/packet/chunk/data_common.h b/net/dcsctp/packet/chunk/data_common.h index b15a034593..b67efeee1e 100644 --- a/net/dcsctp/packet/chunk/data_common.h +++ b/net/dcsctp/packet/chunk/data_common.h @@ -24,7 +24,7 @@ namespace dcsctp { class AnyDataChunk : public Chunk { public: // Represents the "immediate ack" flag on DATA/I-DATA, from RFC7053. - using ImmediateAckFlag = StrongAlias; + using ImmediateAckFlag = webrtc::StrongAlias; // Data chunk options. // See https://tools.ietf.org/html/rfc4960#section-3.3.1 diff --git a/net/dcsctp/packet/data.h b/net/dcsctp/packet/data.h index f2d2e74904..c1754ed59a 100644 --- a/net/dcsctp/packet/data.h +++ b/net/dcsctp/packet/data.h @@ -34,11 +34,11 @@ namespace dcsctp { struct Data { // Indicates if a chunk is the first in a fragmented message and maps to the // "beginning" flag in DATA/I-DATA chunk. - using IsBeginning = StrongAlias; + using IsBeginning = webrtc::StrongAlias; // Indicates if a chunk is the last in a fragmented message and maps to the // "end" flag in DATA/I-DATA chunk. - using IsEnd = StrongAlias; + using IsEnd = webrtc::StrongAlias; Data(StreamID stream_id, SSN ssn, diff --git a/net/dcsctp/public/BUILD.gn b/net/dcsctp/public/BUILD.gn index 74136ac7f4..b07ca1b3d8 100644 --- a/net/dcsctp/public/BUILD.gn +++ b/net/dcsctp/public/BUILD.gn @@ -8,13 +8,9 @@ import("../../../webrtc.gni") -rtc_source_set("strong_alias") { - sources = [ "strong_alias.h" ] -} - rtc_source_set("types") { deps = [ - ":strong_alias", + "../../../rtc_base:rtc_base_approved", "../../../api:array_view", ] sources = [ @@ -27,7 +23,7 @@ rtc_source_set("types") { rtc_source_set("socket") { deps = [ - ":strong_alias", + "../../../rtc_base:rtc_base_approved", ":types", "../../../api:array_view", "../../../rtc_base", @@ -91,17 +87,14 @@ if (rtc_include_tests) { deps = [ ":mocks", - ":strong_alias", ":types", "../../../rtc_base:checks", "../../../rtc_base:gunit_helpers", "../../../rtc_base:rtc_base_approved", - "../../../rtc_base/containers:flat_map", "../../../test:test_support", ] sources = [ "mock_dcsctp_socket_test.cc", - "strong_alias_test.cc", "types_test.cc", ] } diff --git a/net/dcsctp/public/dcsctp_handover_state.h b/net/dcsctp/public/dcsctp_handover_state.h index 370501c0f8..a58535d45f 100644 --- a/net/dcsctp/public/dcsctp_handover_state.h +++ b/net/dcsctp/public/dcsctp_handover_state.h @@ -14,7 +14,7 @@ #include #include -#include "net/dcsctp/public/strong_alias.h" +#include "rtc_base/strong_alias.h" namespace dcsctp { @@ -101,15 +101,15 @@ enum class HandoverUnreadinessReason : uint32_t { // state in which a snapshot of the state can be made by // `GetHandoverStateAndClose()`. class HandoverReadinessStatus - : public StrongAlias { + : public webrtc::StrongAlias { public: // Constructs an empty `HandoverReadinessStatus` which represents ready state. constexpr HandoverReadinessStatus() - : StrongAlias(0) {} + : webrtc::StrongAlias(0) {} // Constructs status object that contains a single reason for not being // handover ready. constexpr explicit HandoverReadinessStatus(HandoverUnreadinessReason reason) - : StrongAlias( + : webrtc::StrongAlias( static_cast(reason)) {} // Convenience methods diff --git a/net/dcsctp/public/types.h b/net/dcsctp/public/types.h index d516daffe3..1f13255eb8 100644 --- a/net/dcsctp/public/types.h +++ b/net/dcsctp/public/types.h @@ -14,28 +14,28 @@ #include #include -#include "net/dcsctp/public/strong_alias.h" +#include "rtc_base/strong_alias.h" namespace dcsctp { // Stream Identifier -using StreamID = StrongAlias; +using StreamID = webrtc::StrongAlias; // Payload Protocol Identifier (PPID) -using PPID = StrongAlias; +using PPID = webrtc::StrongAlias; // Timeout Identifier -using TimeoutID = StrongAlias; +using TimeoutID = webrtc::StrongAlias; // Indicates if a message is allowed to be received out-of-order compared to // other messages on the same stream. -using IsUnordered = StrongAlias; +using IsUnordered = webrtc::StrongAlias; // Duration, as milliseconds. Overflows after 24 days. -class DurationMs : public StrongAlias { +class DurationMs : public webrtc::StrongAlias { public: constexpr explicit DurationMs(const UnderlyingType& v) - : StrongAlias(v) {} + : webrtc::StrongAlias(v) {} // Convenience methods for working with time. constexpr DurationMs& operator+=(DurationMs d) { @@ -72,10 +72,10 @@ constexpr inline int32_t operator/(DurationMs lhs, DurationMs rhs) { } // Represents time, in milliseconds since a client-defined epoch. -class TimeMs : public StrongAlias { +class TimeMs : public webrtc::StrongAlias { public: constexpr explicit TimeMs(const UnderlyingType& v) - : StrongAlias(v) {} + : webrtc::StrongAlias(v) {} // Convenience methods for working with time. constexpr TimeMs& operator+=(DurationMs d) { diff --git a/net/dcsctp/timer/BUILD.gn b/net/dcsctp/timer/BUILD.gn index 286bbe9cf5..856125c8c4 100644 --- a/net/dcsctp/timer/BUILD.gn +++ b/net/dcsctp/timer/BUILD.gn @@ -17,7 +17,6 @@ rtc_library("timer") { "../../../rtc_base/containers:flat_map", "../../../rtc_base/containers:flat_set", "../public:socket", - "../public:strong_alias", "../public:types", ] sources = [ @@ -41,7 +40,6 @@ rtc_library("task_queue_timeout") { "../../../rtc_base/task_utils:pending_task_safety_flag", "../../../rtc_base/task_utils:to_queued_task", "../public:socket", - "../public:strong_alias", "../public:types", ] sources = [ diff --git a/net/dcsctp/timer/timer.h b/net/dcsctp/timer/timer.h index 1d846b67c6..49dff34e4c 100644 --- a/net/dcsctp/timer/timer.h +++ b/net/dcsctp/timer/timer.h @@ -21,13 +21,13 @@ #include "absl/strings/string_view.h" #include "absl/types/optional.h" -#include "net/dcsctp/public/strong_alias.h" #include "net/dcsctp/public/timeout.h" +#include "rtc_base/strong_alias.h" namespace dcsctp { -using TimerID = StrongAlias; -using TimerGeneration = StrongAlias; +using TimerID = webrtc::StrongAlias; +using TimerGeneration = webrtc::StrongAlias; enum class TimerBackoffAlgorithm { // The base duration will be used for any restart. diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn index 6cc6be1212..9471d83517 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn @@ -136,6 +136,7 @@ rtc_library("rtc_base_approved") { "rate_statistics.h", "rate_tracker.cc", "rate_tracker.h", + "strong_alias.h", "swap_queue.h", "timestamp_aligner.cc", "timestamp_aligner.h", @@ -1371,6 +1372,7 @@ if (rtc_include_tests) { "string_utils_unittest.cc", "strings/string_builder_unittest.cc", "strings/string_format_unittest.cc", + "strong_alias_unittest.cc", "swap_queue_unittest.cc", "thread_annotations_unittest.cc", "time_utils_unittest.cc", @@ -1404,6 +1406,7 @@ if (rtc_include_tests) { ":socket_server", ":stringutils", ":testclient", + "containers:flat_map", ":threading", "../api:array_view", "../api:scoped_refptr", diff --git a/net/dcsctp/public/strong_alias.h b/rtc_base/strong_alias.h similarity index 93% rename from net/dcsctp/public/strong_alias.h rename to rtc_base/strong_alias.h index fd6302d2ed..3f45113f63 100644 --- a/net/dcsctp/public/strong_alias.h +++ b/rtc_base/strong_alias.h @@ -8,13 +8,13 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#ifndef NET_DCSCTP_PUBLIC_STRONG_ALIAS_H_ -#define NET_DCSCTP_PUBLIC_STRONG_ALIAS_H_ +#ifndef RTC_BASE_STRONG_ALIAS_H_ +#define RTC_BASE_STRONG_ALIAS_H_ #include #include -namespace dcsctp { +namespace webrtc { // This is a copy of // https://source.chromium.org/chromium/chromium/src/+/main:base/types/strong_alias.h @@ -71,6 +71,6 @@ class StrongAlias { UnderlyingType value_; }; -} // namespace dcsctp +} // namespace webrtc -#endif // NET_DCSCTP_PUBLIC_STRONG_ALIAS_H_ +#endif // RTC_BASE_STRONG_ALIAS_H_ diff --git a/net/dcsctp/public/strong_alias_test.cc b/rtc_base/strong_alias_unittest.cc similarity index 99% rename from net/dcsctp/public/strong_alias_test.cc rename to rtc_base/strong_alias_unittest.cc index 63aa60995c..a87bc4de37 100644 --- a/net/dcsctp/public/strong_alias_test.cc +++ b/rtc_base/strong_alias_unittest.cc @@ -8,7 +8,7 @@ * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ -#include "net/dcsctp/public/strong_alias.h" +#include "rtc_base/strong_alias.h" #include #include @@ -26,7 +26,7 @@ // but adapted to use WebRTC's includes, remove unit tests that test the ostream // operator (it's removed in this port) and other adaptations to pass lint. -namespace dcsctp { +namespace webrtc { namespace { // For test correctnenss, it's important that these getters return lexically @@ -359,4 +359,4 @@ TEST(StrongAliasTest, BooleansAreEvaluatedAsBooleans) { EXPECT_TRUE(*happy); EXPECT_FALSE(*sad); } -} // namespace dcsctp +} // namespace webrtc