class Provider

Defined at line 797 of file fidling/gen/sdk/fidl/fuchsia.tracing.provider/fuchsia.tracing.provider/hlcpp/fuchsia/tracing/provider/cpp/fidl.h

The provider interface which applications must implement and register

with the `TraceRegistry` to participate in tracing.

See //zircon/system/ulib/trace-provider/ for a C++ implementation of

this interface which can easily be configured by an application.

Public Methods

void ~Provider ()
void Initialize (::fuchsia::tracing::provider::ProviderConfig config)

Initialize tracing and prepare for writing trace records for events in

the specified `categories` into `buffer` using `fifo` for signaling.

Tracing hasn't started yet, a `Start()` call is still required.

At most one trace can be active at a time. Subsequent `Initialize()`

requests received prior to a `Terminate()` call must be ignored.

void Start (::fuchsia::tracing::provider::StartOptions options)

Begin tracing.

If tracing has already started the provider must ignore the request.

There is no result. The provider must send a `TRACE_PROVIDER_STARTED`

packet on `fifo` to indicate success/failure of starting.

void Stop ()

Stop tracing.

If tracing has already stopped the provider must ignore the request.

Once the provider has finished writing any final events to the trace

buffer, it must send a `TRACE_PROVIDER_STOPPED` packet on `fifo`.

Note that multiple `Start,Stop` requests can be received between

`Initialize,Terminate`.

void Terminate ()

Terminate tracing.

Tracing is stopped first if not already stopped.

After tracing has fully terminated the provider must close both

`buffer` and `fifo` to indicate to the trace manager that tracing is

finished.

void GetKnownCategories (GetKnownCategoriesCallback callback)

Gets the trace categories that might be produced by this provider.