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>
13 namespace lst
= lttng::sessiond::trace
;
14 namespace lsu
= lttng::sessiond::ust
;
16 lsu::registry_session_per_pid::registry_session_per_pid(const struct ust_app
& app
,
17 const struct lst::abi
& in_abi
,
20 const char *root_shm_path
,
24 uint64_t tracing_id
) :
25 registry_session
{ in_abi
, major
, minor
, root_shm_path
, shm_path
, euid
, egid
, tracing_id
},
26 _tracer_patch_level_version
{ app
.version
.patchlevel
},
28 _procname
{ app
.name
},
29 _app_creation_time
{ app
.registration_time
}
31 lttng::pthread::lock_guard
registry_lock(_lock
);
35 lttng_buffer_type
lsu::registry_session_per_pid::buffering_scheme() const noexcept
37 return LTTNG_BUFFER_PER_PID
;
40 void lsu::registry_session_per_pid::accept(lst::trace_class_environment_visitor
& visitor
) const
42 registry_session::accept(visitor
);
43 visitor
.visit(lst::environment_field
<int64_t>("tracer_buffering_id", _vpid
));
45 lst::environment_field
<int64_t>("tracer_patchlevel", _tracer_patch_level_version
));
46 visitor
.visit(lst::environment_field
<int64_t>("vpid", _vpid
));
47 visitor
.visit(lst::environment_field
<std::string
>("procname", _procname
));
48 visitor
.visit(lst::environment_field
<std::string
>(
49 "vpid_datetime", lttng::utils::time_to_iso8601_str(_app_creation_time
)));