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

Side by Side Diff: device/bluetooth/public/interfaces/properties_struct_traits.h

Issue 2622393002: bluetooth: Add characteristic list to DeviceDetailsPage in internals page. (Closed)
Patch Set: Rename onExpand, add braces Created 3 years, 11 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 2017 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_PUBLIC_INTERFACES_PROPERTIES_STRUCT_TRAITS_H_
6 #define DEVICE_BLUETOOTH_PUBLIC_INTERFACES_PROPERTIES_STRUCT_TRAITS_H_
7
8 #include "device/bluetooth/bluetooth_gatt_characteristic.h"
9 #include "device/bluetooth/public/interfaces/device.mojom.h"
10
11 namespace mojo {
12
13 template <>
14 struct StructTraits<bluetooth::mojom::PropertiesDataView,
15 device::BluetoothGattCharacteristic::Properties> {
16 using Properties = device::BluetoothGattCharacteristic::Properties;
17 using Property = device::BluetoothGattCharacteristic::Property;
18
19 static bool broadcast(const Properties properties) {
20 return (properties & Property::PROPERTY_BROADCAST) > 0;
21 }
22
23 static bool read(const Properties properties) {
24 return (properties & Property::PROPERTY_READ) > 0;
25 }
26
27 static bool write_without_response(const Properties properties) {
28 return (properties & Property::PROPERTY_WRITE_WITHOUT_RESPONSE) > 0;
29 }
30
31 static bool write(const Properties properties) {
32 return (properties & Property::PROPERTY_WRITE) > 0;
33 }
34
35 static bool notify(const Properties properties) {
36 return (properties & Property::PROPERTY_NOTIFY) > 0;
37 }
38
39 static bool indicate(const Properties properties) {
40 return (properties & Property::PROPERTY_INDICATE) > 0;
41 }
42
43 static bool authenticated_signed_writes(const Properties properties) {
44 return (properties & Property::PROPERTY_AUTHENTICATED_SIGNED_WRITES) > 0;
45 }
46
47 static bool extended_properties(const Properties properties) {
48 return (properties & Property::PROPERTY_EXTENDED_PROPERTIES) > 0;
49 }
50
51 static bool reliable_write(const Properties properties) {
52 return (properties & Property::PROPERTY_RELIABLE_WRITE) > 0;
53 }
54
55 static bool writable_auxiliaries(const Properties properties) {
56 return (properties & Property::PROPERTY_WRITABLE_AUXILIARIES) > 0;
57 }
58
59 static bool read_encrypted(const Properties properties) {
60 return (properties & Property::PROPERTY_READ_ENCRYPTED) > 0;
61 }
62
63 static bool write_encrypted(const Properties properties) {
64 return (properties & Property::PROPERTY_WRITE_ENCRYPTED) > 0;
65 }
66
67 static bool read_encrypted_authenticated(const Properties properties) {
68 return (properties & Property::PROPERTY_READ_ENCRYPTED_AUTHENTICATED) > 0;
69 }
70
71 static bool write_encrypted_authenticated(const Properties properties) {
72 return (properties & Property::PROPERTY_WRITE_ENCRYPTED_AUTHENTICATED) > 0;
73 }
74
75 static bool Read(bluetooth::mojom::PropertiesDataView input,
76 Properties* output) {
dcheng 2017/01/18 00:17:08 Nit: please out-of-line
mbrunson 2017/01/18 22:04:24 Removed this completely. Using bitfield and enum f
77 uint32_t result = 0;
78
79 result |= input.broadcast() ? Property::PROPERTY_BROADCAST : 0;
80 result |= input.read() ? Property::PROPERTY_READ : 0;
81 result |= input.write_without_response()
82 ? Property::PROPERTY_WRITE_WITHOUT_RESPONSE
83 : 0;
84 result |= input.write() ? Property::PROPERTY_WRITE : 0;
85 result |= input.notify() ? Property::PROPERTY_NOTIFY : 0;
86 result |= input.indicate() ? Property::PROPERTY_INDICATE : 0;
87 result |= input.authenticated_signed_writes()
88 ? Property::PROPERTY_AUTHENTICATED_SIGNED_WRITES
89 : 0;
90 result |= input.extended_properties()
91 ? Property::PROPERTY_EXTENDED_PROPERTIES
92 : 0;
93 result |= input.reliable_write() ? Property::PROPERTY_RELIABLE_WRITE : 0;
94 result |= input.writable_auxiliaries()
95 ? Property::PROPERTY_WRITABLE_AUXILIARIES
96 : 0;
97 result |= input.read_encrypted() ? Property::PROPERTY_READ_ENCRYPTED : 0;
98 result |= input.write_encrypted() ? Property::PROPERTY_WRITE_ENCRYPTED : 0;
99 result |= input.read_encrypted_authenticated()
100 ? Property::PROPERTY_READ_ENCRYPTED_AUTHENTICATED
101 : 0;
102 result |= input.write_encrypted_authenticated()
103 ? Property::PROPERTY_WRITE_ENCRYPTED_AUTHENTICATED
104 : 0;
105
106 *output = result;
107 return true;
108 }
109 };
110
111 } // namespace mojo
112
113 #endif // DEVICE_BLUETOOTH_PUBLIC_INTERFACES_PROPERTIES_STRUCT_TRAITS_H_
OLDNEW
« no previous file with comments | « device/bluetooth/public/interfaces/properties.typemap ('k') | device/bluetooth/public/interfaces/typemaps.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698