#include "third_party/blink/renderer/platform/peerconnection/rtc_stats.h"
#include <cstddef>
#include <memory>
#include <set>
#include <string>
#include "base/check_op.h"
#include "base/containers/contains.h"
#include "base/numerics/safe_conversions.h"
#include "base/task/single_thread_task_runner.h"
#include "base/time/time.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/platform/peerconnection/rtc_scoped_refptr_cross_thread_copier.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
#include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
#include "third_party/webrtc/api/stats/rtc_stats.h"
#include "third_party/webrtc/api/stats/rtcstats_objects.h"
namespace blink {
namespace {
bool ShouldExposeStatsObject(const webrtc::RTCStats& stats) { … }
size_t CountExposedStatsObjects(
const scoped_refptr<const webrtc::RTCStatsReport>& stats_report) { … }
}
RTCStatsReportPlatform::RTCStatsReportPlatform(
const scoped_refptr<const webrtc::RTCStatsReport>& stats_report)
: … { … }
RTCStatsReportPlatform::~RTCStatsReportPlatform() { … }
std::unique_ptr<RTCStatsReportPlatform> RTCStatsReportPlatform::CopyHandle()
const { … }
const webrtc::RTCStats* RTCStatsReportPlatform::NextStats() { … }
size_t RTCStatsReportPlatform::Size() const { … }
rtc::scoped_refptr<webrtc::RTCStatsCollectorCallback>
CreateRTCStatsCollectorCallback(
scoped_refptr<base::SingleThreadTaskRunner> main_thread,
RTCStatsReportCallback callback) { … }
RTCStatsCollectorCallbackImpl::RTCStatsCollectorCallbackImpl(
scoped_refptr<base::SingleThreadTaskRunner> main_thread,
RTCStatsReportCallback callback)
: … { … }
RTCStatsCollectorCallbackImpl::~RTCStatsCollectorCallbackImpl() { … }
void RTCStatsCollectorCallbackImpl::OnStatsDelivered(
const rtc::scoped_refptr<const webrtc::RTCStatsReport>& report) { … }
void RTCStatsCollectorCallbackImpl::OnStatsDeliveredOnMainThread(
rtc::scoped_refptr<const webrtc::RTCStatsReport> report) { … }
}