cc: Added inline to Tile::IsReadyToDraw
[chromium-blink-merge.git] / chromeos / network / cros_network_functions.h
blobe787a3fd31b819243047da263159cfc56e9da7a1
1 // Copyright (c) 2012 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 CHROMEOS_NETWORK_CROS_NETWORK_FUNCTIONS_H_
6 #define CHROMEOS_NETWORK_CROS_NETWORK_FUNCTIONS_H_
8 // This header is introduced to make it easy to switch from chromeos_network.cc
9 // to Chrome's own DBus code. crosbug.com/16557
11 // All calls to functions in chromeos_network.h should be made through
12 // functions provided by this header.
14 // DO NOT INCLUDE THIS HEADER DIRECTLY, THESE FUNCTIONS ARE BEING DEPRECATED.
15 // Contact stevenjb@chromium.org and/or see crbug.com/154852
17 #include <vector>
19 #include "base/callback.h"
20 #include "chromeos/chromeos_export.h"
21 #include "chromeos/network/network_ip_config.h"
22 #include "chromeos/network/network_util.h"
24 namespace base {
26 class DictionaryValue;
27 class Value;
29 } // namespace base
31 namespace chromeos {
33 // Callback to be called when receiving a SMS.
34 typedef base::Callback<void(const std::string& modem_device_path,
35 const SMS& message)> MonitorSMSCallback;
37 // Callback for asynchronous getters.
38 typedef base::Callback<void(
39 const std::string& path,
40 const base::DictionaryValue* properties)> NetworkPropertiesCallback;
42 // Callback for network properties watchers.
43 typedef base::Callback<void(
44 const std::string& path,
45 const std::string& key,
46 const base::Value& value)> NetworkPropertiesWatcherCallback;
48 // Base class of signal watchers.
49 class CHROMEOS_EXPORT CrosNetworkWatcher {
50 public:
51 virtual ~CrosNetworkWatcher() {}
53 protected:
54 CrosNetworkWatcher() {}
57 // Activates the cellular modem specified by |service_path| with carrier
58 // specified by |carrier|.
59 // |carrier| is NULL or an empty string, this will activate with the currently
60 // active carrier.
61 // Returns false on failure and true on success.
62 CHROMEOS_EXPORT bool CrosActivateCellularModem(const std::string& service_path,
63 const std::string& carrier);
65 // Completes the activation for the cellular modem specified by |service_path|.
66 CHROMEOS_EXPORT void CrosCompleteCellularActivation(
67 const std::string& service_path);
69 // Sets a property of a service to the provided value.
70 // Success is indicated by the receipt of a matching PropertyChanged signal.
71 CHROMEOS_EXPORT void CrosSetNetworkServiceProperty(
72 const std::string& service_path,
73 const std::string& property,
74 const base::Value& value);
76 // Clears a property of a service.
77 CHROMEOS_EXPORT void CrosClearNetworkServiceProperty(
78 const std::string& service_path,
79 const std::string& property);
81 // Sets a property of a device to the provided value.
82 // Success is indicated by the receipt of a matching PropertyChanged signal.
83 CHROMEOS_EXPORT void CrosSetNetworkDeviceProperty(
84 const std::string& device_path,
85 const std::string& property,
86 const base::Value& value);
88 // Sets a property of an ip config to the provided value.
89 // Success is indicated by the receipt of a matching PropertyChanged signal.
90 CHROMEOS_EXPORT void CrosSetNetworkIPConfigProperty(
91 const std::string& ipconfig_path,
92 const std::string& property,
93 const base::Value& value);
95 // Sets a property of a manager to the provided value.
96 // Success is indicated by the receipt of a matching PropertyChanged signal.
97 CHROMEOS_EXPORT void CrosSetNetworkManagerProperty(const std::string& property,
98 const base::Value& value);
100 // Deletes a remembered service from a profile.
101 CHROMEOS_EXPORT void CrosDeleteServiceFromProfile(
102 const std::string& profile_path,
103 const std::string& service_path);
105 // Sets up monitoring of the PropertyChanged signal on the shill manager.
106 // The provided |callback| will be called whenever a manager property changes.
107 CHROMEOS_EXPORT CrosNetworkWatcher* CrosMonitorNetworkManagerProperties(
108 const NetworkPropertiesWatcherCallback& callback);
110 // Similar to MonitorNetworkManagerProperties for a specified network service.
111 CHROMEOS_EXPORT CrosNetworkWatcher* CrosMonitorNetworkServiceProperties(
112 const NetworkPropertiesWatcherCallback& callback,
113 const std::string& service_path);
115 // Similar to MonitorNetworkManagerProperties for a specified network device.
116 CHROMEOS_EXPORT CrosNetworkWatcher* CrosMonitorNetworkDeviceProperties(
117 const NetworkPropertiesWatcherCallback& callback,
118 const std::string& device_path);
120 // Similar to MonitorNetworkManagerProperties for a specified network device.
121 CHROMEOS_EXPORT CrosNetworkWatcher* CrosMonitorSMS(
122 const std::string& modem_device_path,
123 MonitorSMSCallback callback);
125 // Connects to the service with the |service_path|.
126 // Service parameters such as authentication must already be configured.
127 // Note, a successful invocation of the callback only indicates that
128 // the connection process has started. You will have to query the
129 // connection state to determine if the connection was established
130 // successfully.
131 CHROMEOS_EXPORT void CrosRequestNetworkServiceConnect(
132 const std::string& service_path,
133 const NetworkOperationCallback& callback);
135 // Retrieves the latest info for the manager.
136 CHROMEOS_EXPORT void CrosRequestNetworkManagerProperties(
137 const NetworkPropertiesCallback& callback);
139 // Retrieves the latest info for a service.
140 CHROMEOS_EXPORT void CrosRequestNetworkServiceProperties(
141 const std::string& service_path,
142 const NetworkPropertiesCallback& callback);
144 // Retrieves the latest info for a particular device.
145 CHROMEOS_EXPORT void CrosRequestNetworkDeviceProperties(
146 const std::string& device_path,
147 const NetworkPropertiesCallback& callback);
149 // Retrieves the list of remembered services for a profile.
150 CHROMEOS_EXPORT void CrosRequestNetworkProfileProperties(
151 const std::string& profile_path,
152 const NetworkPropertiesCallback& callback);
154 // Retrieves the latest info for a profile service entry.
155 CHROMEOS_EXPORT void CrosRequestNetworkProfileEntryProperties(
156 const std::string& profile_path,
157 const std::string& profile_entry_path,
158 const NetworkPropertiesCallback& callback);
160 // Requests a wifi service not in the network list (i.e. hidden).
161 CHROMEOS_EXPORT void CrosRequestHiddenWifiNetworkProperties(
162 const std::string& ssid,
163 const std::string& security,
164 const NetworkPropertiesCallback& callback);
166 // Requests a new VPN service.
167 CHROMEOS_EXPORT void CrosRequestVirtualNetworkProperties(
168 const std::string& service_name,
169 const std::string& server_hostname,
170 const std::string& provider_type,
171 const NetworkPropertiesCallback& callback);
173 // Disconnects from network service asynchronously.
174 CHROMEOS_EXPORT void CrosRequestNetworkServiceDisconnect(
175 const std::string& service_path);
177 // Removes an exisiting network service (e.g. after forgetting a VPN).
178 CHROMEOS_EXPORT void CrosRequestRemoveNetworkService(
179 const std::string& service_path);
181 // Requests a scan of services of |type|.
182 // |type| should be is a string recognized by shill's Manager API.
183 CHROMEOS_EXPORT void CrosRequestNetworkScan(const std::string& network_type);
185 // Requests enabling or disabling a device.
186 CHROMEOS_EXPORT void CrosRequestNetworkDeviceEnable(
187 const std::string& network_type,
188 bool enable);
190 // Enables or disables PIN protection for a SIM card.
191 CHROMEOS_EXPORT void CrosRequestRequirePin(
192 const std::string& device_path,
193 const std::string& pin,
194 bool enable,
195 const NetworkOperationCallback& callback);
197 // Enters a PIN to unlock a SIM card.
198 CHROMEOS_EXPORT void CrosRequestEnterPin(
199 const std::string& device_path,
200 const std::string& pin,
201 const NetworkOperationCallback& callback);
203 // Enters a PUK to unlock a SIM card whose PIN has been entered
204 // incorrectly too many times. A new |pin| must be supplied
205 // along with the |unblock_code| (PUK).
206 CHROMEOS_EXPORT void CrosRequestUnblockPin(
207 const std::string& device_path,
208 const std::string& unblock_code,
209 const std::string& pin,
210 const NetworkOperationCallback& callback);
212 // Changes the PIN used to unlock a SIM card.
213 CHROMEOS_EXPORT void CrosRequestChangePin(
214 const std::string& device_path,
215 const std::string& old_pin,
216 const std::string& new_pin,
217 const NetworkOperationCallback& callback);
219 // Proposes to trigger a scan transaction. For cellular networks scan result
220 // is set in the property Cellular.FoundNetworks.
221 CHROMEOS_EXPORT void CrosProposeScan(const std::string& device_path);
223 // Initiates registration on the network specified by network_id, which is in
224 // the form MCCMNC. If the network ID is the empty string, then switch back to
225 // automatic registration mode before initiating registration.
226 CHROMEOS_EXPORT void CrosRequestCellularRegister(
227 const std::string& device_path,
228 const std::string& network_id,
229 const NetworkOperationCallback& callback);
231 // Gets a list of all the NetworkIPConfigs using a given device path,
232 // and returns the information via callback.
233 CHROMEOS_EXPORT void CrosListIPConfigs(
234 const std::string& device_path,
235 const NetworkGetIPConfigsCallback& callback);
237 // Refreshes the IP config |ipconfig_path| to pick up changes in
238 // configuration, and renew the DHCP lease, if any.
239 CHROMEOS_EXPORT void CrosRequestIPConfigRefresh(
240 const std::string& ipconfig_path);
242 // Configures the network service specified by |properties|.
243 CHROMEOS_EXPORT void CrosConfigureService(
244 const base::DictionaryValue& properties);
246 // Changes the active cellular carrier.
247 CHROMEOS_EXPORT void CrosSetCarrier(const std::string& device_path,
248 const std::string& carrier,
249 const NetworkOperationCallback& callback);
251 } // namespace chromeos
253 #endif // CHROMEOS_NETWORK_CROS_NETWORK_FUNCTIONS_H_