template <>

class NaturalClientImpl

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

Public Methods

::fidl::internal::NaturalThenable< ::fuchsia_tracing_provider::ProviderV2::Start> Start (const ::fidl::Request< ::fuchsia_tracing_provider::ProviderV2::Start> & request)

Begin tracing.

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

::fidl::internal::NaturalThenable< ::fuchsia_tracing_provider::ProviderV2::Stop> 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 an `OnStopped()` event.

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

`Initialize,Terminate`.

::fidl::internal::NaturalThenable< ::fuchsia_tracing_provider::ProviderV2::Terminate> Terminate ()

Terminate tracing.

Tracing is stopped first if not already stopped.

::fidl::internal::NaturalThenable< ::fuchsia_tracing_provider::ProviderV2::GetKnownCategories> GetKnownCategories ()

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

::fit::result< ::fidl::OneWayError> Initialize (::fidl::Request< ::fuchsia_tracing_provider::ProviderV2::Initialize> request)

Initialize tracing and prepare for writing trace records for events in

the specified `categories` into `buffer`.

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.

::fit::result< ::fidl::OneWayError> NotifyBufferSaved (const ::fidl::Request< ::fuchsia_tracing_provider::ProviderV2::NotifyBufferSaved> & request)

A buffer has been saved (streaming mode only).

::fit::result< ::fidl::OneWayError> Flush ()

Requests the provider its buffer to be read out, regardless of it is

full or not.

Normally streaming mode only sends data once it has enough data to

require a buffer swap and data flush. This produces fewer, but larger

and bursty data transfers.

Some clients may want more regular smaller data transfers. These clients

may instead manually invoke Flush whenever they are ready for

data.