chromium/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_characteristic.idl

// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattcharacteristic

[
    Exposed=Window,
    ActiveScriptWrappable,
    RuntimeEnabled=WebBluetooth,
    SecureContext
] interface BluetoothRemoteGATTCharacteristic : EventTarget {
    [SameObject] readonly attribute BluetoothRemoteGATTService service;
    readonly attribute UUID uuid;
    readonly attribute BluetoothCharacteristicProperties properties;
    readonly attribute DataView? value;
    [RaisesException, CallWith=ScriptState, MeasureAs=WebBluetoothRemoteCharacteristicGetDescriptor] Promise<BluetoothRemoteGATTDescriptor> getDescriptor(BluetoothDescriptorUUID descriptor);
    [RaisesException, CallWith=ScriptState, MeasureAs=WebBluetoothRemoteCharacteristicGetDescriptors] Promise<sequence<BluetoothRemoteGATTDescriptor>> getDescriptors(optional BluetoothDescriptorUUID descriptor);
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRemoteCharacteristicReadValue] Promise<DataView> readValue();
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRemoteCharacteristicWriteValue] Promise<undefined> writeValue(BufferSource value);
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRemoteCharacteristicWriteValueWithResponse] Promise<undefined> writeValueWithResponse(BufferSource value);
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRemoteCharacteristicWriteValueWithoutResponse] Promise<undefined> writeValueWithoutResponse(BufferSource value);
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRemoteCharacteristicStartNotifications] Promise<BluetoothRemoteGATTCharacteristic> startNotifications();
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRemoteCharacteristicStopNotifications] Promise<BluetoothRemoteGATTCharacteristic> stopNotifications();

    // TODO(ortuno): Move this to CharacteristicEventHandlers.
    // http://crbug.com/537459
    attribute EventHandler oncharacteristicvaluechanged;
};