1 // Copyright 2015 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.
5 #ifndef ASH_NETWORKING_CONFIG_DELEGATE_H_
6 #define ASH_NETWORKING_CONFIG_DELEGATE_H_
10 #include "ash/ash_export.h"
11 #include "base/macros.h"
12 #include "base/memory/scoped_ptr.h"
16 // This delegate allows the UI code in ash, e.g. |NetworkStateListDetailedView|,
17 // to access the |NetworkingConfigService| in order to determine whether the
18 // configuration of a network identified by its |service_path| is controlled by
20 class NetworkingConfigDelegate
{
22 // A struct that provides information about the extension controlling the
23 // configuration of a network.
24 struct ASH_EXPORT ExtensionInfo
{
25 ExtensionInfo(const std::string
& id
, const std::string
& name
);
27 std::string extension_id
;
28 std::string extension_name
;
31 virtual ~NetworkingConfigDelegate() {}
33 // Returns information about the extension registered to control configuration
34 // of the network |service_path|. If no extension is registered, the
35 // scoped_ptr is empty.
36 virtual scoped_ptr
<const ExtensionInfo
> LookUpExtensionForNetwork(
37 const std::string
& service_path
) = 0;
40 DISALLOW_ASSIGN(NetworkingConfigDelegate
);
45 #endif // ASH_NETWORKING_CONFIG_DELEGATE_H_