1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/peerconnection/mock_data_channel_impl.h"
#include "base/notreached.h"
namespace blink {
MockDataChannel::MockDataChannel(const std::string& label,
const webrtc::DataChannelInit* config)
: label_(label),
reliable_(config->reliable),
state_(webrtc::DataChannelInterface::kConnecting),
config_(*config),
observer_(nullptr) {}
MockDataChannel::~MockDataChannel() {}
void MockDataChannel::RegisterObserver(webrtc::DataChannelObserver* observer) {
observer_ = observer;
}
void MockDataChannel::UnregisterObserver() {
observer_ = nullptr;
}
std::string MockDataChannel::label() const {
return label_;
}
bool MockDataChannel::reliable() const {
return reliable_;
}
bool MockDataChannel::ordered() const {
return config_.ordered;
}
std::string MockDataChannel::protocol() const {
return config_.protocol;
}
bool MockDataChannel::negotiated() const {
return config_.negotiated;
}
int MockDataChannel::id() const {
NOTIMPLEMENTED();
return 0;
}
MockDataChannel::DataState MockDataChannel::state() const {
return state_;
}
uint32_t MockDataChannel::messages_sent() const {
NOTIMPLEMENTED();
return 0;
}
uint64_t MockDataChannel::bytes_sent() const {
NOTIMPLEMENTED();
return 0;
}
uint32_t MockDataChannel::messages_received() const {
NOTIMPLEMENTED();
return 0;
}
uint64_t MockDataChannel::bytes_received() const {
NOTIMPLEMENTED();
return 0;
}
// For testing.
void MockDataChannel::changeState(DataState state) {
state_ = state;
if (observer_)
observer_->OnStateChange();
}
uint64_t MockDataChannel::buffered_amount() const {
NOTIMPLEMENTED();
return 0;
}
void MockDataChannel::Close() {
changeState(webrtc::DataChannelInterface::kClosing);
}
bool MockDataChannel::Send(const webrtc::DataBuffer& buffer) {
return state_ == webrtc::DataChannelInterface::kOpen;
}
void MockDataChannel::SendAsync(
webrtc::DataBuffer buffer,
absl::AnyInvocable<void(webrtc::RTCError) &&> on_complete) {
if (!on_complete) {
return;
}
std::move(on_complete)(
state_ == webrtc::DataChannelInterface::kOpen
? webrtc::RTCError::OK()
: webrtc::RTCError(webrtc::RTCErrorType::INVALID_STATE));
}
} // namespace blink
|