| Index: remoting/protocol/port_allocator.h
|
| diff --git a/remoting/protocol/port_allocator_base.h b/remoting/protocol/port_allocator.h
|
| similarity index 50%
|
| rename from remoting/protocol/port_allocator_base.h
|
| rename to remoting/protocol/port_allocator.h
|
| index 1ad080f20b32dd21644d23e9e907d4174b5a9b85..048cc58c42e49fb46fe2527c6634512b27f57524 100644
|
| --- a/remoting/protocol/port_allocator_base.h
|
| +++ b/remoting/protocol/port_allocator.h
|
| @@ -2,13 +2,14 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef REMOTING_PROTOCOL_PORT_ALLOCATOR_BASE_H_
|
| -#define REMOTING_PROTOCOL_PORT_ALLOCATOR_BASE_H_
|
| +#ifndef REMOTING_PROTOCOL_PORT_ALLOCATOR_H_
|
| +#define REMOTING_PROTOCOL_PORT_ALLOCATOR_H_
|
|
|
| #include <string>
|
| #include <vector>
|
|
|
| #include "base/memory/weak_ptr.h"
|
| +#include "remoting/base/url_request.h"
|
| #include "third_party/webrtc/p2p/client/basicportallocator.h"
|
|
|
| namespace remoting {
|
| @@ -16,27 +17,22 @@ namespace protocol {
|
|
|
| class TransportContext;
|
|
|
| -class PortAllocatorBase : public cricket::BasicPortAllocator {
|
| +class PortAllocator : public cricket::BasicPortAllocator {
|
| public:
|
| - // The number of HTTP requests we should attempt before giving up.
|
| - static const int kNumRetries;
|
| -
|
| - PortAllocatorBase(scoped_ptr<rtc::NetworkManager> network_manager,
|
| - scoped_ptr<rtc::PacketSocketFactory> socket_factory,
|
| - scoped_refptr<TransportContext> transport_context);
|
| - ~PortAllocatorBase() override;
|
| + PortAllocator(scoped_ptr<rtc::NetworkManager> network_manager,
|
| + scoped_ptr<rtc::PacketSocketFactory> socket_factory,
|
| + scoped_refptr<TransportContext> transport_context);
|
| + ~PortAllocator() override;
|
|
|
| scoped_refptr<TransportContext> transport_context() {
|
| return transport_context_;
|
| }
|
|
|
| - // CreateSession is defined in cricket::BasicPortAllocator but is
|
| - // redefined here as pure virtual.
|
| cricket::PortAllocatorSession* CreateSessionInternal(
|
| const std::string& content_name,
|
| int component,
|
| const std::string& ice_ufrag,
|
| - const std::string& ice_pwd) override = 0;
|
| + const std::string& ice_pwd) override;
|
|
|
| private:
|
| scoped_ptr<rtc::NetworkManager> network_manager_;
|
| @@ -44,30 +40,25 @@ class PortAllocatorBase : public cricket::BasicPortAllocator {
|
| scoped_refptr<TransportContext> transport_context_;
|
| };
|
|
|
| -class PortAllocatorSessionBase : public cricket::BasicPortAllocatorSession {
|
| +class PortAllocatorSession : public cricket::BasicPortAllocatorSession {
|
| public:
|
| - PortAllocatorSessionBase(PortAllocatorBase* allocator,
|
| - const std::string& content_name,
|
| - int component,
|
| - const std::string& ice_ufrag,
|
| - const std::string& ice_pwd);
|
| - ~PortAllocatorSessionBase() override;
|
| -
|
| - virtual void SendSessionRequest(const std::string& host) = 0;
|
| - void ReceiveSessionResponse(const std::string& response);
|
| -
|
| - protected:
|
| - std::string GetSessionRequestUrl();
|
| -
|
| + PortAllocatorSession(PortAllocator* allocator,
|
| + const std::string& content_name,
|
| + int component,
|
| + const std::string& ice_ufrag,
|
| + const std::string& ice_pwd);
|
| + ~PortAllocatorSession() override;
|
| +
|
| +private:
|
| void GetPortConfigurations() override;
|
| void OnJingleInfo(std::vector<rtc::SocketAddress> stun_hosts,
|
| std::vector<std::string> relay_hosts,
|
| std::string relay_token);
|
| void TryCreateRelaySession();
|
| + void OnSessionRequestResult(const UrlRequest::Result& result);
|
|
|
| const std::string& relay_token() const { return relay_token_; }
|
|
|
| - private:
|
| scoped_refptr<TransportContext> transport_context_;
|
|
|
| std::vector<rtc::SocketAddress> stun_hosts_;
|
| @@ -76,10 +67,12 @@ class PortAllocatorSessionBase : public cricket::BasicPortAllocatorSession {
|
|
|
| int attempts_ = 0;
|
|
|
| - base::WeakPtrFactory<PortAllocatorSessionBase> weak_factory_;
|
| + std::set<scoped_ptr<UrlRequest>> url_requests_;
|
| +
|
| + base::WeakPtrFactory<PortAllocatorSession> weak_factory_;
|
| };
|
|
|
| } // namespace protocol
|
| } // namespace remoting
|
|
|
| -#endif // REMOTING_PROTOCOL_PORT_ALLOCATOR_BASE_H_
|
| +#endif // REMOTING_PROTOCOL_PORT_ALLOCATOR_H_
|
|
|