#include <ProcMon.hpp>
Classes | |
| struct | CacheEntry |
Public Member Functions | |
| std::optional< bsc::model::ProcessInfo > | inspect (std::uint32_t pid, bool checksums=false) const |
| std::optional< bsc::model::ProcessInfo > | cached (std::uint32_t pid, bool allow_recent_exit=true) const |
| std::vector< bsc::model::ProcessInfo > | recent_candidates (std::uint32_t uid, std::chrono::milliseconds max_age=std::chrono::milliseconds(5000), std::size_t limit=8) const |
| std::vector< bsc::model::ProcessInfo > | recent_candidates_any (std::chrono::milliseconds max_age=std::chrono::milliseconds(1500), std::size_t limit=8) const |
| void | cache_process (const bsc::model::ProcessInfo &info) const |
| void | invalidate (std::uint32_t pid) const |
| void | note_fork (std::uint32_t child_pid, std::uint32_t parent_pid) const |
| void | note_exec (std::uint32_t pid, bool checksums=false) const |
| void | note_exit (std::uint32_t pid) const |
Static Private Member Functions | |
| static std::optional< bsc::model::ProcessInfo > | inspect_procfs (std::uint32_t pid, bool checksums) |
Private Attributes | |
| std::mutex | cache_mutex_ |
| std::unordered_map< std::uint32_t, CacheEntry > | cache_ |
| std::unordered_map< std::uint32_t, CacheEntry > | exited_ |
Definition at line 13 of file ProcMon.hpp.
| void bsc::proc::ProcMon::cache_process | ( | const bsc::model::ProcessInfo & | info | ) | const |
Definition at line 227 of file ProcMon.cpp.
References cache_, cache_mutex_, bsc::model::ProcessInfo::checksums, exited_, and bsc::model::ProcessInfo::pid.
Referenced by note_exec().
| std::optional< bsc::model::ProcessInfo > bsc::proc::ProcMon::cached | ( | std::uint32_t | pid, |
| bool | allow_recent_exit = true ) const |
Definition at line 122 of file ProcMon.cpp.
References cache_, cache_mutex_, and exited_.
Referenced by inspect().
| std::optional< bsc::model::ProcessInfo > bsc::proc::ProcMon::inspect | ( | std::uint32_t | pid, |
| bool | checksums = false ) const |
Definition at line 192 of file ProcMon.cpp.
References cache_, cache_mutex_, cached(), exited_, bsc::proc::ProcMon::CacheEntry::has_checksums, bsc::proc::ProcMon::CacheEntry::info, inspect_procfs(), invalidate(), and bsc::proc::ProcMon::CacheEntry::updated_at.
|
staticprivate |
Definition at line 66 of file ProcMon.cpp.
References bsc::model::ProcessInfo::args, bsc::model::ProcessInfo::checksums, bsc::model::ProcessInfo::comm, bsc::model::ProcessInfo::cwd, bsc::model::ProcessInfo::env, bsc::model::ProcessInfo::path, bsc::model::ProcessInfo::pid, bsc::model::ProcessInfo::ppid, bsc::model::ProcessInfo::process_tree, sha256_file(), and bsc::model::ProcessInfo::uid.
Referenced by inspect(), and note_exec().
| void bsc::proc::ProcMon::invalidate | ( | std::uint32_t | pid | ) | const |
Definition at line 236 of file ProcMon.cpp.
References cache_, cache_mutex_, and exited_.
Referenced by inspect().
| void bsc::proc::ProcMon::note_exec | ( | std::uint32_t | pid, |
| bool | checksums = false ) const |
Definition at line 257 of file ProcMon.cpp.
References cache_process(), and inspect_procfs().
| void bsc::proc::ProcMon::note_exit | ( | std::uint32_t | pid | ) | const |
Definition at line 263 of file ProcMon.cpp.
References cache_, cache_mutex_, and exited_.
| void bsc::proc::ProcMon::note_fork | ( | std::uint32_t | child_pid, |
| std::uint32_t | parent_pid ) const |
Definition at line 242 of file ProcMon.cpp.
References cache_, cache_mutex_, and exited_.
| std::vector< bsc::model::ProcessInfo > bsc::proc::ProcMon::recent_candidates | ( | std::uint32_t | uid, |
| std::chrono::milliseconds | max_age = std::chrono::milliseconds(5000), | ||
| std::size_t | limit = 8 ) const |
Definition at line 135 of file ProcMon.cpp.
References cache_, cache_mutex_, and exited_.
| std::vector< bsc::model::ProcessInfo > bsc::proc::ProcMon::recent_candidates_any | ( | std::chrono::milliseconds | max_age = std::chrono::milliseconds(1500), |
| std::size_t | limit = 8 ) const |
Definition at line 165 of file ProcMon.cpp.
References cache_, cache_mutex_, and exited_.
|
mutableprivate |
Definition at line 38 of file ProcMon.hpp.
Referenced by cache_process(), cached(), inspect(), invalidate(), note_exit(), note_fork(), recent_candidates(), and recent_candidates_any().
|
mutableprivate |
Definition at line 37 of file ProcMon.hpp.
Referenced by cache_process(), cached(), inspect(), invalidate(), note_exit(), note_fork(), recent_candidates(), and recent_candidates_any().
|
mutableprivate |
Definition at line 39 of file ProcMon.hpp.
Referenced by cache_process(), cached(), inspect(), invalidate(), note_exit(), note_fork(), recent_candidates(), and recent_candidates_any().