sessiond: add tracer-agnostic trace hierarchy classes
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 12 May 2022 18:34:30 +0000 (14:34 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 13 Jun 2022 20:34:47 +0000 (16:34 -0400)
commit0220be14254fac4f7af642fd6630282b29776a70
treedf634e48101aa0ff0f557dd551d4a765bc0f6c15
parentf1ca0880a86b9fc2af3d246adcacfaf4554b2ecb
sessiond: add tracer-agnostic trace hierarchy classes

The session daemon receives the fields present in events from the
instrumented applications in the form of an array of lttng_ust_ctl_field
structures and uses them directly in a number of code paths.

This makes it impossible to extend the structures which makes a number of
features harder to implement than they should be.

The session daemon also implements various CTF concepts (clock, trace,
event, stream classes) as part of various structures defined under
`ust_registry*`. This makes it hard to isolate which attributes are
"internal" and which are visible to the external world through the
traces.

Tracer-agnostic trace hierachy classes are introduced under the
lttng::sessiond::trace namespace. Those classes don't cover the full
functionality of CTF: they expose what the tracers can currently
express.

The top-level elements of the trace hierarchy -- trace, event, stream,
clock classes -- are visited using the trace_class_visitor interface.

Seperate field and type visitor interfaces are used to make it easier to
visit this subset of the trace hierarchy. This will be useful to
implement the listing of event fields through liblttng-ctl, for example.

In the short term, these classes will be used to implement the
serialization of the layout descriptions of CTF 1.8 and 2.

Change-Id: I6d99f0ec93082259bf64434c440a720ed9a49bf8
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/Makefile.am
src/bin/lttng-sessiond/clock-class.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/clock-class.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/event-class.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/event-class.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/field.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/field.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/stream-class.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/stream-class.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/trace-class.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/trace-class.hpp [new file with mode: 0644]
This page took 0.025788 seconds and 4 git commands to generate.