FOSSredder 0.5.0
Loading...
Searching...
No Matches
RepositoryDiagnostics.h
Go to the documentation of this file.
1
5
6#pragma once
7
10
11#include <memory>
12#include <string>
13#include <utility>
14
16
17inline void report(
18 const std::shared_ptr<core::ports::diagnostics::IErrorReporter>& reporter,
19 core::errors::ErrorSeverity severity, const char* origin,
20 std::string message, const char* code = core::errors::codes::GenericError,
21 core::errors::ErrorContext context = {}) {
22 if (!reporter)
23 return;
24
26 event.severity = severity;
27 event.origin = origin ? origin : std::string{};
28 event.message = std::move(message);
29 event.code = code ? code : core::errors::codes::GenericError;
30 event.context = std::move(context);
31 core::errors::report(reporter.get(), event);
32}
33
34} // namespace persistence::diagnostics
Provides shared helpers for reporting structured errors and exceptions.
Defines shared structured error codes.
constexpr const char * GenericError
Fallback code for generic structured errors.
ErrorSeverity
Severity level for structured error events.
Definition ErrorEvent.h:17
std::vector< std::pair< std::string, std::string > > ErrorContext
Key/value context attached to an error event.
Definition ErrorEvent.h:27
void report(core::ports::diagnostics::IErrorReporter *reporter, const ErrorEvent &event)
Report an already constructed error event when a reporter exists.
void report(const std::shared_ptr< core::ports::diagnostics::IErrorReporter > &reporter, core::errors::ErrorSeverity severity, const char *origin, std::string message, const char *code=core::errors::codes::GenericError, core::errors::ErrorContext context={})
Structured error payload sent through diagnostics ports.
Definition ErrorEvent.h:32
ErrorSeverity severity
Definition ErrorEvent.h:33