blob: 73ed405f04e855e1d5c2c9637b6e3c2851c7c97d [file] [log] [blame]
// Copyright 2020 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.device.instancelifecycle.test;
using zx;
protocol TestDevice {
/// Creates a new device that will return instance devices on open().
/// |lifecycle| will provide a stream of lifecycle events for the device itself.
CreateDevice(request<Lifecycle> lifecycle, zx.handle:CHANNEL? client_remote)
-> () error zx.status;
};
protocol InstanceDevice {
/// Get a stream of lifecycle events for this instance device
SubscribeToLifecycle(request<Lifecycle> lifecycle) -> () error zx.status;
/// Request the asynchronous removal of the main device, rather than the instance devices.
RemoveDevice();
};
protocol Lifecycle {
/// Sent when the Open hook is called.
-> OnOpen();
/// Sent when the Close hook is called.
-> OnClose();
/// Sent when the Unbind hook is called.
-> OnUnbind();
/// Sent when the Release hook is called.
-> OnRelease();
};