bluetooth_device_win.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2012 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 DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_WIN_H_
6#define DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_WIN_H_
7
8#include <string>
9#include <vector>
10
11#include "base/basictypes.h"
12#include "device/bluetooth/bluetooth_device.h"
13#include "device/bluetooth/bluetooth_task_manager_win.h"
14
15namespace device {
16
17class BluetoothAdapterWin;
18
19class BluetoothDeviceWin : public BluetoothDevice {
20 public:
21  explicit BluetoothDeviceWin(
22      const BluetoothTaskManagerWin::DeviceState& state);
23  virtual ~BluetoothDeviceWin();
24
25  void SetVisible(bool visible);
26
27  // BluetoothDevice override
28  virtual bool IsPaired() const OVERRIDE;
29  virtual const ServiceList& GetServices() const OVERRIDE;
30  virtual void GetServiceRecords(
31      const ServiceRecordsCallback& callback,
32      const ErrorCallback& error_callback) OVERRIDE;
33  virtual void ProvidesServiceWithName(
34      const std::string& name,
35      const ProvidesServiceCallback& callback) OVERRIDE;
36  virtual bool ExpectingPinCode() const OVERRIDE;
37  virtual bool ExpectingPasskey() const OVERRIDE;
38  virtual bool ExpectingConfirmation() const OVERRIDE;
39  virtual void Connect(
40      PairingDelegate* pairing_delegate,
41      const base::Closure& callback,
42      const ConnectErrorCallback& error_callback) OVERRIDE;
43  virtual void SetPinCode(const std::string& pincode) OVERRIDE;
44  virtual void SetPasskey(uint32 passkey) OVERRIDE;
45  virtual void ConfirmPairing() OVERRIDE;
46  virtual void RejectPairing() OVERRIDE;
47  virtual void CancelPairing() OVERRIDE;
48  virtual void Disconnect(
49      const base::Closure& callback,
50      const ErrorCallback& error_callback) OVERRIDE;
51  virtual void Forget(const ErrorCallback& error_callback) OVERRIDE;
52  virtual void ConnectToService(
53      const std::string& service_uuid,
54      const SocketCallback& callback) OVERRIDE;
55  virtual void SetOutOfBandPairingData(
56      const BluetoothOutOfBandPairingData& data,
57      const base::Closure& callback,
58      const ErrorCallback& error_callback) OVERRIDE;
59  virtual void ClearOutOfBandPairingData(
60      const base::Closure& callback,
61      const ErrorCallback& error_callback) OVERRIDE;
62
63 private:
64  friend class BluetoothAdapterWin;
65
66  // Computes the fingerprint that can be used to compare the devices.
67  static uint32 ComputeDeviceFingerprint(
68      const BluetoothTaskManagerWin::DeviceState& state);
69
70  uint32 device_fingerprint() const {
71    return device_fingerprint_;
72  }
73
74  // Used to compare the devices.
75  uint32 device_fingerprint_;
76  ServiceRecordList service_record_list_;
77
78  DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceWin);
79};
80
81}  // namespace device
82
83#endif  // DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_WIN_H_
84