| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef EXTENSIONS_BROWSER_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_API_H_ | 5 #ifndef EXTENSIONS_BROWSER_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_API_H_ |
| 6 #define EXTENSIONS_BROWSER_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_API_H_ | 6 #define EXTENSIONS_BROWSER_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_API_H_ |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "device/bluetooth/bluetooth_advertisement.h" |
| 10 #include "extensions/browser/api/api_resource_manager.h" |
| 9 #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_event
_router.h" | 11 #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_event
_router.h" |
| 10 #include "extensions/browser/browser_context_keyed_api_factory.h" | 12 #include "extensions/browser/browser_context_keyed_api_factory.h" |
| 11 #include "extensions/browser/extension_function.h" | 13 #include "extensions/browser/extension_function.h" |
| 12 #include "extensions/browser/extension_function_histogram_value.h" | 14 #include "extensions/browser/extension_function_histogram_value.h" |
| 13 | 15 |
| 14 namespace extensions { | 16 namespace extensions { |
| 15 | 17 |
| 18 class BluetoothApiAdvertisement; |
| 16 class BluetoothLowEnergyEventRouter; | 19 class BluetoothLowEnergyEventRouter; |
| 17 | 20 |
| 18 // The profile-keyed service that manages the bluetoothLowEnergy extension API. | 21 // The profile-keyed service that manages the bluetoothLowEnergy extension API. |
| 19 class BluetoothLowEnergyAPI : public BrowserContextKeyedAPI { | 22 class BluetoothLowEnergyAPI : public BrowserContextKeyedAPI { |
| 20 public: | 23 public: |
| 21 static BrowserContextKeyedAPIFactory<BluetoothLowEnergyAPI>* | 24 static BrowserContextKeyedAPIFactory<BluetoothLowEnergyAPI>* |
| 22 GetFactoryInstance(); | 25 GetFactoryInstance(); |
| 23 | 26 |
| 24 // Convenience method to get the BluetoothLowEnergy API for a browser context. | 27 // Convenience method to get the BluetoothLowEnergy API for a browser context. |
| 25 static BluetoothLowEnergyAPI* Get(content::BrowserContext* context); | 28 static BluetoothLowEnergyAPI* Get(content::BrowserContext* context); |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 private: | 325 private: |
| 323 // Success and error callbacks, called by | 326 // Success and error callbacks, called by |
| 324 // BluetoothLowEnergyEventRouter::WriteDescriptorValue. | 327 // BluetoothLowEnergyEventRouter::WriteDescriptorValue. |
| 325 void SuccessCallback(); | 328 void SuccessCallback(); |
| 326 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status); | 329 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status); |
| 327 | 330 |
| 328 // The instance ID of the requested descriptor. | 331 // The instance ID of the requested descriptor. |
| 329 std::string instance_id_; | 332 std::string instance_id_; |
| 330 }; | 333 }; |
| 331 | 334 |
| 335 class BluetoothLowEnergyAdvertisementFunction |
| 336 : public BluetoothLowEnergyExtensionFunction { |
| 337 public: |
| 338 BluetoothLowEnergyAdvertisementFunction(); |
| 339 |
| 340 protected: |
| 341 ~BluetoothLowEnergyAdvertisementFunction() override; |
| 342 |
| 343 // Takes ownership. |
| 344 int AddAdvertisement(BluetoothApiAdvertisement* advertisement); |
| 345 BluetoothApiAdvertisement* GetAdvertisement(int advertisement_id); |
| 346 void RemoveAdvertisement(int advertisement_id); |
| 347 |
| 348 // ExtensionFunction override. |
| 349 bool RunAsync() override; |
| 350 |
| 351 private: |
| 352 void Initialize(); |
| 353 |
| 354 ApiResourceManager<BluetoothApiAdvertisement>* advertisements_manager_; |
| 355 |
| 356 DISALLOW_COPY_AND_ASSIGN(BluetoothLowEnergyAdvertisementFunction); |
| 357 }; |
| 358 |
| 332 class BluetoothLowEnergyRegisterAdvertisementFunction | 359 class BluetoothLowEnergyRegisterAdvertisementFunction |
| 333 : public BluetoothLowEnergyExtensionFunction { | 360 : public BluetoothLowEnergyAdvertisementFunction { |
| 334 public: | 361 public: |
| 335 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.registerAdvertisement", | 362 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.registerAdvertisement", |
| 336 BLUETOOTHLOWENERGY_REGISTERADVERTISEMENT); | 363 BLUETOOTHLOWENERGY_REGISTERADVERTISEMENT); |
| 337 | 364 |
| 338 protected: | 365 protected: |
| 339 ~BluetoothLowEnergyRegisterAdvertisementFunction() override {} | 366 ~BluetoothLowEnergyRegisterAdvertisementFunction() override {} |
| 340 | 367 |
| 341 // BluetoothLowEnergyExtensionFunction override. | 368 // BluetoothLowEnergyExtensionFunction override. |
| 342 bool DoWork() override; | 369 bool DoWork() override; |
| 343 | 370 |
| 344 private: | 371 private: |
| 345 // Success and error callbacks, called by | 372 void SuccessCallback(scoped_refptr<device::BluetoothAdvertisement>); |
| 346 // BluetoothLowEnergyEventRouter::WriteDescriptorValue. | 373 void ErrorCallback(device::BluetoothAdvertisement::ErrorCode status); |
| 347 void SuccessCallback(); | |
| 348 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status); | |
| 349 | 374 |
| 350 // The instance ID of the requested descriptor. | 375 // The instance ID of the requested descriptor. |
| 351 std::string instance_id_; | 376 std::string instance_id_; |
| 352 }; | 377 }; |
| 353 | 378 |
| 354 class BluetoothLowEnergyUnregisterAdvertisementFunction | 379 class BluetoothLowEnergyUnregisterAdvertisementFunction |
| 355 : public BluetoothLowEnergyExtensionFunction { | 380 : public BluetoothLowEnergyAdvertisementFunction { |
| 356 public: | 381 public: |
| 357 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.unregisterAdvertisement", | 382 DECLARE_EXTENSION_FUNCTION("bluetoothLowEnergy.unregisterAdvertisement", |
| 358 BLUETOOTHLOWENERGY_UNREGISTERADVERTISEMENT); | 383 BLUETOOTHLOWENERGY_UNREGISTERADVERTISEMENT); |
| 359 | 384 |
| 360 protected: | 385 protected: |
| 361 ~BluetoothLowEnergyUnregisterAdvertisementFunction() override {} | 386 ~BluetoothLowEnergyUnregisterAdvertisementFunction() override {} |
| 362 | 387 |
| 363 // BluetoothLowEnergyExtensionFunction override. | 388 // BluetoothLowEnergyExtensionFunction override. |
| 364 bool DoWork() override; | 389 bool DoWork() override; |
| 365 | 390 |
| 366 private: | 391 private: |
| 367 // Success and error callbacks, called by | 392 void SuccessCallback(int advertisement_id); |
| 368 // BluetoothLowEnergyEventRouter::WriteDescriptorValue. | 393 void ErrorCallback(int advertisement_id, |
| 369 void SuccessCallback(); | 394 device::BluetoothAdvertisement::ErrorCode status); |
| 370 void ErrorCallback(BluetoothLowEnergyEventRouter::Status status); | |
| 371 | 395 |
| 372 // The instance ID of the requested descriptor. | 396 // The instance ID of the requested descriptor. |
| 373 std::string instance_id_; | 397 std::string instance_id_; |
| 374 }; | 398 }; |
| 375 | 399 |
| 376 } // namespace core_api | 400 } // namespace core_api |
| 377 } // namespace extensions | 401 } // namespace extensions |
| 378 | 402 |
| 379 #endif // EXTENSIONS_BROWSER_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_API_
H_ | 403 #endif // EXTENSIONS_BROWSER_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_API_
H_ |
| OLD | NEW |