The BaseChannel code is geared around RTP; the presence of media engines,
send and receive streams, SRTP, SDP directional attribute negotiation, etc.
It doesn't make sense to use it for SCTP as well. This separation should make
future work both on BaseChannel and the SCTP code paths easier.
SctpDataEngine now becomes SctpTransport, and is used by WebRtcSession
directly. cricket::DataChannel is also renamed, to RtpDataChannel, so it
doesn't get confused with webrtc::DataChannel any more.
Beyond just moving code around, some consequences of this CL:
- We'll now stop using the worker thread for SCTP. Packets will be
processed right on the network thread instead.
- The SDP directional attribute is ignored, as it's supposed to be.
BUG=None
Review-Url: https://codereview.webrtc.org/2564333002
Cr-Original-Commit-Position: refs/heads/master@{#15906}
Committed: 67b3bbe639
Review-Url: https://codereview.webrtc.org/2564333002
Cr-Commit-Position: refs/heads/master@{#15973}
66 lines
2.6 KiB
C++
66 lines
2.6 KiB
C++
/*
|
|
* Copyright 2016 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 WEBRTC_API_TEST_MOCK_WEBRTCSESSION_H_
|
|
#define WEBRTC_API_TEST_MOCK_WEBRTCSESSION_H_
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include "webrtc/api/webrtcsession.h"
|
|
#include "webrtc/media/sctp/sctptransportinternal.h"
|
|
#include "webrtc/test/gmock.h"
|
|
|
|
namespace webrtc {
|
|
|
|
class MockWebRtcSession : public webrtc::WebRtcSession {
|
|
public:
|
|
// TODO(nisse): Valid overrides commented out, because the gmock
|
|
// methods don't use any override declarations, and we want to avoid
|
|
// warnings from -Winconsistent-missing-override. See
|
|
// http://crbug.com/428099.
|
|
explicit MockWebRtcSession(MediaControllerInterface* media_controller)
|
|
: WebRtcSession(
|
|
media_controller,
|
|
rtc::Thread::Current(),
|
|
rtc::Thread::Current(),
|
|
rtc::Thread::Current(),
|
|
nullptr,
|
|
std::unique_ptr<cricket::TransportController>(
|
|
new cricket::TransportController(rtc::Thread::Current(),
|
|
rtc::Thread::Current(),
|
|
nullptr)),
|
|
std::unique_ptr<cricket::SctpTransportInternalFactory>()) {}
|
|
MOCK_METHOD0(voice_channel, cricket::VoiceChannel*());
|
|
MOCK_METHOD0(video_channel, cricket::VideoChannel*());
|
|
// Libjingle uses "local" for a outgoing track, and "remote" for a incoming
|
|
// track.
|
|
MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*));
|
|
MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*));
|
|
MOCK_METHOD1(GetStats,
|
|
std::unique_ptr<SessionStats>(const ChannelNamePairs&));
|
|
MOCK_METHOD2(GetLocalCertificate,
|
|
bool(const std::string& transport_name,
|
|
rtc::scoped_refptr<rtc::RTCCertificate>* certificate));
|
|
|
|
// Workaround for gmock's inability to cope with move-only return values.
|
|
std::unique_ptr<rtc::SSLCertificate> GetRemoteSSLCertificate(
|
|
const std::string& transport_name) /* override */ {
|
|
return std::unique_ptr<rtc::SSLCertificate>(
|
|
GetRemoteSSLCertificate_ReturnsRawPointer(transport_name));
|
|
}
|
|
MOCK_METHOD1(GetRemoteSSLCertificate_ReturnsRawPointer,
|
|
rtc::SSLCertificate*(const std::string& transport_name));
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // WEBRTC_API_TEST_MOCK_WEBRTCSESSION_H_
|