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 COMPONENTS_PROXIMITY_AUTH_BLUETOOTH_UTIL_H
6#define COMPONENTS_PROXIMITY_AUTH_BLUETOOTH_UTIL_H
7
8#include <string>
9
10#include "base/callback_forward.h"
11#include "device/bluetooth/bluetooth_device.h"
12
13namespace device {
14class BluetoothUUID;
15}
16
17namespace proximity_auth {
18namespace bluetooth_util {
19
20typedef base::Callback<void(const std::string& error_message)> ErrorCallback;
21
22// Connects to the SDP service on the Bluetooth device with the given
23// |device_address|, if possible. Calls the |callback| on success, or the
24// |error_callback| with an error message on failure. Because this can be an
25// expensive operation, the work will be run on the provided |task_runner|,
26// which should correspond to a background thread.
27void SeekDeviceByAddress(const std::string& device_address,
28                         const base::Closure& callback,
29                         const ErrorCallback& error_callback,
30                         base::TaskRunner* task_runner);
31
32void ConnectToServiceInsecurely(
33    device::BluetoothDevice* device,
34    const device::BluetoothUUID& uuid,
35    const device::BluetoothDevice::ConnectToServiceCallback& callback,
36    const device::BluetoothDevice::ConnectToServiceErrorCallback&
37        error_callback);
38
39}  // namespace bluetooth_util
40}  // namespace proximity_auth
41
42#endif  // COMPONENTS_PROXIMITY_AUTH_BLUETOOTH_UTIL_H
43