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.