dcsctp: move HandoverReadinessStatus::ToString definition to build target public:socket
This allows build targets that need only HandoverReadinessStatus
to depend only on public:socket, and not on socket:dcsctp_socket.
Bug: webrtc:13154
Change-Id: I29f41910cdb5baed96b57fd7284b96fc50a56ba4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232331
Reviewed-by: Victor Boivie <boivie@webrtc.org>
Commit-Queue: Sergey Sukhanov <sergeysu@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35037}
diff --git a/net/dcsctp/public/BUILD.gn b/net/dcsctp/public/BUILD.gn
index 8fb521c..74136ac 100644
--- a/net/dcsctp/public/BUILD.gn
+++ b/net/dcsctp/public/BUILD.gn
@@ -35,6 +35,7 @@
"../../../rtc_base:rtc_base_approved",
]
sources = [
+ "dcsctp_handover_state.cc",
"dcsctp_handover_state.h",
"dcsctp_socket.h",
"packet_observer.h",
diff --git a/net/dcsctp/public/dcsctp_handover_state.cc b/net/dcsctp/public/dcsctp_handover_state.cc
new file mode 100644
index 0000000..6a1bd06
--- /dev/null
+++ b/net/dcsctp/public/dcsctp_handover_state.cc
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2021 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * 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/dcsctp_handover_state.h"
+
+#include <string>
+
+#include "absl/strings/string_view.h"
+
+namespace dcsctp {
+namespace {
+constexpr absl::string_view HandoverUnreadinessReasonToString(
+ HandoverUnreadinessReason reason) {
+ switch (reason) {
+ case HandoverUnreadinessReason::kWrongConnectionState:
+ return "WRONG_CONNECTION_STATE";
+ case HandoverUnreadinessReason::kSendQueueNotEmpty:
+ return "SEND_QUEUE_NOT_EMPTY";
+ case HandoverUnreadinessReason::kDataTrackerTsnBlocksPending:
+ return "DATA_TRACKER_TSN_BLOCKS_PENDING";
+ case HandoverUnreadinessReason::kReassemblyQueueDeliveredTSNsGap:
+ return "REASSEMBLY_QUEUE_DELIVERED_TSN_GAP";
+ case HandoverUnreadinessReason::kStreamResetDeferred:
+ return "STREAM_RESET_DEFERRED";
+ case HandoverUnreadinessReason::kOrderedStreamHasUnassembledChunks:
+ return "ORDERED_STREAM_HAS_UNASSEMBLED_CHUNKS";
+ case HandoverUnreadinessReason::kUnorderedStreamHasUnassembledChunks:
+ return "UNORDERED_STREAM_HAS_UNASSEMBLED_CHUNKS";
+ case HandoverUnreadinessReason::kRetransmissionQueueOutstandingData:
+ return "RETRANSMISSION_QUEUE_OUTSTANDING_DATA";
+ case HandoverUnreadinessReason::kRetransmissionQueueFastRecovery:
+ return "RETRANSMISSION_QUEUE_FAST_RECOVERY";
+ case HandoverUnreadinessReason::kRetransmissionQueueNotEmpty:
+ return "RETRANSMISSION_QUEUE_NOT_EMPTY";
+ case HandoverUnreadinessReason::kPendingStreamReset:
+ return "PENDING_STREAM_RESET";
+ case HandoverUnreadinessReason::kPendingStreamResetRequest:
+ return "PENDING_STREAM_RESET_REQUEST";
+ }
+}
+} // namespace
+
+std::string HandoverReadinessStatus::ToString() const {
+ std::string result;
+ for (uint32_t bit = 1;
+ bit <= static_cast<uint32_t>(HandoverUnreadinessReason::kMax);
+ bit *= 2) {
+ auto flag = static_cast<HandoverUnreadinessReason>(bit);
+ if (Contains(flag)) {
+ if (!result.empty()) {
+ result.append(",");
+ }
+ absl::string_view s = HandoverUnreadinessReasonToString(flag);
+ result.append(s.data(), s.size());
+ }
+ }
+ if (result.empty()) {
+ result = "READY";
+ }
+ return result;
+}
+} // namespace dcsctp
diff --git a/net/dcsctp/socket/dcsctp_socket.cc b/net/dcsctp/socket/dcsctp_socket.cc
index afc30f6..bfe248c 100644
--- a/net/dcsctp/socket/dcsctp_socket.cc
+++ b/net/dcsctp/socket/dcsctp_socket.cc
@@ -138,58 +138,8 @@
return TieTag(static_cast<uint64_t>(tie_tag_upper) << 32 |
static_cast<uint64_t>(tie_tag_lower));
}
-
-constexpr absl::string_view HandoverUnreadinessReasonToString(
- HandoverUnreadinessReason reason) {
- switch (reason) {
- case HandoverUnreadinessReason::kWrongConnectionState:
- return "WRONG_CONNECTION_STATE";
- case HandoverUnreadinessReason::kSendQueueNotEmpty:
- return "SEND_QUEUE_NOT_EMPTY";
- case HandoverUnreadinessReason::kDataTrackerTsnBlocksPending:
- return "DATA_TRACKER_TSN_BLOCKS_PENDING";
- case HandoverUnreadinessReason::kReassemblyQueueDeliveredTSNsGap:
- return "REASSEMBLY_QUEUE_DELIVERED_TSN_GAP";
- case HandoverUnreadinessReason::kStreamResetDeferred:
- return "STREAM_RESET_DEFERRED";
- case HandoverUnreadinessReason::kOrderedStreamHasUnassembledChunks:
- return "ORDERED_STREAM_HAS_UNASSEMBLED_CHUNKS";
- case HandoverUnreadinessReason::kUnorderedStreamHasUnassembledChunks:
- return "UNORDERED_STREAM_HAS_UNASSEMBLED_CHUNKS";
- case HandoverUnreadinessReason::kRetransmissionQueueOutstandingData:
- return "RETRANSMISSION_QUEUE_OUTSTANDING_DATA";
- case HandoverUnreadinessReason::kRetransmissionQueueFastRecovery:
- return "RETRANSMISSION_QUEUE_FAST_RECOVERY";
- case HandoverUnreadinessReason::kRetransmissionQueueNotEmpty:
- return "RETRANSMISSION_QUEUE_NOT_EMPTY";
- case HandoverUnreadinessReason::kPendingStreamReset:
- return "PENDING_STREAM_RESET";
- case HandoverUnreadinessReason::kPendingStreamResetRequest:
- return "PENDING_STREAM_RESET_REQUEST";
- }
-}
} // namespace
-std::string HandoverReadinessStatus::ToString() const {
- std::string result;
- for (uint32_t bit = 1;
- bit <= static_cast<uint32_t>(HandoverUnreadinessReason::kMax);
- bit *= 2) {
- auto flag = static_cast<HandoverUnreadinessReason>(bit);
- if (Contains(flag)) {
- if (!result.empty()) {
- result.append(",");
- }
- absl::string_view s = HandoverUnreadinessReasonToString(flag);
- result.append(s.data(), s.size());
- }
- }
- if (result.empty()) {
- result = "READY";
- }
- return result;
-}
-
DcSctpSocket::DcSctpSocket(absl::string_view log_prefix,
DcSctpSocketCallbacks& callbacks,
std::unique_ptr<PacketObserver> packet_observer,