| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | // NetworkListManager interface is introduced to enable unit test on | 
 | // IpcNetworkManager such that it doesn't depend on implementation of | 
 | // P2PSocketDispatcher. | 
 |  | 
 | #ifndef CONTENT_RENDERER_P2P_NETWORK_LIST_MANAGER_H_ | 
 | #define CONTENT_RENDERER_P2P_NETWORK_LIST_MANAGER_H_ | 
 |  | 
 | namespace content { | 
 |  | 
 | class NetworkListObserver; | 
 |  | 
 | class CONTENT_EXPORT NetworkListManager { | 
 |  public: | 
 |   // Add a new network list observer. Each observer is called | 
 |   // immidiately after it is registered and then later whenever | 
 |   // network configuration changes. Can be called on any thread. The | 
 |   // observer is always called on the thread it was added. | 
 |   virtual void AddNetworkListObserver( | 
 |       NetworkListObserver* network_list_observer) = 0; | 
 |  | 
 |   // Removes network list observer. Must be called on the thread on | 
 |   // which the observer was added. | 
 |   virtual void RemoveNetworkListObserver( | 
 |       NetworkListObserver* network_list_observer) = 0; | 
 |  | 
 |  protected: | 
 |   // Marked as protected to prevent explicit deletion, as | 
 |   // P2PSocketDispatcher is not owned by IpcNetworkManager. | 
 |   virtual ~NetworkListManager() {} | 
 | }; | 
 |  | 
 | }  // namespace content | 
 |  | 
 | #endif  // CONTENT_RENDERER_P2P_NETWORK_LIST_MANAGER_H_ |