sessiond: transition from lttng-ust to tracer agnostic API
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 13 Jun 2022 16:01:21 +0000 (12:01 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 13 Jun 2022 20:34:47 +0000 (16:34 -0400)
commitd7bfb9b0fa35679d3e728b9165699d9faf905539
treeebfffcb26b65fecf0d7f3c67ae7ac10df9f9e7c4
parent0220be14254fac4f7af642fd6630282b29776a70
sessiond: transition from lttng-ust to tracer agnostic API

Refactor the session daemon's user space tracer management to use the
tracer-agnostic trace hierarchy description API. Since the API
introduced under lttng::sessiond::trace is closer to idiomatic C++,
some changes are needed to make use of it.

The biggest changes make the ust_registry* structures inherit from the
trace descriptions classes (trace_class, stream_class, event_class,
clock_class). This effectively isolates the members of the
`ust_registry` structures that describe their corresponding CTF class
to a base class and leaves only the implementation guts in the
`ust_registry` objects (moved under lttng::sessiond::ust).

Since the generation of TSDL metadata directly used the lttng_ust_ctl
API, it is replaced by a new implementation that is based around a trace
class visitor that serializes the tracer agnostic trace description
objects.

The TSDL environment visitor is moved under the TSDL implementation
of the trace class visitor.

Some little changes are also made to the existing code to make it
exception-safe, as needed.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I6562ef12e85afa91780337e8c6fdbb13568d9ece
31 files changed:
src/bin/lttng-sessiond/Makefile.am
src/bin/lttng-sessiond/cmd.cpp
src/bin/lttng-sessiond/field.cpp
src/bin/lttng-sessiond/field.hpp
src/bin/lttng-sessiond/session.hpp
src/bin/lttng-sessiond/trace-ust.cpp
src/bin/lttng-sessiond/trace-ust.hpp
src/bin/lttng-sessiond/tsdl-trace-class-visitor.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/tsdl-trace-class-visitor.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-app.cpp
src/bin/lttng-sessiond/ust-app.hpp
src/bin/lttng-sessiond/ust-clock-class.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-clock-class.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-clock.cpp [deleted file]
src/bin/lttng-sessiond/ust-clock.hpp [deleted file]
src/bin/lttng-sessiond/ust-consumer.cpp
src/bin/lttng-sessiond/ust-field-convert.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-field-convert.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-field-utils.cpp [deleted file]
src/bin/lttng-sessiond/ust-field-utils.hpp [deleted file]
src/bin/lttng-sessiond/ust-metadata.cpp
src/bin/lttng-sessiond/ust-registry-channel.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-registry-channel.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-registry-event.cpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-registry-event.hpp [new file with mode: 0644]
src/bin/lttng-sessiond/ust-registry-session-pid.cpp
src/bin/lttng-sessiond/ust-registry-session-uid.cpp
src/bin/lttng-sessiond/ust-registry-session.cpp
src/bin/lttng-sessiond/ust-registry.cpp
src/bin/lttng-sessiond/ust-registry.hpp
src/common/urcu.hpp
This page took 0.029543 seconds and 4 git commands to generate.