Index: webrtc/p2p/base/fakeportallocator.h |
diff --git a/webrtc/p2p/client/fakeportallocator.h b/webrtc/p2p/base/fakeportallocator.h |
similarity index 69% |
rename from webrtc/p2p/client/fakeportallocator.h |
rename to webrtc/p2p/base/fakeportallocator.h |
index d16c9b6d5c19388431df413580f7c178f15db603..34ef9e4bf588355abeed5e752e9c1f6352abf3e7 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" |
@@ -86,22 +87,29 @@ class FakePortAllocatorSession : public PortAllocatorSession { |
public: |
FakePortAllocatorSession(rtc::Thread* worker_thread, |
rtc::PacketSocketFactory* factory, |
+ const ServerAddresses& stun_servers, |
+ const std::vector<RelayServerConfig>& turn_servers, |
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, |
+ : PortAllocatorSession(content_name, |
+ component, |
+ ice_ufrag, |
+ ice_pwd, |
cricket::kDefaultPortAllocatorFlags), |
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_(stun_servers), |
+ turn_servers_(turn_servers) { |
Taylor Brandstetter
2016/05/05 19:56:22
I started passing the servers into the fake sessio
|
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,52 @@ 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_; |
pthatcher1
2016/05/05 21:51:24
ready_ports()?
Taylor Brandstetter
2016/05/06 03:53:34
An underscore name implies it's a trivial method.
|
+ } |
+ std::vector<Candidate> ReadyCandidates() const override { |
+ return candidates_; |
pthatcher1
2016/05/05 21:51:24
candidates()?
Taylor Brandstetter
2016/05/06 03:53:34
See above. I called it ReadyCandidates so that we
|
+ } |
+ bool CandidatesAllocationDone() const override { return allocation_done_; } |
pthatcher1
2016/05/05 21:51:24
allocation_done()?
Taylor Brandstetter
2016/05/06 03:53:34
See above.
|
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_; |
+ } |
+ |
void AddPort(cricket::Port* port) { |
- port->set_component(component_); |
+ port->set_component(component()); |
port->set_generation(0); |
- 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_updates() const { return transport_info_updates_; } |
pthatcher1
2016/05/05 21:51:24
transport_info_update_count_?
Taylor Brandstetter
2016/05/06 03:53:34
Done.
|
+ |
+ protected: |
+ void UpdateTransportInformationInternal() 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_updates_; |
+ } |
+ |
private: |
rtc::Thread* worker_thread_; |
rtc::PacketSocketFactory* factory_; |
@@ -138,6 +173,12 @@ 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_; |
+ int transport_info_updates_ = 0; |
}; |
class FakePortAllocator : public cricket::PortAllocator { |
@@ -146,44 +187,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); |
+ worker_thread_, factory_, stun_servers(), turn_servers(), 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_ |