chromium/chromeos/components/sensors/mojom/cros_sensor_service.mojom

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

// Next min version: 1

// NOTE: This mojom exists in two places and must be kept in sync:
//       Chromium:  //chromeos/components/sensors/mojom/
//       Chrome OS: src/platform2/iioservice/mojo/
//       Note: Other repos downstream of Chromium might also use this mojom.
// Example: A backwards-compatible mojom change (and corresponding
// implementation change) can be made in Chrome OS first, then replicated to the
// clients (Chromium, other downstream repos) later.

module chromeos.sensors.mojom;

// NOTE: The base directory for 'import' statements is expected to differ
//       between Chromium and Chrome OS versions of this file.
import "chromeos/components/sensors/mojom/sensor.mojom";

// The CrOS sensor HAL Mojo server.
//
// Next method ID: 1
interface SensorHalServer {
  // A caller calls CreateChannel to create a new Mojo channel to the sensor
  // HAL adapter.  Upon successfully binding of |sensor_context_request|, the
  // caller will have an established Mojo channel to the sensor HAL adapter
  // process.
  CreateChannel@0(pending_receiver<SensorService> sensor_service_request);
};

// The CrOS sensor HAL Mojo client.
//
// Next method ID: 1
[Stable, Uuid="4ecd2e06-78e9-4734-8241-9fd14039d91c"]
interface SensorHalClient {
  // A caller calls SetUpChannel to dispatch the established Mojo channel
  // |sensor_context_ptr| to the client.  The SensorHalClient can create a
  // Mojo channel to the sensor HAL adapter process with |sensor_context_ptr|.
  // SetUpChannel may be called multiple times.  In cases such as the
  // SensorHalServer which holds the original Mojo channel crashes,
  // SensorHalDispatcher will call SetUpChannel again once a new SensorHalServer
  // reconnects.
  SetUpChannel@0(pending_remote<SensorService> sensor_service_ptr);
};