blob: 2f3d6a4d4af55a82a2fd49450661898097652759 [file] [log] [blame]
// Copyright 2022 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.tracing.perfetto;
using zx;
/// Interface for creating connections between Perfetto "Consumers" and
/// a shared Perfetto service.
/// To learn more about Perfetto, see: https://www.perfetto.dev/docs/
/// and https://perfetto.dev/docs/concepts/service-model .
@discoverable
closed protocol ConsumerConnector {
/// Connects a Perfetto Consumer to the Perfetto backend. Both sides
/// will communicate over `producer_socket` using Perfetto's internal wire
/// format.
/// The lifetime of `consumer_socket` may outlive the connection lifetime
/// of ConsumerConnector.
/// Multiple producers may be connected simultaneously.
// TODO(https://fxbug.dev/42166474): Define error conditions and status codes.
strict ConnectConsumer(resource struct {
consumer_socket zx.Handle:SOCKET;
}) -> () error zx.Status;
};