Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / remoting / test / fake_port_allocator.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_TEST_FAKE_PORT_ALLOCATOR_H_
6 #define REMOTING_TEST_FAKE_PORT_ALLOCATOR_H_
7
8 #include <set>
9
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "third_party/libjingle/source/talk/p2p/client/httpportallocator.h"
13
14 namespace remoting {
15
16 class FakeNetworkDispatcher;
17 class FakePacketSocketFactory;
18
19 class FakePortAllocator : public cricket::HttpPortAllocatorBase {
20  public:
21   static scoped_ptr<FakePortAllocator> Create(
22       scoped_refptr<FakeNetworkDispatcher> fake_network_dispatcher);
23
24   virtual ~FakePortAllocator();
25
26   FakePacketSocketFactory* socket_factory() { return socket_factory_.get(); }
27
28   // cricket::BasicPortAllocator overrides.
29   virtual cricket::PortAllocatorSession* CreateSessionInternal(
30       const std::string& content_name,
31       int component,
32       const std::string& ice_username_fragment,
33       const std::string& ice_password) OVERRIDE;
34
35  private:
36   FakePortAllocator(scoped_ptr<rtc::NetworkManager> network_manager,
37                     scoped_ptr<FakePacketSocketFactory> socket_factory);
38
39   scoped_ptr<rtc::NetworkManager> network_manager_;
40   scoped_ptr<FakePacketSocketFactory> socket_factory_;
41
42   DISALLOW_COPY_AND_ASSIGN(FakePortAllocator);
43 };
44
45 }  // namespace remoting
46
47 #endif  // REMOTING_TEST_FAKE_PORT_ALLOCATOR_H_