- add sources.
[platform/framework/web/crosswalk.git] / src / device / bluetooth / bluetooth_service_record.h
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_SERVICE_RECORD_H_
6 #define DEVICE_BLUETOOTH_BLUETOOTH_SERVICE_RECORD_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11
12 namespace device {
13
14 // BluetoothServiceRecord represents an SDP service record.
15 //
16 // This implementation is currently incomplete: it only supports those fields
17 // that have been necessary so far.
18 class BluetoothServiceRecord {
19  public:
20   virtual ~BluetoothServiceRecord();
21
22   // The human-readable name of this service.
23   const std::string& name() const { return name_; }
24
25   // The address of the BluetoothDevice providing this service.
26   const std::string& address() const { return address_; }
27
28   // The UUID of the service.  This field may be empty if no UUID was
29   // specified in the service record.
30   const std::string& uuid() const { return uuid_; }
31
32   // Indicates if this service supports HID.
33   bool SupportsHid() const { return supports_hid_; }
34
35   // For HID services, returns the HIDReconnectInitiate attribute. For non-HID
36   // or unknown services defaults to true.
37   bool hid_reconnect_initiate() const { return hid_reconnect_initiate_; }
38
39   // For HID services, returns the HIDNormallyConnectable attribute. For non-HID
40   // or unknown services defaults to true.
41   bool hid_normally_connectable() const { return hid_normally_connectable_; }
42
43   // Indicates if this service supports RFCOMM communication.
44   bool SupportsRfcomm() const { return supports_rfcomm_; }
45
46   // The RFCOMM channel to use, if this service supports RFCOMM communication.
47   // The return value is undefined if SupportsRfcomm() returns false.
48   uint8 rfcomm_channel() const { return rfcomm_channel_; }
49
50  protected:
51   BluetoothServiceRecord();
52
53   std::string address_;
54   std::string name_;
55   std::string uuid_;
56
57   bool supports_hid_;
58   bool hid_reconnect_initiate_;
59   bool hid_normally_connectable_;
60
61   bool supports_rfcomm_;
62   uint8 rfcomm_channel_;
63
64  private:
65   DISALLOW_COPY_AND_ASSIGN(BluetoothServiceRecord);
66 };
67
68 }  // namespace device
69
70 #endif  // DEVICE_BLUETOOTH_BLUETOOTH_SERVICE_RECORD_H_