MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Journal::Archivist::Impl Class Reference
+ Collaboration diagram for MayaFlux::Journal::Archivist::Impl:

Public Member Functions

 Impl ()
 
 ~Impl ()
 
void init ()
 
void shutdown ()
 
void scribe (const JournalEntry &entry)
 
void scribe_rt (Severity severity, Component component, Context context, std::string_view message, std::source_location location)
 
void add_sink (std::unique_ptr< Sink > sink)
 
void clear_sinks ()
 
void set_min_severity (Severity sev)
 
void set_component_filter (Component comp, bool enabled)
 

Static Public Attributes

static constexpr size_t RING_BUFFER_SIZE = 8192
 

Private Member Functions

bool should_log (Severity severity, Component component) const
 
void write_to_sinks (const JournalEntry &entry)
 
void write_to_sinks (const RealtimeEntry &entry)
 
void start_worker ()
 
void stop_worker ()
 
void worker_loop ()
 
void drain_ring_buffer ()
 

Static Private Member Functions

static void write_to_console (const JournalEntry &entry)
 
static void write_to_console (const RealtimeEntry &entry)
 

Private Attributes

std::vector< std::unique_ptr< Sink > > m_sinks
 
std::mutex m_mutex
 
std::atomic< Severitym_min_severity
 
std::array< bool, magic_enum::enum_count< Component >()> m_component_filters {}
 
bool m_initialized {}
 
RingBuffer< RealtimeEntry, RING_BUFFER_SIZEm_ring_buffer
 
std::atomic< bool > m_worker_running
 
std::thread m_worker_thread
 
std::atomic< uint64_t > m_dropped_messages { 0 }
 
std::atomic< bool > m_shutdown_in_progress
 

Detailed Description

Definition at line 12 of file Archivist.cpp.


The documentation for this class was generated from the following file: