#include "pc/data_channel_controller.h"
#include <cstdint>
#include <utility>
#include "absl/algorithm/container.h"
#include "absl/types/optional.h"
#include "api/peer_connection_interface.h"
#include "api/priority.h"
#include "api/rtc_error.h"
#include "pc/peer_connection_internal.h"
#include "pc/sctp_utils.h"
#include "rtc_base/logging.h"
namespace webrtc {
DataChannelController::~DataChannelController() { … }
bool DataChannelController::HasDataChannels() const { … }
bool DataChannelController::HasUsedDataChannels() const { … }
RTCError DataChannelController::SendData(
StreamId sid,
const SendDataParams& params,
const rtc::CopyOnWriteBuffer& payload) { … }
void DataChannelController::AddSctpDataStream(StreamId sid,
PriorityValue priority) { … }
void DataChannelController::RemoveSctpDataStream(StreamId sid) { … }
void DataChannelController::OnChannelStateChanged(
SctpDataChannel* channel,
DataChannelInterface::DataState state) { … }
size_t DataChannelController::buffered_amount(StreamId sid) const { … }
size_t DataChannelController::buffered_amount_low_threshold(
StreamId sid) const { … }
void DataChannelController::SetBufferedAmountLowThreshold(StreamId sid,
size_t bytes) { … }
void DataChannelController::OnDataReceived(
int channel_id,
DataMessageType type,
const rtc::CopyOnWriteBuffer& buffer) { … }
void DataChannelController::OnChannelClosing(int channel_id) { … }
void DataChannelController::OnChannelClosed(int channel_id) { … }
void DataChannelController::OnReadyToSend() { … }
void DataChannelController::OnTransportClosed(RTCError error) { … }
void DataChannelController::OnBufferedAmountLow(int channel_id) { … }
void DataChannelController::SetupDataChannelTransport_n(
DataChannelTransportInterface* transport) { … }
void DataChannelController::PrepareForShutdown() { … }
void DataChannelController::TeardownDataChannelTransport_n(RTCError error) { … }
void DataChannelController::OnTransportChanged(
DataChannelTransportInterface* new_data_channel_transport) { … }
std::vector<DataChannelStats> DataChannelController::GetDataChannelStats()
const { … }
bool DataChannelController::HandleOpenMessage_n(
int channel_id,
DataMessageType type,
const rtc::CopyOnWriteBuffer& buffer) { … }
void DataChannelController::OnDataChannelOpenMessage(
rtc::scoped_refptr<SctpDataChannel> channel,
bool ready_to_send) { … }
RTCError DataChannelController::ReserveOrAllocateSid(
absl::optional<StreamId>& sid,
absl::optional<rtc::SSLRole> fallback_ssl_role) { … }
RTCErrorOr<rtc::scoped_refptr<SctpDataChannel>>
DataChannelController::CreateDataChannel(const std::string& label,
InternalDataChannelInit& config) { … }
RTCErrorOr<rtc::scoped_refptr<DataChannelInterface>>
DataChannelController::InternalCreateDataChannelWithProxy(
const std::string& label,
const InternalDataChannelInit& config) { … }
void DataChannelController::AllocateSctpSids(rtc::SSLRole role) { … }
void DataChannelController::OnSctpDataChannelClosed(SctpDataChannel* channel) { … }
void DataChannelController::set_data_channel_transport(
DataChannelTransportInterface* transport) { … }
void DataChannelController::NotifyDataChannelsOfTransportCreated() { … }
rtc::Thread* DataChannelController::network_thread() const { … }
rtc::Thread* DataChannelController::signaling_thread() const { … }
}