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}
This commit is contained in:
Sergey Sukhanov 2021-09-20 13:31:21 +02:00 committed by WebRTC LUCI CQ
parent 057f90b7cb
commit d92f8a86b3
3 changed files with 69 additions and 50 deletions

View File

@ -35,6 +35,7 @@ rtc_source_set("socket") {
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
] ]
sources = [ sources = [
"dcsctp_handover_state.cc",
"dcsctp_handover_state.h", "dcsctp_handover_state.h",
"dcsctp_socket.h", "dcsctp_socket.h",
"packet_observer.h", "packet_observer.h",

View File

@ -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

View File

@ -138,58 +138,8 @@ TieTag MakeTieTag(DcSctpSocketCallbacks& cb) {
return TieTag(static_cast<uint64_t>(tie_tag_upper) << 32 | return TieTag(static_cast<uint64_t>(tie_tag_upper) << 32 |
static_cast<uint64_t>(tie_tag_lower)); 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 } // 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, DcSctpSocket::DcSctpSocket(absl::string_view log_prefix,
DcSctpSocketCallbacks& callbacks, DcSctpSocketCallbacks& callbacks,
std::unique_ptr<PacketObserver> packet_observer, std::unique_ptr<PacketObserver> packet_observer,