Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / device / bluetooth / bluetooth_gatt_descriptor.cc
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 {
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
35 base::LazyInstance<const UUIDs>::Leaky g_uuids = LAZY_INSTANCE_INITIALIZER;
36
37 }  // namespace
38
39 // static
40 const BluetoothUUID&
41 BluetoothGattDescriptor::CharacteristicExtendedPropertiesUuid() {
42   return g_uuids.Get().uuids_[0];
43 }
44
45 // static
46 const BluetoothUUID&
47 BluetoothGattDescriptor::CharacteristicUserDescriptionUuid() {
48   return g_uuids.Get().uuids_[1];
49 }
50
51 // static
52 const BluetoothUUID&
53 BluetoothGattDescriptor::ClientCharacteristicConfigurationUuid() {
54   return g_uuids.Get().uuids_[2];
55 }
56
57 // static
58 const BluetoothUUID&
59 BluetoothGattDescriptor::ServerCharacteristicConfigurationUuid() {
60   return g_uuids.Get().uuids_[3];
61 }
62
63 // static
64 const BluetoothUUID&
65 BluetoothGattDescriptor::CharacteristicPresentationFormatUuid() {
66   return g_uuids.Get().uuids_[4];
67 }
68
69 // static
70 const BluetoothUUID&
71 BluetoothGattDescriptor::CharacteristicAggregateFormatUuid() {
72   return g_uuids.Get().uuids_[5];
73 }
74
75 BluetoothGattDescriptor::BluetoothGattDescriptor() {
76 }
77
78 BluetoothGattDescriptor::~BluetoothGattDescriptor() {
79 }
80
81 // static
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