From eb2c6415a9757e08da1a83e9b642bd8f95b544c7 Mon Sep 17 00:00:00 2001 From: Bjorn Mellem Date: Wed, 31 Oct 2018 15:25:32 -0700 Subject: [PATCH] Delete the default implementations of MediaTransportInterface methods. This change deletes the default implementations of state and data channel methods (SetMediaTransportStateCallback, SendData, CloseChannel, and SetDataSink). It adds stub implementations to LoopbackMediaTransport and FakeMediaTransport. Bug: webrtc:9719 Change-Id: I49b7780c055b552330546b460c2e79ce8df81833 Reviewed-on: https://webrtc-review.googlesource.com/c/108940 Commit-Queue: Bjorn Mellem Reviewed-by: Anton Sukhanov Reviewed-by: Seth Hampson Cr-Commit-Position: refs/heads/master@{#25457} --- api/media_transport_interface.cc | 13 ------------- api/media_transport_interface.h | 12 ++++-------- api/test/fake_media_transport.h | 13 +++++++++++++ api/test/loopback_media_transport.h | 15 +++++++++++++++ 4 files changed, 32 insertions(+), 21 deletions(-) diff --git a/api/media_transport_interface.cc b/api/media_transport_interface.cc index a97b7894cc..cb2fdabc5c 100644 --- a/api/media_transport_interface.cc +++ b/api/media_transport_interface.cc @@ -85,19 +85,6 @@ MediaTransportEncodedVideoFrame::MediaTransportEncodedVideoFrame( SendDataParams::SendDataParams() = default; -RTCError MediaTransportInterface::SendData( - int channel_id, - const SendDataParams& params, - const rtc::CopyOnWriteBuffer& buffer) { - RTC_NOTREACHED(); - return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); -} - -RTCError MediaTransportInterface::CloseChannel(int channel_id) { - RTC_NOTREACHED(); - return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); -} - RTCErrorOr> MediaTransportFactory::CreateMediaTransport( rtc::PacketTransportInternal* packet_transport, diff --git a/api/media_transport_interface.h b/api/media_transport_interface.h index e0e7453067..4eb55c4336 100644 --- a/api/media_transport_interface.h +++ b/api/media_transport_interface.h @@ -336,29 +336,25 @@ class MediaTransportInterface { // callback must be unregistered by setting it to nullptr. // A newly registered callback will be called with the current state. // Media transport does not invoke this callback concurrently. - // TODO(mellem): Make this pure virtual once all implementations support it. virtual void SetMediaTransportStateCallback( - MediaTransportStateCallback* callback) {} + MediaTransportStateCallback* callback) = 0; // 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 // fails. - // TODO(mellem): Make this pure virtual once all implementations support it. virtual RTCError SendData(int channel_id, const SendDataParams& params, - const rtc::CopyOnWriteBuffer& buffer); + const rtc::CopyOnWriteBuffer& buffer) = 0; // Closes |channel_id| gracefully. Returns an error if |channel_id| is not // open. Data sent after the closing procedure begins will not be // transmitted. The channel becomes closed after pending data is transmitted. - // TODO(mellem): Make this pure virtual once all implementations support it. - 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 // transport is destroyed, the sink must be unregistered by setting it to // nullptr. - // TODO(mellem): Make this pure virtual once all implementations support it. - virtual void SetDataSink(DataChannelSink* sink) {} + virtual void SetDataSink(DataChannelSink* sink) = 0; // TODO(sukhanov): RtcEventLogs. }; diff --git a/api/test/fake_media_transport.h b/api/test/fake_media_transport.h index 5609126941..1ef7c1f3e4 100644 --- a/api/test/fake_media_transport.h +++ b/api/test/fake_media_transport.h @@ -57,6 +57,19 @@ class FakeMediaTransport : public MediaTransportInterface { void SetTargetTransferRateObserver( webrtc::TargetTransferRateObserver* observer) override {} + void SetMediaTransportStateCallback( + MediaTransportStateCallback* callback) override {} + + RTCError SendData(int channel_id, + const SendDataParams& params, + const rtc::CopyOnWriteBuffer& buffer) override { + return RTCError::OK(); + } + + RTCError CloseChannel(int channel_id) override { return RTCError::OK(); } + + void SetDataSink(DataChannelSink* sink) override {} + private: const MediaTransportSettings settings_; }; diff --git a/api/test/loopback_media_transport.h b/api/test/loopback_media_transport.h index 3195f979ba..9ce50a7c8c 100644 --- a/api/test/loopback_media_transport.h +++ b/api/test/loopback_media_transport.h @@ -64,6 +64,21 @@ class MediaTransportPair { void SetTargetTransferRateObserver( webrtc::TargetTransferRateObserver* observer) override {} + void SetMediaTransportStateCallback( + MediaTransportStateCallback* callback) override {} + + RTCError SendData(int channel_id, + const SendDataParams& params, + const rtc::CopyOnWriteBuffer& buffer) override { + return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); + } + + RTCError CloseChannel(int channel_id) override { + return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); + } + + void SetDataSink(DataChannelSink* sink) override {} + private: void OnData(uint64_t channel_id, MediaTransportEncodedAudioFrame frame) { if (sink_) {