lintel 0.2.0
Loading...
Searching...
No Matches
ReadinessRegistry.h
Go to the documentation of this file.
1#ifndef LINTEL_READINESSREGISTRY_H
2#define LINTEL_READINESSREGISTRY_H
3
4#include <functional>
5#include <mutex>
6#include <string>
7#include <utility>
8#include <vector>
9
10namespace lintel {
34{
35public:
38 {
40 std::string m_name;
42 bool m_ready = false;
44 std::string m_detail;
45 };
46
50 using Check = std::function<bool(std::string &)>;
51
54
58 void registerCheck(std::string name, Check check);
59
61 void clear();
62
67 std::vector<CheckResult> run() const;
68
69private:
70 ReadinessRegistry() = default;
71
72 mutable std::mutex m_mutex;
73 std::vector<std::pair<std::string, Check>> m_checks;
74};
75}// namespace lintel
76#endif// LINTEL_READINESSREGISTRY_H
Definition ReadinessRegistry.h:34
std::function< bool(std::string &)> Check
Definition ReadinessRegistry.h:50
std::vector< CheckResult > run() const
static ReadinessRegistry & instance()
void registerCheck(std::string name, Check check)
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9
Definition ReadinessRegistry.h:38
bool m_ready
Definition ReadinessRegistry.h:42
std::string m_detail
Definition ReadinessRegistry.h:44
std::string m_name
Definition ReadinessRegistry.h:40