pub enum ControllerRequest {
    InitializeTracing {
        config: TraceConfig,
        output: Socket,
        control_handle: ControllerControlHandle,
    },
    TerminateTracing {
        options: TerminateOptions,
        responder: ControllerTerminateTracingResponder,
    },
    StartTracing {
        options: StartOptions,
        responder: ControllerStartTracingResponder,
    },
    StopTracing {
        options: StopOptions,
        responder: ControllerStopTracingResponder,
    },
    GetProviders {
        responder: ControllerGetProvidersResponder,
    },
    GetKnownCategories {
        responder: ControllerGetKnownCategoriesResponder,
    },
    WatchAlert {
        responder: ControllerWatchAlertResponder,
    },
    _UnknownMethod {
        ordinal: u64,
        control_handle: ControllerControlHandle,
        method_type: MethodType,
    },
}
Expand description

The controller interface used by the trace tool to initialize/start/stop/terminate tracing.

The trace controller may lightly validate the structure of trace records as it copies them from trace buffers into the output. In particular, it may verify the size of each record header to ensure that the framing of trace records in the data stream is maintained.

The trace controller does not validate the contents of the trace records themselves. For example, it does not try to check argument lengths in events. This ensures that the trace format can be extended without needing to modify the trace controller.

Variants§

§

InitializeTracing

Requests to initialize tracing with the specified config.

A bad request will terminate the connection.

The trace controller emits trace data to output as a sequence of binary formatted trace records. Traces obtained from different providers are delimited by metadata records within the stream.

Fields

§output: Socket
§

TerminateTracing

Requests to terminate tracing.

If tracing has not yet stopped it is stopped first. If options.write_results is true, then the trace controller continues to transfer any remaining data to the output socket until finished, then closes the output.

§

StartTracing

Requests to start tracing with the specified options.

If tracing has already started then the request is ignored, except to send back an error code.

The trace controller acknowledges the request when all registered providers have been started or after TraceConfig.start_timeout_milliseconds milliseconds. One useful reason for the has-started acknowledgement is that the trace program can start a program to trace knowing that all the providers are started.

§

StopTracing

Requests to stop tracing.

If tracing has already stopped then this does nothing. Returning a result lets callers know when it’s ok to, for example, start tracing again.

§

GetProviders

Return the set of registered providers.

§

GetKnownCategories

§

WatchAlert

Returns the next alert when it arrives.

§

_UnknownMethod

An interaction was received which does not match any known method.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§ordinal: u64

Ordinal of the method that was called.

§method_type: MethodType

Implementations§

Trait Implementations§

source§

impl Debug for ControllerRequest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Encode<Ambiguous1> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T> Encode<Ambiguous2> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more