Change DataChannelTransportInterface/Sink methods to pure virtual.
These methods are implemented everywhere, so they no longer need to provide default implementations. Bug: webrtc:9719 Change-Id: Idf67a78010a55f545d882793d0d6edbccfae525b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154002 Commit-Queue: Bjorn Mellem <mellem@webrtc.org> Commit-Queue: Seth Hampson <shampson@webrtc.org> Reviewed-by: Seth Hampson <shampson@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29262}
This commit is contained in:

committed by
Commit Bot

parent
d702231268
commit
88db835278
@ -56,8 +56,6 @@ class FakeDatagramTransport : public DatagramTransportInterface {
|
|||||||
|
|
||||||
void SetDatagramSink(DatagramSinkInterface* sink) override {}
|
void SetDatagramSink(DatagramSinkInterface* sink) override {}
|
||||||
|
|
||||||
bool IsReadyToSend() const override { return false; }
|
|
||||||
|
|
||||||
std::string GetTransportParameters() const override {
|
std::string GetTransportParameters() const override {
|
||||||
if (settings_.remote_transport_parameters) {
|
if (settings_.remote_transport_parameters) {
|
||||||
return *settings_.remote_transport_parameters;
|
return *settings_.remote_transport_parameters;
|
||||||
@ -65,6 +63,24 @@ class FakeDatagramTransport : public DatagramTransportInterface {
|
|||||||
return transport_parameters_;
|
return transport_parameters_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RTCError OpenChannel(int channel_id) override {
|
||||||
|
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
RTCError SendData(int channel_id,
|
||||||
|
const SendDataParams& params,
|
||||||
|
const rtc::CopyOnWriteBuffer& buffer) override {
|
||||||
|
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
RTCError CloseChannel(int channel_id) override {
|
||||||
|
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetDataSink(DataChannelSink* /*sink*/) override {}
|
||||||
|
|
||||||
|
bool IsReadyToSend() const override { return false; }
|
||||||
|
|
||||||
rtc::PacketTransportInternal* packet_transport() { return packet_transport_; }
|
rtc::PacketTransportInternal* packet_transport() { return packet_transport_; }
|
||||||
|
|
||||||
void set_state(webrtc::MediaTransportState state) {
|
void set_state(webrtc::MediaTransportState state) {
|
||||||
|
@ -72,7 +72,6 @@ rtc_source_set("datagram_transport_interface") {
|
|||||||
visibility = [ "*" ]
|
visibility = [ "*" ]
|
||||||
sources = [
|
sources = [
|
||||||
"congestion_control_interface.h",
|
"congestion_control_interface.h",
|
||||||
"data_channel_transport_interface.cc",
|
|
||||||
"data_channel_transport_interface.h",
|
"data_channel_transport_interface.h",
|
||||||
"datagram_transport_interface.h",
|
"datagram_transport_interface.h",
|
||||||
]
|
]
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
/* Copyright 2019 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 "api/transport/data_channel_transport_interface.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
// TODO(mellem): Delete these default implementations and make these functions
|
|
||||||
// pure virtual as soon as downstream implementations override them.
|
|
||||||
|
|
||||||
RTCError DataChannelTransportInterface::OpenChannel(int channel_id) {
|
|
||||||
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);
|
|
||||||
}
|
|
||||||
|
|
||||||
RTCError DataChannelTransportInterface::SendData(
|
|
||||||
int channel_id,
|
|
||||||
const SendDataParams& params,
|
|
||||||
const rtc::CopyOnWriteBuffer& buffer) {
|
|
||||||
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);
|
|
||||||
}
|
|
||||||
|
|
||||||
RTCError DataChannelTransportInterface::CloseChannel(int channel_id) {
|
|
||||||
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DataChannelTransportInterface::SetDataSink(DataChannelSink* /*sink*/) {}
|
|
||||||
|
|
||||||
bool DataChannelTransportInterface::IsReadyToSend() const {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DataChannelSink::OnReadyToSend() {}
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
@ -83,8 +83,7 @@ class DataChannelSink {
|
|||||||
// registered if the transport is ready at that time. This callback may be
|
// registered if the transport is ready at that time. This callback may be
|
||||||
// invoked again following send errors (eg. due to the transport being
|
// invoked again following send errors (eg. due to the transport being
|
||||||
// temporarily blocked or unavailable).
|
// temporarily blocked or unavailable).
|
||||||
// TODO(mellem): Make pure virtual when downstream sinks override this.
|
virtual void OnReadyToSend() = 0;
|
||||||
virtual void OnReadyToSend();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Transport for data channels.
|
// Transport for data channels.
|
||||||
@ -94,30 +93,29 @@ class DataChannelTransportInterface {
|
|||||||
|
|
||||||
// Opens a data |channel_id| for sending. May return an error if the
|
// Opens a data |channel_id| for sending. May return an error if the
|
||||||
// specified |channel_id| is unusable. Must be called before |SendData|.
|
// specified |channel_id| is unusable. Must be called before |SendData|.
|
||||||
virtual RTCError OpenChannel(int channel_id);
|
virtual RTCError OpenChannel(int channel_id) = 0;
|
||||||
|
|
||||||
// Sends a data buffer to the remote endpoint using the given send parameters.
|
// Sends a data buffer to the remote endpoint using the given send parameters.
|
||||||
// |buffer| may not be larger than 256 KiB. Returns an error if the send
|
// |buffer| may not be larger than 256 KiB. Returns an error if the send
|
||||||
// fails.
|
// fails.
|
||||||
virtual RTCError SendData(int channel_id,
|
virtual RTCError SendData(int channel_id,
|
||||||
const SendDataParams& params,
|
const SendDataParams& params,
|
||||||
const rtc::CopyOnWriteBuffer& buffer);
|
const rtc::CopyOnWriteBuffer& buffer) = 0;
|
||||||
|
|
||||||
// Closes |channel_id| gracefully. Returns an error if |channel_id| is not
|
// Closes |channel_id| gracefully. Returns an error if |channel_id| is not
|
||||||
// open. Data sent after the closing procedure begins will not be
|
// open. Data sent after the closing procedure begins will not be
|
||||||
// transmitted. The channel becomes closed after pending data is transmitted.
|
// transmitted. The channel becomes closed after pending data is transmitted.
|
||||||
virtual RTCError CloseChannel(int channel_id);
|
virtual RTCError CloseChannel(int channel_id) = 0;
|
||||||
|
|
||||||
// Sets a sink for data messages and channel state callbacks. Before media
|
// Sets a sink for data messages and channel state callbacks. Before media
|
||||||
// transport is destroyed, the sink must be unregistered by setting it to
|
// transport is destroyed, the sink must be unregistered by setting it to
|
||||||
// nullptr.
|
// nullptr.
|
||||||
virtual void SetDataSink(DataChannelSink* sink);
|
virtual void SetDataSink(DataChannelSink* sink) = 0;
|
||||||
|
|
||||||
// Returns whether this data channel transport is ready to send.
|
// Returns whether this data channel transport is ready to send.
|
||||||
// Note: the default implementation always returns false (as it assumes no one
|
// Note: the default implementation always returns false (as it assumes no one
|
||||||
// has implemented the interface). This default implementation is temporary.
|
// has implemented the interface). This default implementation is temporary.
|
||||||
// TODO(mellem): Change this to pure virtual.
|
virtual bool IsReadyToSend() const = 0;
|
||||||
virtual bool IsReadyToSend() const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
Reference in New Issue
Block a user