text: // Copyright (c) 2013 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef DEVICE_BLUETOOTH_BLUETOOTH_SERVICE_RECORD_WIN_H_
  #define DEVICE_BLUETOOTH_BLUETOOTH_SERVICE_RECORD_WIN_H_
  
  #include <stdint.h>
  
  #include <string>
  #include <vector>
  
  #include "base/macros.h"
  #include "device/bluetooth/bluetooth_export.h"
  #include "device/bluetooth/bluetooth_init_win.h"
  #include "device/bluetooth/bluetooth_uuid.h"
  
  namespace device {
  
  class DEVICE_BLUETOOTH_EXPORT BluetoothServiceRecordWin {
   public:
    BluetoothServiceRecordWin(const std::string& device_address,
                              const std::string& name,
                              const std::vector<uint8_t>& sdp_bytes,
                              const BluetoothUUID& gatt_uuid);
  
    bool IsEqual(const BluetoothServiceRecordWin& other);
  
    // The BTH_ADDR address of the BluetoothDevice providing this service.
    BTH_ADDR device_bth_addr() const { return device_bth_addr_; }
  
    // The address of the BluetoothDevice providing this service.
    const std::string& device_address() const { return device_address_; }
  
    // The human-readable name of this service.
    const std::string& name() const { return name_; }
  
    // The UUID of the service.  This field may be empty if no UUID was
    // specified in the service record.
    const BluetoothUUID& uuid() const { return uuid_; }
  
    // Indicates if this service supports RFCOMM communication.
    bool SupportsRfcomm() const { return supports_rfcomm_; }
  
    // The RFCOMM channel to use, if this service supports RFCOMM communication.
    // The return value is undefined if SupportsRfcomm() returns false.
    uint8_t rfcomm_channel() const { return rfcomm_channel_; }
  
   private:
    BTH_ADDR device_bth_addr_;
    std::string device_address_;
    std::string name_;
    BluetoothUUID uuid_;
  
    bool supports_rfcomm_;
    uint8_t rfcomm_channel_;
  
    DISALLOW_COPY_AND_ASSIGN(BluetoothServiceRecordWin);
  };
  
  }  // namespace device
  
  #endif  // DEVICE_BLUETOOTH_BLUETOOTH_SERVICE_RECORD_WIN_H_
  