<br />

Library providing methods for connecting Perfetto clients to a system
tracing service.
Added: 8

## **PROTOCOLS**

## BufferReceiver

*Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=12)*

An interface for exchanging trace data buffers between Providers and the
system tracing service.

<br />

### ProvideBuffer

Sends a file to be used as a trace buffer.
The file must support writable mmap() access.
Added: 9

#### Request

| Name | Type |
|---|---|
| `buffer` | `client_end:https://fuchsia.dev/reference/fuchsia.io//https://fuchsia.dev/reference/fuchsia.io#File` |

#### Response

| Name | Type |
|---|---|
| `payload` | `https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#BufferReceiver_ProvideBuffer_Result` |

## ConsumerConnector

*Defined in [fuchsia.tracing.perfetto/consumer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/consumer.fidl;l=13)*

Interface for creating connections between Perfetto "Consumers" and
a shared Perfetto service.
To learn more about Perfetto, see: https://www.perfetto.dev/docs/
and https://perfetto.dev/docs/concepts/service-model .

<br />

### ConnectConsumer

Connects a Perfetto Consumer to the Perfetto backend. Both sides
will communicate over `producer_socket` using Perfetto's internal wire
format.
The lifetime of `consumer_socket` may outlive the connection lifetime
of ConsumerConnector.
Multiple producers may be connected simultaneously.

#### Request

| Name | Type |
|---|---|
| `consumer_socket` | `handle<socket>` |

#### Response

| Name | Type |
|---|---|
| `payload` | `https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#ConsumerConnector_ConnectConsumer_Result` |

## ProducerConnector

*Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=46)*

Interface for creating connections between Perfetto "Producers" and
a shared Perfetto service.
To learn more about Perfetto, see: https://www.perfetto.dev/docs/
and https://perfetto.dev/docs/concepts/service-model .

<br />

### ConnectProducer

Connects a Perfetto Producer to the Perfetto backend. Both sides
will communicate over `producer_socket` using Perfetto's internal
wire format "ProducerPort" (see
//third_party/perfetto/protos/perfetto/ipc/producer_port.proto).

`trace_buffer` either provides a buffer for communicating trace data
from the client, or an interface for receiving a buffer from the
server, depending on the client's needs.

The lifetime of `producer_socket` may outlive the connection lifetime
of ProducerConnector.
Multiple Producers may be connected simultaneously.

#### Request

| Name | Type |
|---|---|
| `producer_socket` | `handle<socket>` |
| `buffer` | `https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#TraceBuffer` |

#### Response

| Name | Type |
|---|---|
| `payload` | `https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#ProducerConnector_ConnectProducer_Result` |

## **STRUCTS**

### BufferReceiver_ProvideBuffer_Response

*Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=18)*

\<EMPTY\>

### ConsumerConnector_ConnectConsumer_Response

*Defined in [fuchsia.tracing.perfetto/consumer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/consumer.fidl;l=23)*

\<EMPTY\>

### ProducerConnector_ConnectProducer_Response

*Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=63)*

\<EMPTY\>

## **UNIONS**

### BufferReceiver_ProvideBuffer_Result [strict](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

*Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=18)*

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 1 | `response` | `https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#BufferReceiver_ProvideBuffer_Response` |   |
| ### 2 | `err` | `https://fuchsia.dev/reference/zx//https://fuchsia.dev/reference/zx#Status` |   |

<br />

### ConsumerConnector_ConnectConsumer_Result [strict](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

*Defined in [fuchsia.tracing.perfetto/consumer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/consumer.fidl;l=23)*

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 1 | `response` | `https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#ConsumerConnector_ConnectConsumer_Response` |   |
| ### 2 | `err` | `https://fuchsia.dev/reference/zx//https://fuchsia.dev/reference/zx#Status` |   |

<br />

### ProducerConnector_ConnectProducer_Result [strict](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible)

*Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=63)*

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 1 | `response` | `https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#ProducerConnector_ConnectProducer_Response` |   |
| ### 2 | `err` | `https://fuchsia.dev/reference/zx//https://fuchsia.dev/reference/zx#Status` |   |

<br />

### TraceBuffer [strict](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#strict-vs-flexible) [resource](https://fuchsia.dev/fuchsia-src/reference/fidl/language/language#value-vs-resource)

*Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=36)*

Specifies how the trace buffer should be exchanged.

| Ordinal | Variant | Type | Description |
|---|---|---|---|
| ### 1 | `from_server` | `client_end:https://fuchsia.dev/reference/fidl/fuchsia.tracing.perfetto#BufferReceiver` | Used to receive the trace buffer from the system tracing service. |

<br />