DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (dcc6d7a0dc00)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/.
 */

[CheckAnyPermissions="bluetooth"]
interface BluetoothGattServer : EventTarget
{
  [Cached, Pure]
  readonly attribute sequence<BluetoothGattService> services;

  // Fired when a remote device has been connected/disconnected
  attribute EventHandler  onconnectionstatechanged;

  // Fired when a remote BLE client send a read/write request
  attribute EventHandler  onattributereadreq;
  attribute EventHandler  onattributewritereq;

  /**
   * Connect/Disconnect to the remote BLE device with the target address.
   *
   * Promise will be rejected if the local GATT server is busy connecting or
   * disconnecting to other devices.
   */
  [NewObject]
  Promise<void> connect(DOMString address);
  [NewObject]
  Promise<void> disconnect(DOMString address);

  /**
   * Add a BLE service to the local GATT server.
   *
   * This API will be rejected if this service has been added to the GATT
   * server.
   */
  [NewObject]
  Promise<void> addService(BluetoothGattService service);

  /**
   * Remove a BLE service to the local GATT server.
   *
   * This API will be rejected if this service does not exist in the GATT
   * server.
   */
  [NewObject]
  Promise<void> removeService(BluetoothGattService service);

  /**
   * Notify the remote BLE device that the value of a characteristic has been
   * changed.
   */
  [NewObject]
  Promise<void> notifyCharacteristicChanged(
    DOMString address,
    BluetoothGattCharacteristic characteristic,
    boolean confirm);

  /**
   * Send a read/write response to a remote BLE client
   */
  [NewObject]
  Promise<void> sendResponse(
    DOMString address, unsigned short status, long requestId);
};