Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(841)

Side by Side Diff: chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_api.h

Issue 420663003: Extensions: Move bluetooth APIs to extensions/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix android, gn Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_ API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_ API_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energ y_event_router.h"
10 #include "extensions/browser/browser_context_keyed_api_factory.h"
11 #include "extensions/browser/extension_function.h"
12 #include "extensions/browser/extension_function_histogram_value.h"
13
14 namespace extensions {
15
16 class BluetoothLowEnergyEventRouter;
17
18 // The profile-keyed service that manages the bluetoothLowEnergy extension API.
19 class BluetoothLowEnergyAPI : public BrowserContextKeyedAPI {
20 public:
21 static BrowserContextKeyedAPIFactory<BluetoothLowEnergyAPI>*
22 GetFactoryInstance();
23
24 // Convenience method to get the BluetoothLowEnergy API for a browser context.
25 static BluetoothLowEnergyAPI* Get(content::BrowserContext* context);
26
27 explicit BluetoothLowEnergyAPI(content::BrowserContext* context);
28 virtual ~BluetoothLowEnergyAPI();
29
30 // KeyedService implementation..
31 virtual void Shutdown() OVERRIDE;
32
33 BluetoothLowEnergyEventRouter* event_router() const {
34 return event_router_.get();
35 }
36
37 // BrowserContextKeyedAPI implementation.
38 static const char* service_name() { return "BluetoothLowEnergyAPI"; }
39 static const bool kServiceRedirectedInIncognito = true;
40 static const bool kServiceIsNULLWhileTesting = true;
41
42 private:
43 friend class BrowserContextKeyedAPIFactory<BluetoothLowEnergyAPI>;
44
45 scoped_ptr<BluetoothLowEnergyEventRouter> event_router_;
46
47 content::BrowserContext* browser_context_;
48
49 DISALLOW_COPY_AND_ASSIGN(BluetoothLowEnergyAPI);
50 };
51
52 namespace api {
53
54 // Base class for bluetoothLowEnergy API functions. This class handles some of
55 // the common logic involved in all API functions, such as checking for
56 // platform support and returning the correct error.
57 class BluetoothLowEnergyExtensionFunction : public AsyncExtensionFunction {
58 public:
59 BluetoothLowEnergyExtensionFunction();
60
61 protected:
62 virtual ~BluetoothLowEnergyExtensionFunction();
63
64 // ExtensionFunction override.
65 virtual bool RunAsync() OVERRIDE;
66
67 // Implemented by individual bluetoothLowEnergy extension functions to perform
68 // the body of the function. This invoked asynchonously after RunAsync after
69 // the BluetoothLowEnergyEventRouter has obtained a handle on the
70 // BluetoothAdapter.
71 virtual bool DoWork() = 0;
72
73 private:
74 DISALLOW_COPY_AND_ASSIGN(BluetoothLowEnergyExtensionFunction);
75 };
76
77 class BluetoothLowEnergyConnectFunction
78 : public BluetoothLowEnergyExtensionFunction {
79 public:
80 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.connect",
81 BLUETOOTHLOWENERGY_CONNECT);
82
83 protected:
84 virtual ~BluetoothLowEnergyConnectFunction() {}
85
86 // BluetoothLowEnergyExtensionFunction override.
87 virtual bool DoWork() OVERRIDE;
88
89 private:
90 // Success and error callbacks, called by
91 // BluetoothLowEnergyEventRouter::Connect.
92 void SuccessCallback();
93 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
94 };
95
96 class BluetoothLowEnergyDisconnectFunction
97 : public BluetoothLowEnergyExtensionFunction {
98 public:
99 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.disconnect",
100 BLUETOOTHLOWENERGY_DISCONNECT);
101
102 protected:
103 virtual ~BluetoothLowEnergyDisconnectFunction() {}
104
105 // BluetoothLowEnergyExtensionFunction override.
106 virtual bool DoWork() OVERRIDE;
107
108 private:
109 // Success and error callbacks, called by
110 // BluetoothLowEnergyEventRouter::Disconnect.
111 void SuccessCallback();
112 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
113 };
114
115 class BluetoothLowEnergyGetServiceFunction
116 : public BluetoothLowEnergyExtensionFunction {
117 public:
118 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.getService",
119 BLUETOOTHLOWENERGY_GETSERVICE);
120
121 protected:
122 virtual ~BluetoothLowEnergyGetServiceFunction() {}
123
124 // BluetoothLowEnergyExtensionFunction override.
125 virtual bool DoWork() OVERRIDE;
126 };
127
128 class BluetoothLowEnergyGetServicesFunction
129 : public BluetoothLowEnergyExtensionFunction {
130 public:
131 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.getServices",
132 BLUETOOTHLOWENERGY_GETSERVICES);
133
134 protected:
135 virtual ~BluetoothLowEnergyGetServicesFunction() {}
136
137 // BluetoothLowEnergyExtensionFunction override.
138 virtual bool DoWork() OVERRIDE;
139 };
140
141 class BluetoothLowEnergyGetCharacteristicFunction
142 : public BluetoothLowEnergyExtensionFunction {
143 public:
144 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.getCharacteristic",
145 BLUETOOTHLOWENERGY_GETCHARACTERISTIC);
146
147 protected:
148 virtual ~BluetoothLowEnergyGetCharacteristicFunction() {}
149
150 // BluetoothLowEnergyExtensionFunction override.
151 virtual bool DoWork() OVERRIDE;
152 };
153
154 class BluetoothLowEnergyGetCharacteristicsFunction
155 : public BluetoothLowEnergyExtensionFunction {
156 public:
157 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.getCharacteristics",
158 BLUETOOTHLOWENERGY_GETCHARACTERISTICS);
159
160 protected:
161 virtual ~BluetoothLowEnergyGetCharacteristicsFunction() {}
162
163 // BluetoothLowEnergyExtensionFunction override.
164 virtual bool DoWork() OVERRIDE;
165 };
166
167 class BluetoothLowEnergyGetIncludedServicesFunction
168 : public BluetoothLowEnergyExtensionFunction {
169 public:
170 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.getIncludedServices",
171 BLUETOOTHLOWENERGY_GETINCLUDEDSERVICES);
172
173 protected:
174 virtual ~BluetoothLowEnergyGetIncludedServicesFunction() {}
175
176 // BluetoothLowEnergyExtensionFunction override.
177 virtual bool DoWork() OVERRIDE;
178 };
179
180 class BluetoothLowEnergyGetDescriptorFunction
181 : public BluetoothLowEnergyExtensionFunction {
182 public:
183 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.getDescriptor",
184 BLUETOOTHLOWENERGY_GETDESCRIPTOR);
185
186 protected:
187 virtual ~BluetoothLowEnergyGetDescriptorFunction() {}
188
189 // BluetoothLowEnergyExtensionFunction override.
190 virtual bool DoWork() OVERRIDE;
191 };
192
193 class BluetoothLowEnergyGetDescriptorsFunction
194 : public BluetoothLowEnergyExtensionFunction {
195 public:
196 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.getDescriptors",
197 BLUETOOTHLOWENERGY_GETDESCRIPTORS);
198
199 protected:
200 virtual ~BluetoothLowEnergyGetDescriptorsFunction() {}
201
202 // BluetoothLowEnergyExtensionFunction override.
203 virtual bool DoWork() OVERRIDE;
204 };
205
206 class BluetoothLowEnergyReadCharacteristicValueFunction
207 : public BluetoothLowEnergyExtensionFunction {
208 public:
209 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.readCharacteristicValue",
210 BLUETOOTHLOWENERGY_READCHARACTERISTICVALUE);
211
212 protected:
213 virtual ~BluetoothLowEnergyReadCharacteristicValueFunction() {}
214
215 // BluetoothLowEnergyExtensionFunction override.
216 virtual bool DoWork() OVERRIDE;
217
218 private:
219 // Success and error callbacks, called by
220 // BluetoothLowEnergyEventRouter::ReadCharacteristicValue.
221 void SuccessCallback();
222 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
223
224 // The instance ID of the requested characteristic.
225 std::string instance_id_;
226 };
227
228 class BluetoothLowEnergyWriteCharacteristicValueFunction
229 : public BluetoothLowEnergyExtensionFunction {
230 public:
231 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.writeCharacteristicValue",
232 BLUETOOTHLOWENERGY_WRITECHARACTERISTICVALUE);
233
234 protected:
235 virtual ~BluetoothLowEnergyWriteCharacteristicValueFunction() {}
236
237 // BluetoothLowEnergyExtensionFunction override.
238 virtual bool DoWork() OVERRIDE;
239
240 private:
241 // Success and error callbacks, called by
242 // BluetoothLowEnergyEventRouter::WriteCharacteristicValue.
243 void SuccessCallback();
244 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
245
246 // The instance ID of the requested characteristic.
247 std::string instance_id_;
248 };
249
250 class BluetoothLowEnergyStartCharacteristicNotificationsFunction
251 : public BluetoothLowEnergyExtensionFunction {
252 public:
253 DECLARE_EXTENSION_FUNCTION(
254 "bluetoothLowEnergy.startCharacteristicNotifications",
255 BLUETOOTHLOWENERGY_STARTCHARACTERISTICNOTIFICATIONS);
256
257 protected:
258 virtual ~BluetoothLowEnergyStartCharacteristicNotificationsFunction() {}
259
260 // BluetoothLowEnergyExtensionFunction override.
261 virtual bool DoWork() OVERRIDE;
262
263 private:
264 // Success and error callbacks, called by
265 // BluetoothLowEnergyEventRouter::StartCharacteristicNotifications.
266 void SuccessCallback();
267 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
268 };
269
270 class BluetoothLowEnergyStopCharacteristicNotificationsFunction
271 : public BluetoothLowEnergyExtensionFunction {
272 public:
273 DECLARE_EXTENSION_FUNCTION(
274 "bluetoothLowEnergy.stopCharacteristicNotifications",
275 BLUETOOTHLOWENERGY_STOPCHARACTERISTICNOTIFICATIONS);
276
277 protected:
278 virtual ~BluetoothLowEnergyStopCharacteristicNotificationsFunction() {}
279
280 // BluetoothLowEnergyExtensionFunction override.
281 virtual bool DoWork() OVERRIDE;
282
283 private:
284 // Success and error callbacks, called by
285 // BluetoothLowEnergyEventRouter::StopCharacteristicNotifications.
286 void SuccessCallback();
287 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
288 };
289
290 class BluetoothLowEnergyReadDescriptorValueFunction
291 : public BluetoothLowEnergyExtensionFunction {
292 public:
293 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.readDescriptorValue",
294 BLUETOOTHLOWENERGY_READDESCRIPTORVALUE);
295
296 protected:
297 virtual ~BluetoothLowEnergyReadDescriptorValueFunction() {}
298
299 // BluetoothLowEnergyExtensionFunction override.
300 virtual bool DoWork() OVERRIDE;
301
302 private:
303 // Success and error callbacks, called by
304 // BluetoothLowEnergyEventRouter::ReadDescriptorValue.
305 void SuccessCallback();
306 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
307
308 // The instance ID of the requested descriptor.
309 std::string instance_id_;
310 };
311
312 class BluetoothLowEnergyWriteDescriptorValueFunction
313 : public BluetoothLowEnergyExtensionFunction {
314 public:
315 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.writeDescriptorValue",
316 BLUETOOTHLOWENERGY_WRITEDESCRIPTORVALUE);
317
318 protected:
319 virtual ~BluetoothLowEnergyWriteDescriptorValueFunction() {}
320
321 // BluetoothLowEnergyExtensionFunction override.
322 virtual bool DoWork() OVERRIDE;
323
324 private:
325 // Success and error callbacks, called by
326 // BluetoothLowEnergyEventRouter::WriteDescriptorValue.
327 void SuccessCallback();
328 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status);
329
330 // The instance ID of the requested descriptor.
331 std::string instance_id_;
332 };
333
334 } // namespace api
335 } // namespace extensions
336
337 #endif // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENER GY_API_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698