MySQL 9.4.0
Source Code Documentation
mrs::database::BufferedLogger Class Referenceabstract

#include <metadata_logger.h>

Inheritance diagram for mrs::database::BufferedLogger:
[legend]

Public Types

using LogRecord = mysql_harness::logging::Record
 
using LogRecordBuffer = std::queue< LogRecord >
 

Public Member Functions

void log (const LogRecord &record)
 
virtual ~BufferedLogger ()
 

Protected Member Functions

virtual bool flush_records (LogRecordBuffer &records)=0
 
void start_flush_thread ()
 
void stop_flush_thread ()
 
void flush_thread_run ()
 
virtual size_t get_buffer_size () const =0
 
virtual std::chrono::seconds get_flush_interval () const =0
 

Protected Attributes

LogRecordBuffer buffered_records_
 
std::mutex mtx_
 
std::condition_variable buffer_not_full_cv_
 
std::condition_variable flush_thread_cv_
 
std::thread flush_thread_
 
bool flush_thread_is_running_ {false}
 
uint64_t dropped_logs_ {0}
 

Member Typedef Documentation

◆ LogRecord

◆ LogRecordBuffer

Constructor & Destructor Documentation

◆ ~BufferedLogger()

virtual mrs::database::BufferedLogger::~BufferedLogger ( )
inlinevirtual

Member Function Documentation

◆ flush_records()

virtual bool mrs::database::BufferedLogger::flush_records ( LogRecordBuffer records)
protectedpure virtual

◆ flush_thread_run()

void mrs::database::BufferedLogger::flush_thread_run ( )
protected

◆ get_buffer_size()

virtual size_t mrs::database::BufferedLogger::get_buffer_size ( ) const
protectedpure virtual

◆ get_flush_interval()

virtual std::chrono::seconds mrs::database::BufferedLogger::get_flush_interval ( ) const
protectedpure virtual

◆ log()

void mrs::database::BufferedLogger::log ( const LogRecord record)

◆ start_flush_thread()

void mrs::database::BufferedLogger::start_flush_thread ( )
protected

◆ stop_flush_thread()

void mrs::database::BufferedLogger::stop_flush_thread ( )
protected

Member Data Documentation

◆ buffer_not_full_cv_

std::condition_variable mrs::database::BufferedLogger::buffer_not_full_cv_
protected

◆ buffered_records_

LogRecordBuffer mrs::database::BufferedLogger::buffered_records_
protected

◆ dropped_logs_

uint64_t mrs::database::BufferedLogger::dropped_logs_ {0}
protected

◆ flush_thread_

std::thread mrs::database::BufferedLogger::flush_thread_
protected

◆ flush_thread_cv_

std::condition_variable mrs::database::BufferedLogger::flush_thread_cv_
protected

◆ flush_thread_is_running_

bool mrs::database::BufferedLogger::flush_thread_is_running_ {false}
protected

◆ mtx_

std::mutex mrs::database::BufferedLogger::mtx_
protected

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