blob: c0e0f58bdae37d2cbbfcb5193fe68ed34195813f [file] [log] [blame]
// 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_