Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(132)

Side by Side Diff: device/bluetooth/bluez/bluetooth_service_attribute_value_bluez.h

Issue 2084463002: BlueZ + DBus implementations of create/remove service record functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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 #ifndef DEVICE_BLUETOOTH_BLUEZ_BLUETOOTH_SERVICE_ATTRIBUTE_VALUE_BLUEZ_H_
6 #define DEVICE_BLUETOOTH_BLUEZ_BLUETOOTH_SERVICE_ATTRIBUTE_VALUE_BLUEZ_H_
7
8 #include <cstddef>
9 #include <memory>
10 #include <vector>
11
12 #include "base/values.h"
13 #include "device/bluetooth/bluetooth_export.h"
14
15 namespace bluez {
16
17 // This class contains a Bluetooth service attribute. A service attribute is
18 // defined by the following fields,
19 // type: This is the type of the attribute. Along with being any of the
20 // fixed types, an attribute can also be of type sequence, which means
21 // that it contains an array of other attributes.
22 // size: This is the size of the attribute. This can be variable for each type.
23 // For example, a UUID can have the sizes, 2, 4 or 16 bytes.
24 // value: This is the raw value of the attribute. For example, for a UUID, it
25 // will be the string representation of the UUID. For a sequence, it
26 // will be an array of other attributes.
27 class DEVICE_BLUETOOTH_EXPORT BluetoothServiceAttributeValueBlueZ {
28 public:
29 enum Type { NULLTYPE, UINT, INT, UUID, STRING, BOOL, SEQUENCE, URL };
30
31 using Sequence = std::vector<BluetoothServiceAttributeValueBlueZ>;
32
33 BluetoothServiceAttributeValueBlueZ(Type type,
34 size_t size,
35 std::unique_ptr<base::Value> value);
36 BluetoothServiceAttributeValueBlueZ(std::unique_ptr<Sequence> sequence);
37 BluetoothServiceAttributeValueBlueZ(
38 const BluetoothServiceAttributeValueBlueZ& attribute);
39 BluetoothServiceAttributeValueBlueZ operator=(
40 const BluetoothServiceAttributeValueBlueZ& attribute);
41 ~BluetoothServiceAttributeValueBlueZ();
42
43 Type type() const { return type_; }
44 size_t size() const { return size_; }
45 const Sequence& sequence() const { return *sequence_.get(); }
46 const base::Value& value() const { return *value_.get(); }
47
48 private:
49 Type type_;
50 size_t size_;
51 std::unique_ptr<base::Value> value_;
52 std::unique_ptr<Sequence> sequence_;
53 };
54
55 } // namespace bluez
56
57 #endif // DEVICE_BLUETOOTH_BLUEZ_BLUETOOTH_SERVICE_ATTRIBUTE_VALUE_BLUEZ_H_
OLDNEW
« no previous file with comments | « device/bluetooth/bluez/bluetooth_adapter_bluez.cc ('k') | device/bluetooth/bluez/bluetooth_service_attribute_value_bluez.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698