Add ability to add peer to the stats poller during the test
Bug: b/213863770 Change-Id: I65e0338806f808329725fce50d778738724cf13d Pair: mbonadei@webrtc.org Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251693 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36000}
This commit is contained in:
parent
f7a1937e70
commit
987b671017
@ -498,6 +498,8 @@ if (!build_with_chromium) {
|
||||
"../../../api:rtc_stats_api",
|
||||
"../../../api:stats_observer_interface",
|
||||
"../../../rtc_base:logging",
|
||||
"../../../rtc_base:rtc_base_approved",
|
||||
"../../../rtc_base/synchronization:mutex",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
#include <utility>
|
||||
|
||||
#include "rtc_base/logging.h"
|
||||
#include "rtc_base/synchronization/mutex.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace webrtc_pc_e2e {
|
||||
@ -29,18 +30,28 @@ void InternalStatsObserver::OnStatsDelivered(
|
||||
}
|
||||
|
||||
StatsPoller::StatsPoller(std::vector<StatsObserverInterface*> observers,
|
||||
std::map<std::string, TestPeer*> peers) {
|
||||
std::map<std::string, TestPeer*> peers)
|
||||
: observers_(observers) {
|
||||
webrtc::MutexLock lock(&mutex_);
|
||||
for (auto& peer : peers) {
|
||||
pollers_.push_back(rtc::make_ref_counted<InternalStatsObserver>(
|
||||
peer.first, peer.second, observers));
|
||||
peer.first, peer.second, observers_));
|
||||
}
|
||||
}
|
||||
|
||||
void StatsPoller::PollStatsAndNotifyObservers() {
|
||||
webrtc::MutexLock lock(&mutex_);
|
||||
for (auto& poller : pollers_) {
|
||||
poller->PollStats();
|
||||
}
|
||||
}
|
||||
|
||||
void StatsPoller::RegisterParticipantInCall(absl::string_view peer_name,
|
||||
TestPeer* peer) {
|
||||
webrtc::MutexLock lock(&mutex_);
|
||||
pollers_.push_back(rtc::make_ref_counted<InternalStatsObserver>(
|
||||
peer_name, peer, observers_));
|
||||
}
|
||||
|
||||
} // namespace webrtc_pc_e2e
|
||||
} // namespace webrtc
|
||||
|
||||
@ -19,6 +19,8 @@
|
||||
#include "api/peer_connection_interface.h"
|
||||
#include "api/stats/rtc_stats_collector_callback.h"
|
||||
#include "api/test/stats_observer_interface.h"
|
||||
#include "rtc_base/synchronization/mutex.h"
|
||||
#include "rtc_base/thread_annotations.h"
|
||||
#include "test/pc/e2e/test_peer.h"
|
||||
|
||||
namespace webrtc {
|
||||
@ -28,12 +30,10 @@ namespace webrtc_pc_e2e {
|
||||
// objects subscribed.
|
||||
class InternalStatsObserver : public RTCStatsCollectorCallback {
|
||||
public:
|
||||
InternalStatsObserver(std::string pc_label,
|
||||
InternalStatsObserver(absl::string_view pc_label,
|
||||
TestPeer* peer,
|
||||
std::vector<StatsObserverInterface*> observers)
|
||||
: pc_label_(std::move(pc_label)),
|
||||
peer_(peer),
|
||||
observers_(std::move(observers)) {}
|
||||
: pc_label_(pc_label), peer_(peer), observers_(std::move(observers)) {}
|
||||
|
||||
void PollStats();
|
||||
|
||||
@ -56,8 +56,13 @@ class StatsPoller {
|
||||
|
||||
void PollStatsAndNotifyObservers();
|
||||
|
||||
void RegisterParticipantInCall(absl::string_view peer_name, TestPeer* peer);
|
||||
|
||||
private:
|
||||
std::vector<rtc::scoped_refptr<InternalStatsObserver>> pollers_;
|
||||
const std::vector<StatsObserverInterface*> observers_;
|
||||
webrtc::Mutex mutex_;
|
||||
std::vector<rtc::scoped_refptr<InternalStatsObserver>> pollers_
|
||||
RTC_GUARDED_BY(mutex_);
|
||||
};
|
||||
|
||||
} // namespace webrtc_pc_e2e
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user