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
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"
26 class DictionaryValue
;
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
{
51 virtual ~CrosNetworkWatcher() {}
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
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
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
,
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
,
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_