Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / networking_private / networking_private_delegate.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 CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_
7
8 #include <string>
9
10 #include "base/callback.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/values.h"
13
14 namespace content {
15 class BrowserContext;
16 }
17
18 namespace extensions {
19
20 namespace api {
21 namespace networking_private {
22
23 struct VerificationProperties;
24
25 }  // networking_private
26 }  // api
27
28 // Base class for platform dependent networkingPrivate API implementations.
29 // All inputs and results for this class use ONC values. See
30 // networking_private.json for descriptions of the expected inputs and results.
31 class NetworkingPrivateDelegate {
32  public:
33   typedef base::Callback<void(scoped_ptr<base::DictionaryValue>)>
34       DictionaryCallback;
35   typedef base::Callback<void()> VoidCallback;
36   typedef base::Callback<void(bool)> BoolCallback;
37   typedef base::Callback<void(const std::string&)> StringCallback;
38   typedef base::Callback<void(scoped_ptr<base::ListValue>)> NetworkListCallback;
39   typedef base::Callback<void(const std::string&)> FailureCallback;
40   typedef api::networking_private::VerificationProperties
41       VerificationProperties;
42
43   static NetworkingPrivateDelegate* GetForBrowserContext(
44       content::BrowserContext* browser_context);
45
46   // Asynchronous methods
47   virtual void GetProperties(const std::string& guid,
48                              const DictionaryCallback& success_callback,
49                              const FailureCallback& failure_callback) = 0;
50   virtual void GetManagedProperties(
51       const std::string& guid,
52       const DictionaryCallback& success_callback,
53       const FailureCallback& failure_callback) = 0;
54   virtual void GetState(const std::string& guid,
55                         const DictionaryCallback& success_callback,
56                         const FailureCallback& failure_callback) = 0;
57   virtual void SetProperties(const std::string& guid,
58                              scoped_ptr<base::DictionaryValue> properties,
59                              const VoidCallback& success_callback,
60                              const FailureCallback& failure_callback) = 0;
61   virtual void CreateNetwork(bool shared,
62                              scoped_ptr<base::DictionaryValue> properties,
63                              const StringCallback& success_callback,
64                              const FailureCallback& failure_callback) = 0;
65   virtual void GetNetworks(const std::string& network_type,
66                            bool configured_only,
67                            bool visible_only,
68                            int limit,
69                            const NetworkListCallback& success_callback,
70                            const FailureCallback& failure_callback) = 0;
71   virtual void StartConnect(const std::string& guid,
72                             const VoidCallback& success_callback,
73                             const FailureCallback& failure_callback) = 0;
74   virtual void StartDisconnect(const std::string& guid,
75                                const VoidCallback& success_callback,
76                                const FailureCallback& failure_callback) = 0;
77   virtual void VerifyDestination(
78       const VerificationProperties& verification_properties,
79       const BoolCallback& success_callback,
80       const FailureCallback& failure_callback) = 0;
81   virtual void VerifyAndEncryptCredentials(
82       const std::string& guid,
83       const VerificationProperties& verification_properties,
84       const StringCallback& success_callback,
85       const FailureCallback& failure_callback) = 0;
86   virtual void VerifyAndEncryptData(
87       const VerificationProperties& verification_properties,
88       const std::string& data,
89       const StringCallback& success_callback,
90       const FailureCallback& failure_callback) = 0;
91   virtual void SetWifiTDLSEnabledState(
92       const std::string& ip_or_mac_address,
93       bool enabled,
94       const StringCallback& success_callback,
95       const FailureCallback& failure_callback) = 0;
96   virtual void GetWifiTDLSStatus(
97       const std::string& ip_or_mac_address,
98       const StringCallback& success_callback,
99       const FailureCallback& failure_callback) = 0;
100   virtual void GetCaptivePortalStatus(
101       const std::string& guid,
102       const StringCallback& success_callback,
103       const FailureCallback& failure_callback) = 0;
104
105   // Synchronous methods
106
107   // Returns a list of ONC type strings.
108   virtual scoped_ptr<base::ListValue> GetEnabledNetworkTypes() = 0;
109
110   // Returns true if the ONC network type |type| is enabled.
111   virtual bool EnableNetworkType(const std::string& type) = 0;
112
113   // Returns true if the ONC network type |type| is disabled.
114   virtual bool DisableNetworkType(const std::string& type) = 0;
115
116   // Returns true if a scan was requested. It may take many seconds for a scan
117   // to complete. The scan may or may not trigger API events when complete.
118   virtual bool RequestScan() = 0;
119
120  protected:
121   virtual ~NetworkingPrivateDelegate() {}
122 };
123
124 }  // namespace extensions
125
126 #endif  // CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_