8 #include "Arp/System/Commons/Logging.h" 9 #include "Arp/System/Core/Singleton.hxx" 10 #include "Arp/System/Commons/Logging.h" 11 #include "Arp/System/Commons/Runtime/SharedLibrary.hpp" 12 #include "Arp/System/Commons/Chrono/Timer.hpp" 16 namespace Arp {
namespace System {
namespace Ve
18 class ITraceControllerService;
21 namespace Arp {
namespace System {
namespace Commons {
namespace Diagnostics
37 typedef std::list<Arp::String> SessionList;
45 bool IsSessionDaemonAlive(
void)
const;
55 void LoadTracepointLibrary(
void);
65 void UnloadTracepointLibrary(
void);
81 SessionList ListSessions(
void);
114 bool TriggerSavingTraceOutputs(
const bool& stopTriggerSession);
122 bool IsSessionInSnapshotMode(
const Arp::String& session);
154 TraceController(
void);
157 TraceController(
const TraceController& arg) =
delete;
160 TraceController& operator=(
const TraceController& arg) =
delete;
163 ~TraceController(
void);
166 void RunTraceSavingTimer(
void);
168 bool RecordSessionSnapshot(
const Arp::String& session);
172 using ITraceControllerService = Arp::System::Ve::ITraceControllerService;
176 ITraceControllerService *pInstance;
187 Timer savingDelayTimer;
190 std::atomic_flag triggerSavingWorking = ATOMIC_FLAG_INIT;
192 bool tracepointLibLoaded;
High resolution timer for interval based executions.
Definition: Timer.hpp:53
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
The TraceController provides an Interface to manage and control the LTTng Tracing on the Control ...
Definition: TraceController.hpp:30
Definition: Loggable.hxx:18
This class implements the singleton pattern.
Definition: Singleton.hxx:24
High level API to enable work with dynamically loadable shared libraries.
Definition: SharedLibrary.hpp:19
Root namespace for the PLCnext API
System components used by the System, Device, Plc or Io domains.
Namespace for time related classes