2 * Copyright (C) 2022 Jérémie Galarneau <jeremie.galarneau@efficios.com>
4 * SPDX-License-Identifier: GPL-2.0-only
9 #include "ust-registry.hpp"
11 #include <common/exception.hpp>
13 namespace lst
= lttng::sessiond::trace
;
15 ust_registry_session_per_pid::ust_registry_session_per_pid(const struct ust_app
& app
,
16 const struct lst::abi
& in_abi
,
19 const char *root_shm_path
,
23 uint64_t tracing_id
) :
24 ust_registry_session
{in_abi
, major
, minor
, root_shm_path
, shm_path
, euid
, egid
, tracing_id
},
25 _tracer_patch_level_version
{app
.version
.patchlevel
},
28 _app_creation_time
{app
.registration_time
}
30 lttng::pthread::lock_guard
registry_lock(_lock
);
34 lttng_buffer_type
ust_registry_session_per_pid::get_buffering_scheme() const noexcept
36 return LTTNG_BUFFER_PER_PID
;
39 void ust_registry_session_per_pid::_visit_environment(lst::trace_class_visitor
& visitor
) const
41 ust_registry_session::_visit_environment(visitor
);
42 visitor
.visit(lst::environment_field
<int64_t>("tracer_buffering_id", _vpid
));
43 visitor
.visit(lst::environment_field
<int64_t>(
44 "tracer_patchlevel", _tracer_patch_level_version
));
45 visitor
.visit(lst::environment_field
<int64_t>("vpid", _vpid
));
46 visitor
.visit(lst::environment_field
<std::string
>("procname", _procname
));
47 visitor
.visit(lst::environment_field
<std::string
>(
48 "vpid_datetime", lttng::utils::time_to_iso8601_str(_app_creation_time
)));