Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
Loading...
Searching...
No Matches
diagnostics.hpp File Reference
#include "aria/abi/export.hpp"
#include "aria/error.hpp"
#include "aria/validation_key.hpp"
#include <atomic>
#include <chrono>
#include <concepts>
#include <cstdint>
#include <functional>
#include <memory>
#include <mutex>
#include <optional>
#include <ostream>
#include <string>
#include <string_view>
#include <utility>
#include <variant>
#include <vector>
Include dependency graph for diagnostics.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  aria::trace::Reactive
struct  aria::trace::Async
 Async lifecycle. More...
struct  aria::trace::Binding
 Binding events. More...
struct  aria::trace::Command
 Synchronous Command<Args...> events. More...
struct  aria::trace::Validation
 Validation events. More...
struct  aria::trace::List
 Observable-list mutation. More...
struct  aria::TraceEvent
 One trace event. More...
class  aria::ScopedTraceSink
 Installs a sink for the lifetime of the scope, restoring whatever was previously installed (possibly nothing) on destruction. More...

Namespaces

namespace  aria
namespace  aria::trace

Typedefs

using aria::TracePayload
 Heterogeneous payload. Order matches TraceCategory.
using aria::TraceSink = std::function<void(const TraceEvent&)>
 User-facing sink shape: a callable that receives every published event.

Enumerations

enum class  aria::TraceCategory : std::uint8_t {
  aria::Reactive = 0 , aria::Async = 1 , aria::Binding = 2 , aria::Command = 3 ,
  aria::Validation = 4 , aria::List = 5
}
 Coarse subsystem label. More...
enum class  aria::trace::ReactivePhase : std::uint8_t {
  aria::trace::FlushBegin = 0 , aria::trace::RoundBegin = 1 , aria::trace::Pull = 2 , aria::trace::SkipClean = 3 ,
  aria::trace::Recomputed = 4 , aria::trace::RoundEnd = 5 , aria::trace::FlushEnd = 6
}
 Reactive flush phases. More...

Functions

std::string_view aria::to_string (TraceCategory c) noexcept
void aria::install_trace_sink (TraceSink sink)
 Install (or replace) the global sink.
void aria::clear_trace_sink () noexcept
 Tear down the global sink.
bool aria::has_trace_sink () noexcept
 True iff a sink is currently installed.
void aria::publish_trace_unchecked (const TraceEvent &event) noexcept
 Publish an already-built event using one owning sink snapshot.
void aria::publish_trace (const TraceEvent &event) noexcept
 Publish an already-built event.
template<detail::TracePayloadType Payload>
void aria::publish_trace_unchecked (TraceCategory category, Payload payload, std::optional<::aria::Error > error=std::nullopt)
 Build an event after taking one owning sink snapshot.
template<detail::TracePayloadType Payload>
void aria::publish_trace (TraceCategory category, Payload payload, std::optional<::aria::Error > error=std::nullopt)
 Convenience form for callers that already have a payload.