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 13 namespace device { 14 namespace { 15 16 struct UUIDs { UUIDsdevice::__anon53b3525d0111::UUIDs17 UUIDs() : uuids_(MakeUUIDVector()) {} 18 19 const std::vector<BluetoothUUID> uuids_; 20 21 private: MakeUUIDVectordevice::__anon53b3525d0111::UUIDs22 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 35 base::LazyInstance<const UUIDs>::Leaky g_uuids = LAZY_INSTANCE_INITIALIZER; 36 37 } // namespace 38 39 // static 40 const BluetoothUUID& CharacteristicExtendedPropertiesUuid()41BluetoothGattDescriptor::CharacteristicExtendedPropertiesUuid() { 42 return g_uuids.Get().uuids_[0]; 43 } 44 45 // static 46 const BluetoothUUID& CharacteristicUserDescriptionUuid()47BluetoothGattDescriptor::CharacteristicUserDescriptionUuid() { 48 return g_uuids.Get().uuids_[1]; 49 } 50 51 // static 52 const BluetoothUUID& ClientCharacteristicConfigurationUuid()53BluetoothGattDescriptor::ClientCharacteristicConfigurationUuid() { 54 return g_uuids.Get().uuids_[2]; 55 } 56 57 // static 58 const BluetoothUUID& ServerCharacteristicConfigurationUuid()59BluetoothGattDescriptor::ServerCharacteristicConfigurationUuid() { 60 return g_uuids.Get().uuids_[3]; 61 } 62 63 // static 64 const BluetoothUUID& CharacteristicPresentationFormatUuid()65BluetoothGattDescriptor::CharacteristicPresentationFormatUuid() { 66 return g_uuids.Get().uuids_[4]; 67 } 68 69 // static 70 const BluetoothUUID& CharacteristicAggregateFormatUuid()71BluetoothGattDescriptor::CharacteristicAggregateFormatUuid() { 72 return g_uuids.Get().uuids_[5]; 73 } 74 BluetoothGattDescriptor()75BluetoothGattDescriptor::BluetoothGattDescriptor() { 76 } 77 ~BluetoothGattDescriptor()78BluetoothGattDescriptor::~BluetoothGattDescriptor() { 79 } 80 81 // static Create(const BluetoothUUID & uuid,const std::vector<uint8> & value,BluetoothGattCharacteristic::Permissions permissions)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