blob: 1227988238f8eeb61aeecb97795984a96b73ddeb [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module tracing;
// To particate in the tracing ecosystem, implement the TraceController
// interface and connect to the tracing app. Then, when the controller's Start()
// function is called collect tracing data and pass it back via the
// TraceDataCollector interface up until Stop() is called.
[Client=TraceDataCollector]
interface TraceController {
StartTracing(string categories);
StopTracing();
};
[Client=TraceController]
interface TraceDataCollector {
DataCollected(string json);
EndTracing();
};
interface TraceCoordinator {
// Request tracing data from all connected TraceControllers to stream to
// |stream|.
Start(handle<data_pipe_producer> stream, string categories);
// Stop tracing and flush results to file.
StopAndFlush();
};