1 // Copyright 2022 The Pigweed Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not 4 // use this file except in compliance with the License. You may obtain a copy of 5 // the License at 6 // 7 // https://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 // License for the specific language governing permissions and limitations under 13 // the License. 14 #pragma once 15 16 #include <optional> 17 18 #include "pw_bluetooth/types.h" 19 20 namespace pw::bluetooth { 21 22 // Information about a remote Bluetooth device. 23 struct Peer { 24 // Uniquely identifies this peer on the current system. 25 PeerId peer_id; 26 27 // Bluetooth device address that identifies this peer. 28 // NOTE: Clients should use the `peer_id` field to keep track of peers 29 // instead of their address. 30 Address address; 31 32 // The name of the peer, if known. 33 std::optional<DeviceName> name; 34 35 // The LE appearance property. Present if the appearance information was 36 // obtained over advertising and/or GATT. 37 std::optional<Appearance> appearance; 38 }; 39 40 } // namespace pw::bluetooth 41