14#ifndef VORTEX_BOOT_REPORT_H_
15#define VORTEX_BOOT_REPORT_H_
56 size_t CopyWarnings(
const char* out[],
size_t max)
const noexcept {
61 using List = std::array<const char*, kCapacity>;
63 bool Add(
List& list,
size_t& count,
const char* text)
noexcept {
64 if (text ==
nullptr) {
67 for (
size_t i = 0; i < count; ++i) {
68 if (list[i] == text) {
72 if (count >= list.size()) {
80 static size_t Copy(
const List& list,
size_t count,
const char* out[],
size_t max)
noexcept {
84 const size_t n = count < max ? count : max;
85 for (
size_t i = 0; i < n; ++i) {
Definition VortexBootReport.h:20
List warnings_
Definition VortexBootReport.h:92
const char * Warning(size_t i) const noexcept
Definition VortexBootReport.h:50
size_t WarningCount() const noexcept
Definition VortexBootReport.h:47
size_t failed_count_
Definition VortexBootReport.h:93
size_t CopyFailed(const char *out[], size_t max) const noexcept
Copy up to max failed-component names into out.
Definition VortexBootReport.h:53
std::array< const char *, kCapacity > List
Definition VortexBootReport.h:61
size_t FailedCount() const noexcept
Definition VortexBootReport.h:46
size_t CopyWarnings(const char *out[], size_t max) const noexcept
Copy up to max warnings into out.
Definition VortexBootReport.h:56
static size_t Copy(const List &list, size_t count, const char *out[], size_t max) noexcept
Definition VortexBootReport.h:80
bool AddFailed(const char *component) noexcept
Record a component that failed to initialise.
Definition VortexBootReport.h:37
List failed_
Definition VortexBootReport.h:91
size_t Dropped() const noexcept
Definition VortexBootReport.h:48
static constexpr size_t kCapacity
Capacity of each list (one entry per manager is enough for failures).
Definition VortexBootReport.h:23
size_t dropped_
Definition VortexBootReport.h:95
bool AddWarning(const char *text) noexcept
Record a warning (a degraded subsystem or an unusual condition that did not fail init).
Definition VortexBootReport.h:44
const char * Failed(size_t i) const noexcept
Definition VortexBootReport.h:49
size_t warning_count_
Definition VortexBootReport.h:94
bool Add(List &list, size_t &count, const char *text) noexcept
Definition VortexBootReport.h:63
void Clear() noexcept
Forget every entry (start of a new initialisation attempt).
Definition VortexBootReport.h:26