MayaFlux 0.5.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

void add_sink (std::unique_ptr< Sink > sink)
 
void clear_sinks ()
 
void drain_ring_buffer ()
 Drain all pending ring buffer entries to sinks or console.
 
 Impl ()
 
void init ()
 
void scribe (const JournalEntry &entry)
 
void scribe_rt (Severity severity, Component component, Context context, std::string_view message, std::source_location location)
 
void set_component_filter (Component comp, bool enabled)
 
void set_context_filter (Context ctx, bool enabled)
 
void set_min_severity (Severity sev)
 
void shutdown ()
 
 ~Impl ()
 

Static Public Attributes

static constexpr size_t RING_BUFFER_SIZE = 8192
 
static constexpr size_t RT_RING_BUFFER_SIZE = 4096
 

Private Member Functions

bool should_log (Severity severity, Component component, Context context) const
 
void start_worker ()
 
void worker_loop ()
 
void write_to_sinks (const RealtimeEntry &entry)
 

Static Private Member Functions

static void write_to_console (const RealtimeEntry &entry)
 

Private Attributes

std::atomic< bool > m_accepting_entries
 
std::array< std::atomic< bool >, magic_enum::enum_count< Component >()> m_component_filters {}
 
std::array< std::atomic< bool >, magic_enum::enum_count< Context >()> m_context_filters {}
 
std::atomic< uint64_t > m_dropped_messages { 0 }
 
std::atomic< bool > m_initialized
 
std::atomic< Severitym_min_severity
 
std::atomic_flag m_push_lock = ATOMIC_FLAG_INIT
 
Memory::LockFreeQueue< RealtimeEntry, RING_BUFFER_SIZEm_ring_buffer
 
Memory::MPSCQueue< RealtimeEntry, RT_RING_BUFFER_SIZEm_rt_ring_buffer
 
std::atomic< bool > m_shutdown_in_progress
 
std::vector< std::unique_ptr< Sink > > m_sinks
 
std::atomic< bool > m_worker_running
 
std::thread m_worker_thread
 

Detailed Description

Definition at line 15 of file Archivist.cpp.


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