Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1380)

Unified Diff: webrtc/p2p/base/fakeportallocator.h

Issue 1956453003: Relanding: Implement RTCConfiguration.iceCandidatePoolSize. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing uninitialized variable (noticed by msan) Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/p2p/base/candidate.h ('k') | webrtc/p2p/base/p2ptransportchannel.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/p2p/base/fakeportallocator.h
diff --git a/webrtc/p2p/client/fakeportallocator.h b/webrtc/p2p/base/fakeportallocator.h
similarity index 65%
rename from webrtc/p2p/client/fakeportallocator.h
rename to webrtc/p2p/base/fakeportallocator.h
index 76357a5ffa045f875cb19555eaf7becaa0d02739..b125dfd80e90b3bc23b91a5a8b12850665ffc049 100644
--- a/webrtc/p2p/client/fakeportallocator.h
+++ b/webrtc/p2p/base/fakeportallocator.h
@@ -8,11 +8,12 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#ifndef WEBRTC_P2P_CLIENT_FAKEPORTALLOCATOR_H_
-#define WEBRTC_P2P_CLIENT_FAKEPORTALLOCATOR_H_
+#ifndef WEBRTC_P2P_BASE_FAKEPORTALLOCATOR_H_
+#define WEBRTC_P2P_BASE_FAKEPORTALLOCATOR_H_
#include <memory>
#include <string>
+#include <vector>
#include "webrtc/p2p/base/basicpacketsocketfactory.h"
#include "webrtc/p2p/base/portallocator.h"
@@ -84,24 +85,31 @@ class TestUDPPort : public UDPPort {
class FakePortAllocatorSession : public PortAllocatorSession {
public:
- FakePortAllocatorSession(rtc::Thread* worker_thread,
+ FakePortAllocatorSession(PortAllocator* allocator,
+ rtc::Thread* worker_thread,
rtc::PacketSocketFactory* factory,
const std::string& content_name,
int component,
const std::string& ice_ufrag,
const std::string& ice_pwd)
- : PortAllocatorSession(content_name, component, ice_ufrag, ice_pwd,
- cricket::kDefaultPortAllocatorFlags),
+ : PortAllocatorSession(content_name,
+ component,
+ ice_ufrag,
+ ice_pwd,
+ allocator->flags()),
worker_thread_(worker_thread),
factory_(factory),
- network_("network", "unittest",
- rtc::IPAddress(INADDR_LOOPBACK), 8),
- port_(), running_(false),
- port_config_count_(0) {
+ network_("network", "unittest", rtc::IPAddress(INADDR_LOOPBACK), 8),
+ port_(),
+ running_(false),
+ port_config_count_(0),
+ stun_servers_(allocator->stun_servers()),
+ turn_servers_(allocator->turn_servers()),
+ candidate_filter_(allocator->candidate_filter()) {
network_.AddIP(rtc::IPAddress(INADDR_LOOPBACK));
}
- virtual void StartGettingPorts() {
+ void StartGettingPorts() override {
if (!port_) {
port_.reset(TestUDPPort::Create(worker_thread_, factory_, &network_,
network_.GetBestIP(), 0, 0, username(),
@@ -112,25 +120,56 @@ class FakePortAllocatorSession : public PortAllocatorSession {
running_ = true;
}
- virtual void StopGettingPorts() { running_ = false; }
- virtual bool IsGettingPorts() { return running_; }
- virtual void ClearGettingPorts() {}
+ void StopGettingPorts() override { running_ = false; }
+ bool IsGettingPorts() override { return running_; }
+ void ClearGettingPorts() override {}
+ std::vector<PortInterface*> ReadyPorts() const override {
+ return ready_ports_;
+ }
+ std::vector<Candidate> ReadyCandidates() const override {
+ return candidates_;
+ }
+ bool CandidatesAllocationDone() const override { return allocation_done_; }
int port_config_count() { return port_config_count_; }
+ const ServerAddresses& stun_servers() const { return stun_servers_; }
+
+ const std::vector<RelayServerConfig>& turn_servers() const {
+ return turn_servers_;
+ }
+
+ uint32_t candidate_filter() const { return candidate_filter_; }
+
void AddPort(cricket::Port* port) {
- port->set_component(component_);
+ port->set_component(component());
port->set_generation(generation());
- port->SignalPortComplete.connect(
- this, &FakePortAllocatorSession::OnPortComplete);
+ port->SignalPortComplete.connect(this,
+ &FakePortAllocatorSession::OnPortComplete);
port->PrepareAddress();
+ ready_ports_.push_back(port);
SignalPortReady(this, port);
}
void OnPortComplete(cricket::Port* port) {
- SignalCandidatesReady(this, port->Candidates());
+ const std::vector<Candidate>& candidates = port->Candidates();
+ candidates_.insert(candidates_.end(), candidates.begin(), candidates.end());
+ SignalCandidatesReady(this, candidates);
+
+ allocation_done_ = true;
SignalCandidatesAllocationDone(this);
}
+ int transport_info_update_count() const {
+ return transport_info_update_count_;
+ }
+
+ protected:
+ void UpdateIceParametersInternal() override {
+ // Since this class is a fake and this method only is overridden for tests,
+ // we don't need to actually update the transport info.
+ ++transport_info_update_count_;
+ }
+
private:
rtc::Thread* worker_thread_;
rtc::PacketSocketFactory* factory_;
@@ -138,6 +177,13 @@ class FakePortAllocatorSession : public PortAllocatorSession {
std::unique_ptr<cricket::Port> port_;
bool running_;
int port_config_count_;
+ std::vector<Candidate> candidates_;
+ std::vector<PortInterface*> ready_ports_;
+ bool allocation_done_ = false;
+ ServerAddresses stun_servers_;
+ std::vector<RelayServerConfig> turn_servers_;
+ uint32_t candidate_filter_;
+ int transport_info_update_count_ = 0;
};
class FakePortAllocator : public cricket::PortAllocator {
@@ -146,44 +192,29 @@ class FakePortAllocator : public cricket::PortAllocator {
rtc::PacketSocketFactory* factory)
: worker_thread_(worker_thread), factory_(factory) {
if (factory_ == NULL) {
- owned_factory_.reset(new rtc::BasicPacketSocketFactory(
- worker_thread_));
+ owned_factory_.reset(new rtc::BasicPacketSocketFactory(worker_thread_));
factory_ = owned_factory_.get();
}
}
- void SetIceServers(
- const ServerAddresses& stun_servers,
- const std::vector<RelayServerConfig>& turn_servers) override {
- stun_servers_ = stun_servers;
- turn_servers_ = turn_servers;
- }
-
void SetNetworkIgnoreMask(int network_ignore_mask) override {}
- const ServerAddresses& stun_servers() const { return stun_servers_; }
-
- const std::vector<RelayServerConfig>& turn_servers() const {
- return turn_servers_;
- }
-
- virtual cricket::PortAllocatorSession* CreateSessionInternal(
+ cricket::PortAllocatorSession* CreateSessionInternal(
const std::string& content_name,
int component,
const std::string& ice_ufrag,
const std::string& ice_pwd) override {
- return new FakePortAllocatorSession(
- worker_thread_, factory_, content_name, component, ice_ufrag, ice_pwd);
+ return new FakePortAllocatorSession(this, worker_thread_, factory_,
+ content_name, component, ice_ufrag,
+ ice_pwd);
}
private:
rtc::Thread* worker_thread_;
rtc::PacketSocketFactory* factory_;
std::unique_ptr<rtc::BasicPacketSocketFactory> owned_factory_;
- ServerAddresses stun_servers_;
- std::vector<RelayServerConfig> turn_servers_;
};
} // namespace cricket
-#endif // WEBRTC_P2P_CLIENT_FAKEPORTALLOCATOR_H_
+#endif // WEBRTC_P2P_BASE_FAKEPORTALLOCATOR_H_
« no previous file with comments | « webrtc/p2p/base/candidate.h ('k') | webrtc/p2p/base/p2ptransportchannel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698