mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00

One problem with the existing Send() method is that it has a return value that is problematic for a fully async implementation. A second problem with Send() is that the return value is bool and not RTCError (webrtc:13289), which is why OnSendComplete() uses RTCError. Also, start deprecating `bool Send()` in favor of `void SendAsync()` and adding `network_safety_` flag for posting async operations to the network thread. This flag also takes over from the `connected_to_transport_` which can now be removed. Bug: webrtc:11547, webrtc:13289 Change-Id: I87bbc7e9b964a52684bdfe0e6ebc5230be254e8b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299760 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39817}
66 lines
2.5 KiB
C++
66 lines
2.5 KiB
C++
/*
|
|
* Copyright 2020 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.
|
|
*/
|
|
|
|
#ifndef API_TEST_MOCK_DATA_CHANNEL_H_
|
|
#define API_TEST_MOCK_DATA_CHANNEL_H_
|
|
|
|
#include <string>
|
|
|
|
#include "api/data_channel_interface.h"
|
|
#include "test/gmock.h"
|
|
|
|
namespace webrtc {
|
|
|
|
class MockDataChannelInterface
|
|
: public rtc::RefCountedObject<webrtc::DataChannelInterface> {
|
|
public:
|
|
static rtc::scoped_refptr<MockDataChannelInterface> Create() {
|
|
return rtc::scoped_refptr<MockDataChannelInterface>(
|
|
new MockDataChannelInterface());
|
|
}
|
|
|
|
MOCK_METHOD(void,
|
|
RegisterObserver,
|
|
(DataChannelObserver * observer),
|
|
(override));
|
|
MOCK_METHOD(void, UnregisterObserver, (), (override));
|
|
MOCK_METHOD(std::string, label, (), (const, override));
|
|
MOCK_METHOD(bool, reliable, (), (const, override));
|
|
MOCK_METHOD(bool, ordered, (), (const, override));
|
|
MOCK_METHOD(uint16_t, maxRetransmitTime, (), (const, override));
|
|
MOCK_METHOD(uint16_t, maxRetransmits, (), (const, override));
|
|
MOCK_METHOD(absl::optional<int>, maxRetransmitsOpt, (), (const, override));
|
|
MOCK_METHOD(absl::optional<int>, maxPacketLifeTime, (), (const, override));
|
|
MOCK_METHOD(std::string, protocol, (), (const, override));
|
|
MOCK_METHOD(bool, negotiated, (), (const, override));
|
|
MOCK_METHOD(int, id, (), (const, override));
|
|
MOCK_METHOD(Priority, priority, (), (const, override));
|
|
MOCK_METHOD(DataState, state, (), (const, override));
|
|
MOCK_METHOD(RTCError, error, (), (const, override));
|
|
MOCK_METHOD(uint32_t, messages_sent, (), (const, override));
|
|
MOCK_METHOD(uint64_t, bytes_sent, (), (const, override));
|
|
MOCK_METHOD(uint32_t, messages_received, (), (const, override));
|
|
MOCK_METHOD(uint64_t, bytes_received, (), (const, override));
|
|
MOCK_METHOD(uint64_t, buffered_amount, (), (const, override));
|
|
MOCK_METHOD(void, Close, (), (override));
|
|
MOCK_METHOD(bool, Send, (const DataBuffer& buffer), (override));
|
|
MOCK_METHOD(void,
|
|
SendAsync,
|
|
(DataBuffer buffer,
|
|
absl::AnyInvocable<void(RTCError) &&> on_complete),
|
|
(override));
|
|
|
|
protected:
|
|
MockDataChannelInterface() = default;
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // API_TEST_MOCK_DATA_CHANNEL_H_
|