Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / remoting / host / chromium_port_allocator_factory.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef REMOTING_HOST_CHROMIUM_PORT_ALLOCATOR_FACTORY_H_
6 #define REMOTING_HOST_CHROMIUM_PORT_ALLOCATOR_FACTORY_H_
7
8 #include "base/memory/ref_counted.h"
9 #include "third_party/libjingle/source/talk/app/webrtc/peerconnectioninterface.h"
10
11 namespace net {
12 class URLRequestContextGetter;
13 }  // namespace net
14
15 namespace remoting {
16
17 namespace protocol {
18 struct NetworkSettings;
19 }  // namespace protocol
20
21 class ChromiumPortAllocatorFactory
22     : public webrtc::PortAllocatorFactoryInterface {
23  public:
24   static rtc::scoped_refptr<webrtc::PortAllocatorFactoryInterface> Create(
25       const protocol::NetworkSettings& network_settings,
26       scoped_refptr<net::URLRequestContextGetter> url_request_context_getter);
27
28   // webrtc::PortAllocatorFactoryInterface implementation.
29   virtual cricket::PortAllocator* CreatePortAllocator(
30       const std::vector<StunConfiguration>& stun_servers,
31       const std::vector<TurnConfiguration>& turn_configurations) OVERRIDE;
32
33  protected:
34   ChromiumPortAllocatorFactory(
35       const protocol::NetworkSettings& network_settings,
36       scoped_refptr<net::URLRequestContextGetter> url_request_context_getter);
37   virtual ~ChromiumPortAllocatorFactory();
38
39  private:
40   const protocol::NetworkSettings& network_settings_;
41   scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
42
43   DISALLOW_COPY_AND_ASSIGN(ChromiumPortAllocatorFactory);
44 };
45
46 }  // namespace remoting
47
48 #endif  // REMOTING_HOST_CHROMIUM_PORT_ALLOCATOR_FACTORY_H_
49