lintel 0.2.0
Loading...
Searching...
No Matches
ProcessInfoDto.h
Go to the documentation of this file.
1#ifndef LINTEL_PROCESSINFODTO_H
2#define LINTEL_PROCESSINFODTO_H
3
4#include <memory>
5#include <optional>
6#include <string>
7
12
13namespace lintel {
16{
17private:
19 std::string m_id;
21 std::filesystem::path m_path;
23 std::vector<std::string> m_args;
25 bool m_autoRestart;
27 int32_t m_restarts;
29 int32_t m_maxAutoRestarts;
31 lintel::ProcessId m_processId;
33 bool m_isRunning;
35 int32_t m_exitCode;
37 bool m_exitCodeValid = true;
39 std::string m_groupName;
41 std::string m_groupId;
43 std::optional<int64_t> m_uptimeSeconds;
45 std::optional<double> m_cpuPercent;
47 std::optional<uint64_t> m_memoryBytes;
49 bool m_resourceDataValid = false;
50
52 static struct Shapes
53 {
54 const char *const ID = "id";
55 const char *const PATH = "path";
56 const char *const ARG = "arg";
57 const char *const ARGS = "args";
58 const char *const AUTO_RESTART = "auto_restart";
59 const char *const RESTARTS = "restarts";
60 const char *const MAX_RESTARTS = "max_restarts";
61 const char *const PROCESS_ID = "process_id";
62 const char *const RUNS = "runs";
63 const char *const EXIT_CODE = "exit_code";
64 const char *const EXIT_CODE_VALID = "exit_code_valid";
65 const char *const GROUP_NAME = "group_name";
66 const char *const GROUP_ID = "group_id";
67 const char *const UPTIME_SECONDS = "uptime_seconds";
68 const char *const CPU_PERCENT = "cpu_percent";
69 const char *const MEMORY_BYTES = "memory_bytes";
70 const char *const RESOURCES_VALID = "resources_valid";
71 } m_shape;
72
73public:
77
79 ProcessInfoDto() = default;
80
83 [[nodiscard]] const std::string &getId() const;
84
87 [[nodiscard]] const std::filesystem::path &getPath() const;
88
91 [[nodiscard]] const std::vector<std::string> &getArgs() const;
92
95 [[nodiscard]] bool isAutoRestart() const;
96
100
104
108
111 [[nodiscard]] bool isRunning() const;
112
116
119 [[nodiscard]] bool isExitCodeValid() const;
120
123 [[nodiscard]] const std::string &getGroupName() const;
124
127 [[nodiscard]] const std::string &getGroupId() const;
128
131 [[nodiscard]] std::optional<int64_t> getUptimeSeconds() const;
132
135 [[nodiscard]] std::optional<double> getCpuPercent() const;
136
139 [[nodiscard]] std::optional<uint64_t> getMemoryBytes() const;
140
144
147 void serialize(rapidjson::Writer<rapidjson::StringBuffer> *writer) const override;
148
152 bool deserialize(const rapidjson::Value &obj) override;
153};
154
155}// namespace lintel
156#endif// LINTEL_PROCESSINFODTO_H
Definition JsonSerializable.h:17
Definition ProcessInfoDto.h:16
int32_t getMaxAutoRestarts() const
bool isResourceDataValid() const
lintel::ProcessId getProcessId() const
bool isAutoRestart() const
int32_t getExitCode() const
int32_t getRestarts() const
const std::string & getGroupId() const
std::optional< double > getCpuPercent() const
std::optional< uint64_t > getMemoryBytes() const
const std::filesystem::path & getPath() const
std::optional< int64_t > getUptimeSeconds() const
const std::string & getGroupName() const
const std::vector< std::string > & getArgs() const
void serialize(rapidjson::Writer< rapidjson::StringBuffer > *writer) const override
const std::string & getId() const
bool isExitCodeValid() const
bool isRunning() const
bool deserialize(const rapidjson::Value &obj) override
ProcessInfoDto(const ProcessInfo &processInfo)
Definition ProcessInfo.h:13
Definition BaseFeature.h:6
std::int64_t ProcessId
Definition Platform.h:33
constexpr std::string_view type_name()
Definition TypeName.h:9