Enable Enterprise enrollment on desktop builds.
[chromium-blink-merge.git] / chrome / browser / extensions / api / bluetooth / bluetooth_private_api.h
blob5c65e0fee8ee1f2da38ce9269b45a509c8e17f89
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.
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_PRIVATE_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_PRIVATE_API_H_
8 #include "base/callback_forward.h"
9 #include "chrome/browser/extensions/api/bluetooth/bluetooth_extension_function.h"
10 #include "extensions/browser/browser_context_keyed_api_factory.h"
11 #include "extensions/browser/event_router.h"
13 namespace device {
14 class BluetoothAdapter;
17 namespace extensions {
19 class BluetoothApiPairingDelegate;
21 // The profile-keyed service that manages the bluetoothPrivate extension API.
22 class BluetoothPrivateAPI : public BrowserContextKeyedAPI,
23 public EventRouter::Observer {
24 public:
25 static BrowserContextKeyedAPIFactory<BluetoothPrivateAPI>*
26 GetFactoryInstance();
28 explicit BluetoothPrivateAPI(content::BrowserContext* context);
29 virtual ~BluetoothPrivateAPI();
31 // KeyedService implementation.
32 virtual void Shutdown() OVERRIDE;
34 // EventRouter::Observer implementation.
35 virtual void OnListenerAdded(const EventListenerInfo& details) OVERRIDE;
36 virtual void OnListenerRemoved(const EventListenerInfo& details) OVERRIDE;
38 // BrowserContextKeyedAPI implementation.
39 static const char* service_name() { return "BluetoothPrivateAPI"; }
40 static const bool kServiceRedirectedInIncognito = true;
41 static const bool kServiceIsNULLWhileTesting = true;
43 private:
44 friend class BrowserContextKeyedAPIFactory<BluetoothPrivateAPI>;
46 content::BrowserContext* browser_context_;
49 namespace api {
51 class BluetoothPrivateSetAdapterStateFunction
52 : public BluetoothExtensionFunction {
53 public:
54 DECLARE_EXTENSION_FUNCTION("bluetoothPrivate.setAdapterState",
55 BLUETOOTHPRIVATE_SETADAPTERSTATE)
56 BluetoothPrivateSetAdapterStateFunction();
58 private:
59 virtual ~BluetoothPrivateSetAdapterStateFunction();
61 base::Closure CreatePropertySetCallback(const std::string& property_name);
62 base::Closure CreatePropertyErrorCallback(const std::string& property_name);
63 void OnAdapterPropertySet(const std::string& property);
64 void OnAdapterPropertyError(const std::string& property);
65 void SendError();
67 // BluetoothExtensionFunction overrides:
68 virtual bool DoWork(scoped_refptr<device::BluetoothAdapter> adapter) OVERRIDE;
70 // Set of expected adapter properties to be changed.
71 std::set<std::string> pending_properties_;
73 // Set of adapter properties that were not set successfully.
74 std::set<std::string> failed_properties_;
76 DISALLOW_COPY_AND_ASSIGN(BluetoothPrivateSetAdapterStateFunction);
79 class BluetoothPrivateEnablePairingFunction
80 : public BluetoothExtensionFunction {
81 public:
82 DECLARE_EXTENSION_FUNCTION("bluetoothPrivate.enablePairing",
83 BLUETOOTHPRIVATE_ENABLEPAIRING)
84 BluetoothPrivateEnablePairingFunction();
85 // BluetoothExtensionFunction overrides:
86 virtual bool DoWork(scoped_refptr<device::BluetoothAdapter> adapter) OVERRIDE;
88 private:
89 virtual ~BluetoothPrivateEnablePairingFunction();
90 DISALLOW_COPY_AND_ASSIGN(BluetoothPrivateEnablePairingFunction);
93 class BluetoothPrivateDisablePairingFunction
94 : public BluetoothExtensionFunction {
95 public:
96 DECLARE_EXTENSION_FUNCTION("bluetoothPrivate.disablePairing",
97 BLUETOOTHPRIVATE_DISABLEPAIRING)
98 BluetoothPrivateDisablePairingFunction();
99 // BluetoothExtensionFunction overrides:
100 virtual bool DoWork(scoped_refptr<device::BluetoothAdapter> adapter) OVERRIDE;
102 private:
103 virtual ~BluetoothPrivateDisablePairingFunction();
104 DISALLOW_COPY_AND_ASSIGN(BluetoothPrivateDisablePairingFunction);
107 class BluetoothPrivateSetPairingResponseFunction
108 : public BluetoothExtensionFunction {
109 public:
110 DECLARE_EXTENSION_FUNCTION("bluetoothPrivate.setPairingResponse",
111 BLUETOOTHPRIVATE_SETPAIRINGRESPONSE)
112 BluetoothPrivateSetPairingResponseFunction();
113 // BluetoothExtensionFunction overrides:
114 virtual bool DoWork(scoped_refptr<device::BluetoothAdapter> adapter) OVERRIDE;
116 private:
117 virtual ~BluetoothPrivateSetPairingResponseFunction();
118 DISALLOW_COPY_AND_ASSIGN(BluetoothPrivateSetPairingResponseFunction);
121 } // namespace api
123 } // namespace extensions
125 #endif // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_PRIVATE_API_H_