LogIt++
Header-only, macro-first C++ logging library
Loading...
Searching...
No Matches
logit::detail::CompressionWorker Class Reference

Background worker performing asynchronous compression. More...

#include <CompressionWorker.hpp>

Public Member Functions

 CompressionWorker (CompressType type, int level, std::string external_cmd)
 Create worker thread.
 
 ~CompressionWorker ()
 Stop worker thread and finish pending tasks.
 
void enqueue (std::string path)
 Enqueue a file for compression.
 
void wait ()
 Wait until all queued files are processed.
 

Private Member Functions

void run ()
 Worker loop processing queued files.
 

Private Attributes

CompressType m_type
 
int m_level
 
std::string m_external_cmd
 
std::queue< std::string > m_q
 
std::thread m_thread
 
std::mutex m_mx
 
std::condition_variable m_cv
 
std::condition_variable m_cv_idle
 
bool m_stop = false
 
bool m_busy = false
 

Detailed Description

Background worker performing asynchronous compression.

Definition at line 39 of file CompressionWorker.hpp.

Constructor & Destructor Documentation

◆ CompressionWorker()

logit::detail::CompressionWorker::CompressionWorker ( CompressType type,
int level,
std::string external_cmd )
inline

Create worker thread.

Parameters
typeCompression algorithm.
levelCompression level.
external_cmdExternal command template.

Definition at line 203 of file CompressionWorker.hpp.

◆ ~CompressionWorker()

logit::detail::CompressionWorker::~CompressionWorker ( )
inline

Stop worker thread and finish pending tasks.

Definition at line 212 of file CompressionWorker.hpp.

Member Function Documentation

◆ enqueue()

void logit::detail::CompressionWorker::enqueue ( std::string path)
inline

Enqueue a file for compression.

Parameters
pathPath to file.

Definition at line 221 of file CompressionWorker.hpp.

◆ run()

void logit::detail::CompressionWorker::run ( )
inlineprivate

Worker loop processing queued files.

Definition at line 232 of file CompressionWorker.hpp.

◆ wait()

void logit::detail::CompressionWorker::wait ( )
inline

Wait until all queued files are processed.

Definition at line 227 of file CompressionWorker.hpp.

Member Data Documentation

◆ m_busy

bool logit::detail::CompressionWorker::m_busy = false
private

Definition at line 72 of file CompressionWorker.hpp.

◆ m_cv

std::condition_variable logit::detail::CompressionWorker::m_cv
private

Definition at line 69 of file CompressionWorker.hpp.

◆ m_cv_idle

std::condition_variable logit::detail::CompressionWorker::m_cv_idle
private

Definition at line 70 of file CompressionWorker.hpp.

◆ m_external_cmd

std::string logit::detail::CompressionWorker::m_external_cmd
private

Definition at line 65 of file CompressionWorker.hpp.

◆ m_level

int logit::detail::CompressionWorker::m_level
private

Definition at line 64 of file CompressionWorker.hpp.

◆ m_mx

std::mutex logit::detail::CompressionWorker::m_mx
private

Definition at line 68 of file CompressionWorker.hpp.

◆ m_q

std::queue<std::string> logit::detail::CompressionWorker::m_q
private

Definition at line 66 of file CompressionWorker.hpp.

◆ m_stop

bool logit::detail::CompressionWorker::m_stop = false
private

Definition at line 71 of file CompressionWorker.hpp.

◆ m_thread

std::thread logit::detail::CompressionWorker::m_thread
private

Definition at line 67 of file CompressionWorker.hpp.

◆ m_type

CompressType logit::detail::CompressionWorker::m_type
private

Definition at line 63 of file CompressionWorker.hpp.


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