// 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);
};