Remove virtual inheritance from RTCStatsCollector
Bug: none Change-Id: I5c3d93f3cc64c588c2f8e750c70c51c991736023 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215961 Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33814}
This commit is contained in:

committed by
Commit Bot

parent
0c3b9098aa
commit
e6de5ae2d6
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class RTCStatsCollectorCallback : public virtual rtc::RefCountInterface {
|
class RTCStatsCollectorCallback : public rtc::RefCountInterface {
|
||||||
public:
|
public:
|
||||||
~RTCStatsCollectorCallback() override = default;
|
~RTCStatsCollectorCallback() override = default;
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ class RtpReceiverInternal;
|
|||||||
// Stats are gathered on the signaling, worker and network threads
|
// Stats are gathered on the signaling, worker and network threads
|
||||||
// asynchronously. The callback is invoked on the signaling thread. Resulting
|
// asynchronously. The callback is invoked on the signaling thread. Resulting
|
||||||
// reports are cached for |cache_lifetime_| ms.
|
// reports are cached for |cache_lifetime_| ms.
|
||||||
class RTCStatsCollector : public virtual rtc::RefCountInterface,
|
class RTCStatsCollector : public rtc::RefCountInterface,
|
||||||
public sigslot::has_slots<> {
|
public sigslot::has_slots<> {
|
||||||
public:
|
public:
|
||||||
static rtc::scoped_refptr<RTCStatsCollector> Create(
|
static rtc::scoped_refptr<RTCStatsCollector> Create(
|
||||||
|
@ -3215,11 +3215,20 @@ class FakeRTCStatsCollector : public RTCStatsCollector,
|
|||||||
static rtc::scoped_refptr<FakeRTCStatsCollector> Create(
|
static rtc::scoped_refptr<FakeRTCStatsCollector> Create(
|
||||||
PeerConnectionInternal* pc,
|
PeerConnectionInternal* pc,
|
||||||
int64_t cache_lifetime_us) {
|
int64_t cache_lifetime_us) {
|
||||||
return rtc::scoped_refptr<FakeRTCStatsCollector>(
|
return new rtc::RefCountedObject<FakeRTCStatsCollector>(pc,
|
||||||
new rtc::RefCountedObject<FakeRTCStatsCollector>(pc,
|
cache_lifetime_us);
|
||||||
cache_lifetime_us));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Since FakeRTCStatsCollector inherits twice from RefCountInterface, once via
|
||||||
|
// RTCStatsCollector and once via RTCStatsCollectorCallback, scoped_refptr
|
||||||
|
// will get confused about which AddRef()/Release() methods to call.
|
||||||
|
// So to remove all doubt, we declare them here again in the class that we
|
||||||
|
// give to scoped_refptr.
|
||||||
|
// Satisfying the implementation of these methods and associating them with a
|
||||||
|
// reference counter, will be done by RefCountedObject.
|
||||||
|
virtual void AddRef() const = 0;
|
||||||
|
virtual rtc::RefCountReleaseStatus Release() const = 0;
|
||||||
|
|
||||||
// RTCStatsCollectorCallback implementation.
|
// RTCStatsCollectorCallback implementation.
|
||||||
void OnStatsDelivered(
|
void OnStatsDelivered(
|
||||||
const rtc::scoped_refptr<const RTCStatsReport>& report) override {
|
const rtc::scoped_refptr<const RTCStatsReport>& report) override {
|
||||||
|
Reference in New Issue
Block a user