2 * Copyright (C) 2022 Jérémie Galarneau <jeremie.galarneau@efficios.com>
4 * SPDX-License-Identifier: GPL-2.0-only
9 #include "ust-registry-session-pid.hpp"
11 #include <common/exception.hpp>
12 #include <lttng/trace-format-descriptor-internal.hpp>
14 namespace lst
= lttng::sessiond::trace
;
15 namespace lsu
= lttng::sessiond::ust
;
17 lsu::registry_session_per_pid::registry_session_per_pid(const struct ust_app
& app
,
18 const struct lst::abi
& in_abi
,
21 const char *root_shm_path
,
26 const lttng::trace_format_descriptor
& trace_format
) :
27 registry_session
{in_abi
, major
, minor
, root_shm_path
, shm_path
, euid
, egid
, tracing_id
,
29 _tracer_patch_level_version
{app
.version
.patchlevel
},
32 _app_creation_time
{app
.registration_time
}
34 lttng::pthread::lock_guard
registry_lock(_lock
);
38 lttng_buffer_type
lsu::registry_session_per_pid::get_buffering_scheme() const noexcept
40 return LTTNG_BUFFER_PER_PID
;
43 void lsu::registry_session_per_pid::accept(lst::trace_class_environment_visitor
& visitor
) const
45 registry_session::accept(visitor
);
46 visitor
.visit(lst::environment_field
<int64_t>("tracer_buffering_id", _vpid
));
47 visitor
.visit(lst::environment_field
<int64_t>(
48 "tracer_patchlevel", _tracer_patch_level_version
));
49 visitor
.visit(lst::environment_field
<int64_t>("vpid", _vpid
));
50 visitor
.visit(lst::environment_field
<std::string
>("procname", _procname
));
51 visitor
.visit(lst::environment_field
<std::string
>(
52 "vpid_datetime", lttng::utils::time_to_iso8601_str(_app_creation_time
)));