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

Side by Side Diff: device/bluetooth/dbus/bluetooth_adapter_client.h

Issue 2084463002: BlueZ + DBus implementations of create/remove service record functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes + moar tests Created 4 years, 6 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 DEVICE_BLUETOOTH_DBUS_BLUETOOTH_ADAPTER_CLIENT_H_ 5 #ifndef DEVICE_BLUETOOTH_DBUS_BLUETOOTH_ADAPTER_CLIENT_H_
6 #define DEVICE_BLUETOOTH_DBUS_BLUETOOTH_ADAPTER_CLIENT_H_ 6 #define DEVICE_BLUETOOTH_DBUS_BLUETOOTH_ADAPTER_CLIENT_H_
7 7
8 #include <stdint.h> 8 #include <cstdint>
9
10 #include <memory> 9 #include <memory>
11 #include <string> 10 #include <string>
12 #include <vector> 11 #include <vector>
13 12
14 #include "base/callback.h" 13 #include "base/callback.h"
xiyuan 2016/06/22 15:53:06 Move to cc since we include callback_forward.h her
rkc 2016/06/22 21:06:38 Done.
14 #include "base/callback_forward.h"
15 #include "base/macros.h" 15 #include "base/macros.h"
16 #include "base/observer_list.h"
17 #include "base/values.h"
18 #include "dbus/object_path.h" 16 #include "dbus/object_path.h"
17 #include "dbus/object_proxy.h"
xiyuan 2016/06/22 15:53:06 nit: forward declare dbus::ObjectProxy and move th
rkc 2016/06/22 21:06:37 Done.
19 #include "dbus/property.h" 18 #include "dbus/property.h"
20 #include "device/bluetooth/bluetooth_export.h" 19 #include "device/bluetooth/bluetooth_export.h"
21 #include "device/bluetooth/dbus/bluez_dbus_client.h" 20 #include "device/bluetooth/dbus/bluez_dbus_client.h"
22 21
23 namespace bluez { 22 namespace bluez {
24 23
24 class BluetoothServiceRecordBlueZ;
25
25 // BluetoothAdapterClient is used to communicate with objects representing 26 // BluetoothAdapterClient is used to communicate with objects representing
26 // local Bluetooth Adapters. 27 // local Bluetooth Adapters.
27 class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterClient : public BluezDBusClient { 28 class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterClient : public BluezDBusClient {
28 public: 29 public:
29 // A DiscoveryFilter represents a filter passed to the SetDiscoveryFilter 30 // A DiscoveryFilter represents a filter passed to the SetDiscoveryFilter
30 // method. 31 // method.
31 struct DiscoveryFilter { 32 struct DiscoveryFilter {
32 DiscoveryFilter(); 33 DiscoveryFilter();
33 ~DiscoveryFilter(); 34 ~DiscoveryFilter();
34 35
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 virtual void AddObserver(Observer* observer) = 0; 128 virtual void AddObserver(Observer* observer) = 0;
128 virtual void RemoveObserver(Observer* observer) = 0; 129 virtual void RemoveObserver(Observer* observer) = 0;
129 130
130 // Returns the list of adapter object paths known to the system. 131 // Returns the list of adapter object paths known to the system.
131 virtual std::vector<dbus::ObjectPath> GetAdapters() = 0; 132 virtual std::vector<dbus::ObjectPath> GetAdapters() = 0;
132 133
133 // Obtain the properties for the adapter with object path |object_path|, 134 // Obtain the properties for the adapter with object path |object_path|,
134 // any values should be copied if needed. 135 // any values should be copied if needed.
135 virtual Properties* GetProperties(const dbus::ObjectPath& object_path) = 0; 136 virtual Properties* GetProperties(const dbus::ObjectPath& object_path) = 0;
136 137
138 // Callback used to send back the handle of a created service record.
139 using ServiceRecordCallback = base::Callback<void(uint32_t)>;
140
137 // The ErrorCallback is used by adapter methods to indicate failure. 141 // The ErrorCallback is used by adapter methods to indicate failure.
138 // It receives two arguments: the name of the error in |error_name| and 142 // It receives two arguments: the name of the error in |error_name| and
139 // an optional message in |error_message|. 143 // an optional message in |error_message|.
140 typedef base::Callback<void(const std::string& error_name, 144 typedef base::Callback<void(const std::string& error_name,
141 const std::string& error_message)> ErrorCallback; 145 const std::string& error_message)> ErrorCallback;
142 146
143 // Starts a device discovery on the adapter with object path |object_path|. 147 // Starts a device discovery on the adapter with object path |object_path|.
144 virtual void StartDiscovery(const dbus::ObjectPath& object_path, 148 virtual void StartDiscovery(const dbus::ObjectPath& object_path,
145 const base::Closure& callback, 149 const base::Closure& callback,
146 const ErrorCallback& error_callback) = 0; 150 const ErrorCallback& error_callback) = 0;
(...skipping 16 matching lines...) Expand all
163 // |object_path|. When this method is called with no filter parameter, filter 167 // |object_path|. When this method is called with no filter parameter, filter
164 // is removed. 168 // is removed.
165 // SetDiscoveryFilter can be called before StartDiscovery. It is useful when 169 // SetDiscoveryFilter can be called before StartDiscovery. It is useful when
166 // client will create first discovery session, to ensure that proper scan 170 // client will create first discovery session, to ensure that proper scan
167 // will be started right after call to StartDiscovery. 171 // will be started right after call to StartDiscovery.
168 virtual void SetDiscoveryFilter(const dbus::ObjectPath& object_path, 172 virtual void SetDiscoveryFilter(const dbus::ObjectPath& object_path,
169 const DiscoveryFilter& discovery_filter, 173 const DiscoveryFilter& discovery_filter,
170 const base::Closure& callback, 174 const base::Closure& callback,
171 const ErrorCallback& error_callback) = 0; 175 const ErrorCallback& error_callback) = 0;
172 176
177 // Creates the service record |record| on the adapter with the object path
178 // |object_path|.
179 virtual void CreateServiceRecord(const dbus::ObjectPath& object_path,
180 const BluetoothServiceRecordBlueZ& record,
181 const ServiceRecordCallback& callback,
182 const ErrorCallback& error_callback) = 0;
183
184 // Removes the service record with the uuid |uuid| on the adapter with the
185 // object path |object_path|.
186 virtual void RemoveServiceRecord(const dbus::ObjectPath& object_path,
187 uint32_t handle,
188 const base::Closure& callback,
189 const ErrorCallback& error_callback) = 0;
190
173 // Creates the instance. 191 // Creates the instance.
174 static BluetoothAdapterClient* Create(); 192 static BluetoothAdapterClient* Create();
175 193
176 // Constants used to indicate exceptional error conditions. 194 // Constants used to indicate exceptional error conditions.
177 static const char kNoResponseError[]; 195 static const char kNoResponseError[];
178 static const char kUnknownAdapterError[]; 196 static const char kUnknownAdapterError[];
179 197
180 protected: 198 protected:
181 BluetoothAdapterClient(); 199 BluetoothAdapterClient();
182 200
183 private: 201 private:
184 DISALLOW_COPY_AND_ASSIGN(BluetoothAdapterClient); 202 DISALLOW_COPY_AND_ASSIGN(BluetoothAdapterClient);
185 }; 203 };
186 204
187 } // namespace bluez 205 } // namespace bluez
188 206
189 #endif // DEVICE_BLUETOOTH_DBUS_BLUETOOTH_ADAPTER_CLIENT_H_ 207 #endif // DEVICE_BLUETOOTH_DBUS_BLUETOOTH_ADAPTER_CLIENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698