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_ 71