• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()41 BluetoothGattDescriptor::CharacteristicExtendedPropertiesUuid() {
42   return g_uuids.Get().uuids_[0];
43 }
44 
45 // static
46 const BluetoothUUID&
CharacteristicUserDescriptionUuid()47 BluetoothGattDescriptor::CharacteristicUserDescriptionUuid() {
48   return g_uuids.Get().uuids_[1];
49 }
50 
51 // static
52 const BluetoothUUID&
ClientCharacteristicConfigurationUuid()53 BluetoothGattDescriptor::ClientCharacteristicConfigurationUuid() {
54   return g_uuids.Get().uuids_[2];
55 }
56 
57 // static
58 const BluetoothUUID&
ServerCharacteristicConfigurationUuid()59 BluetoothGattDescriptor::ServerCharacteristicConfigurationUuid() {
60   return g_uuids.Get().uuids_[3];
61 }
62 
63 // static
64 const BluetoothUUID&
CharacteristicPresentationFormatUuid()65 BluetoothGattDescriptor::CharacteristicPresentationFormatUuid() {
66   return g_uuids.Get().uuids_[4];
67 }
68 
69 // static
70 const BluetoothUUID&
CharacteristicAggregateFormatUuid()71 BluetoothGattDescriptor::CharacteristicAggregateFormatUuid() {
72   return g_uuids.Get().uuids_[5];
73 }
74 
BluetoothGattDescriptor()75 BluetoothGattDescriptor::BluetoothGattDescriptor() {
76 }
77 
~BluetoothGattDescriptor()78 BluetoothGattDescriptor::~BluetoothGattDescriptor() {
79 }
80 
81 // static
Create(const BluetoothUUID & uuid,const std::vector<uint8> & value,BluetoothGattCharacteristic::Permissions permissions)82 BluetoothGattDescriptor* 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