|  | // Copyright 2019 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | library fuchsia.bluetooth.le; | 
|  |  | 
|  | using fuchsia.bluetooth as bt; | 
|  |  | 
|  | /// Represents a Bluetooth Low Energy peer that may act in the broadcaster, peripheral, or central | 
|  | /// role. The peer's role depends on whether it is obtained from the Central or Peripheral protocol. | 
|  | table Peer { | 
|  | /// Uniquely identifies this peer on the current system. | 
|  | /// | 
|  | /// This field is always present. | 
|  | 1: bt.PeerId id; | 
|  |  | 
|  | /// Whether or not this peer is connectable. Non-connectable peers are typically in the LE | 
|  | /// broadcaster role. | 
|  | /// | 
|  | /// This field is always present. | 
|  | 2: bool connectable; | 
|  |  | 
|  | /// The last observed RSSI of this peer. | 
|  | 3: int8 rssi; | 
|  |  | 
|  | /// Advertising and scan response data broadcast by this peer. Present in broadcasters and | 
|  | /// peripherals. | 
|  | 4: AdvertisingData advertising_data; | 
|  | }; | 
|  |  | 
|  | /// Protocol that represents the connection to a peer. This can be used to interact with GATT | 
|  | /// services and establish L2CAP channels. | 
|  | protocol Connection { | 
|  | // TODO(armansito): Introduce function to obtain gatt.Client handle when transitioning the | 
|  | // Central protocol. | 
|  | }; |