Primiano Tucci | b808373 | 2018-04-09 15:38:37 +0100 | [diff] [blame] | 1 | # Embedding Perfetto in your own project |
| 2 | |
| 3 | *** note |
| 4 | **This doc is WIP**, stay tuned |
| 5 | <!-- TODO(primiano): write embedder guide doc. --> |
| 6 | *** |
| 7 | |
| 8 | |
| 9 | This doc should: |
| 10 | - Contain tech details of the Producer(Endpoint), Consumer(Endpoint) and Service |
| 11 | interfaces. |
| 12 | - Explain how they are supposed to be wired up together, with or without |
| 13 | using an IPC transport. |
| 14 | - Explain the basic embedder requirements (e.g. [`TaskRunner`](/include/perfetto/base/task_runner.h)) |
| 15 | - Point out the relevant GN targets: |
| 16 | `//src/tracing`, `//src/tracing:ipc`, `//src/ipc`. |
| 17 | - Explain the API surface: |
| 18 | - [producer.h](/include/perfetto/tracing/core/producer.h) |
| 19 | - [consumer.h](/include/perfetto/tracing/core/consumer.h) |
Kweku Adams | ca77050 | 2018-08-20 18:04:27 -0700 | [diff] [blame] | 20 | - [service.h](/include/perfetto/tracing/core/tracing_service.h) |
Primiano Tucci | b808373 | 2018-04-09 15:38:37 +0100 | [diff] [blame] | 21 | - Explain the ABI surface: |
| 22 | - [shared_memory_abi.h](/include/perfetto/tracing/core/shared_memory_abi.h) |
| 23 | - IPC's [wire protocol](/src/ipc/wire_protocol.proto) (if used) |
| 24 | - The input [config protos](/protos/perfetto/config) |
| 25 | - The output [trace protos](/protos/perfetto/trace) |
| 26 | |
| 27 | Other resources |
| 28 | --------------- |
| 29 | * How we wrap our own IPC transport in Android: [/src/tracing/ipc](/src/tracing/ipc). |