Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / renderer / p2p / network_list_manager.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 // NetworkListManager interface is introduced to enable unit test on
6 // IpcNetworkManager such that it doesn't depend on implementation of
7 // P2PSocketDispatcher.
8
9 #ifndef CONTENT_RENDERER_P2P_NETWORK_LIST_MANAGER_H_
10 #define CONTENT_RENDERER_P2P_NETWORK_LIST_MANAGER_H_
11
12 namespace content {
13
14 class NetworkListObserver;
15
16 class CONTENT_EXPORT NetworkListManager {
17  public:
18   // Add a new network list observer. Each observer is called
19   // immidiately after it is registered and then later whenever
20   // network configuration changes. Can be called on any thread. The
21   // observer is always called on the thread it was added.
22   virtual void AddNetworkListObserver(
23       NetworkListObserver* network_list_observer) = 0;
24
25   // Removes network list observer. Must be called on the thread on
26   // which the observer was added.
27   virtual void RemoveNetworkListObserver(
28       NetworkListObserver* network_list_observer) = 0;
29
30  protected:
31   // Marked as protected to prevent explicit deletion, as
32   // P2PSocketDispatcher is not owned by IpcNetworkManager.
33   virtual ~NetworkListManager() {}
34 };
35
36 }  // namespace content
37
38 #endif  // CONTENT_RENDERER_P2P_NETWORK_LIST_MANAGER_H_