blob: 9ff1cf4295e5985ec93dffc14f6f7fb9c335c911 [file] [log] [blame] [view]
Primiano Tuccib8083732018-04-09 15:38:37 +01001# 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
9This 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 Adamsca770502018-08-20 18:04:27 -070020 - [service.h](/include/perfetto/tracing/core/tracing_service.h)
Primiano Tuccib8083732018-04-09 15:38:37 +010021- 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
27Other resources
28---------------
29* How we wrap our own IPC transport in Android: [/src/tracing/ipc](/src/tracing/ipc).