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#include "device/bluetooth/bluetooth_gatt_descriptor.h" 6 7#include <vector> 8 9#include "base/lazy_instance.h" 10#include "base/logging.h" 11#include "base/macros.h" 12 13namespace device { 14namespace { 15 16struct UUIDs { 17 UUIDs() : uuids_(MakeUUIDVector()) {} 18 19 const std::vector<BluetoothUUID> uuids_; 20 21 private: 22 static std::vector<BluetoothUUID> MakeUUIDVector() { 23 std::vector<BluetoothUUID> uuids; 24 static const char* const strings[] = { 25 "0x2900", "0x2901", "0x2902", "0x2903", "0x2904", "0x2905" 26 }; 27 28 for (size_t i = 0; i < arraysize(strings); ++i) 29 uuids.push_back(BluetoothUUID(strings[i])); 30 31 return uuids; 32 } 33}; 34 35base::LazyInstance<const UUIDs>::Leaky g_uuids = LAZY_INSTANCE_INITIALIZER; 36 37} // namespace 38 39// static 40const BluetoothUUID& 41BluetoothGattDescriptor::CharacteristicExtendedPropertiesUuid() { 42 return g_uuids.Get().uuids_[0]; 43} 44 45// static 46const BluetoothUUID& 47BluetoothGattDescriptor::CharacteristicUserDescriptionUuid() { 48 return g_uuids.Get().uuids_[1]; 49} 50 51// static 52const BluetoothUUID& 53BluetoothGattDescriptor::ClientCharacteristicConfigurationUuid() { 54 return g_uuids.Get().uuids_[2]; 55} 56 57// static 58const BluetoothUUID& 59BluetoothGattDescriptor::ServerCharacteristicConfigurationUuid() { 60 return g_uuids.Get().uuids_[3]; 61} 62 63// static 64const BluetoothUUID& 65BluetoothGattDescriptor::CharacteristicPresentationFormatUuid() { 66 return g_uuids.Get().uuids_[4]; 67} 68 69// static 70const BluetoothUUID& 71BluetoothGattDescriptor::CharacteristicAggregateFormatUuid() { 72 return g_uuids.Get().uuids_[5]; 73} 74 75BluetoothGattDescriptor::BluetoothGattDescriptor() { 76} 77 78BluetoothGattDescriptor::~BluetoothGattDescriptor() { 79} 80 81// static 82BluetoothGattDescriptor* BluetoothGattDescriptor::Create( 83 const BluetoothUUID& uuid, 84 const std::vector<uint8>& value, 85 BluetoothGattCharacteristic::Permissions permissions) { 86 LOG(ERROR) << "Creating local GATT characteristic descriptors currently not " 87 << "supported."; 88 return NULL; 89} 90 91} // namespace device 92