Apache Log4cxx  Version 2.0.0
Loading...
Searching...
No Matches
log4cxx::helpers::ThreadUtility Class Reference

#include <threadutility.h>

Public Types

using Period = std::chrono::milliseconds
using Manager = SingletonHolder<ThreadUtility>

Public Member Functions

 ~ThreadUtility ()
void configureFuncs (ThreadStartPre pre_start, ThreadStarted started, ThreadStartPost post_start)
 Configure the thread functions that log4cxx will use.
void preThreadBlockSignals ()
 A pre-start thread function that blocks signals to the new thread (if the system has pthreads).
void threadStartedNameThread (LogString threadName, std::thread::id thread_id, std::thread::native_handle_type native_handle)
 A thread_started function that names the thread using the appropriate system call.
void postThreadUnblockSignals ()
 A post-start thread function that unblocks signals that preThreadBlockSignals blocked before starting the thread.
template<class Function, class... Args>
std::thread createThread (LogString name, Function &&f, Args &&... args)
 Start a thread.
void addPeriodicTask (const LogString &taskName, std::function< void()> f, const Period &delay)
 Add the taskName periodic task.
bool hasPeriodicTask (const LogString &taskName)
 Has a taskName periodic task already been added?
bool isProcessingThreadActive () const
 Is the processing thread running?
void removeAllPeriodicTasks ()
 Remove all periodic tasks and stop the processing thread.
void removePeriodicTask (const LogString &taskName)
 Remove the taskName periodic task.
void removePeriodicTasksMatching (const LogString &namePrefix)
 Remove any periodic task matching namePrefix.
 LOG4CXX_PTR_DEF (Manager)

Static Public Member Functions

static ThreadUtility * instance ()
static void configure (ThreadConfigurationType type)
 Utility method for configuring the ThreadUtility in a standard configuration.
static ManagerPtr instancePtr ()

Friends

class SingletonHolder< ThreadUtility >

Member Typedef Documentation

◆ Manager

◆ Period

using log4cxx::helpers::ThreadUtility::Period = std::chrono::milliseconds

Constructor & Destructor Documentation

◆ ~ThreadUtility()

log4cxx::helpers::ThreadUtility::~ThreadUtility ( )

Member Function Documentation

◆ addPeriodicTask()

void log4cxx::helpers::ThreadUtility::addPeriodicTask ( const LogString & taskName,
std::function< void()> f,
const Period & delay )

Add the taskName periodic task.

◆ configure()

void log4cxx::helpers::ThreadUtility::configure ( ThreadConfigurationType type)
static

Utility method for configuring the ThreadUtility in a standard configuration.

◆ configureFuncs()

void log4cxx::helpers::ThreadUtility::configureFuncs ( ThreadStartPre pre_start,
ThreadStarted started,
ThreadStartPost post_start )

Configure the thread functions that log4cxx will use.

Note that setting any of these parameters to nullptr is valid, and simply results in the callback not being called.

◆ createThread()

template<class Function, class... Args>
std::thread log4cxx::helpers::ThreadUtility::createThread ( LogString name,
Function && f,
Args &&... args )
inline

Start a thread.

◆ hasPeriodicTask()

bool log4cxx::helpers::ThreadUtility::hasPeriodicTask ( const LogString & taskName)

Has a taskName periodic task already been added?

◆ instance()

ThreadUtility * log4cxx::helpers::ThreadUtility::instance ( )
static

◆ instancePtr()

ManagerPtr log4cxx::helpers::ThreadUtility::instancePtr ( )
static

◆ isProcessingThreadActive()

bool log4cxx::helpers::ThreadUtility::isProcessingThreadActive ( ) const

Is the processing thread running?

◆ LOG4CXX_PTR_DEF()

log4cxx::helpers::ThreadUtility::LOG4CXX_PTR_DEF ( Manager )

◆ postThreadUnblockSignals()

void log4cxx::helpers::ThreadUtility::postThreadUnblockSignals ( )

A post-start thread function that unblocks signals that preThreadBlockSignals blocked before starting the thread.

If the system does not have pthreads, does nothing.

◆ preThreadBlockSignals()

void log4cxx::helpers::ThreadUtility::preThreadBlockSignals ( )

A pre-start thread function that blocks signals to the new thread (if the system has pthreads).

If the system does not have pthreads, does nothing.

◆ removeAllPeriodicTasks()

void log4cxx::helpers::ThreadUtility::removeAllPeriodicTasks ( )

Remove all periodic tasks and stop the processing thread.

◆ removePeriodicTask()

void log4cxx::helpers::ThreadUtility::removePeriodicTask ( const LogString & taskName)

Remove the taskName periodic task.

◆ removePeriodicTasksMatching()

void log4cxx::helpers::ThreadUtility::removePeriodicTasksMatching ( const LogString & namePrefix)

Remove any periodic task matching namePrefix.

◆ threadStartedNameThread()

void log4cxx::helpers::ThreadUtility::threadStartedNameThread ( LogString threadName,
std::thread::id thread_id,
std::thread::native_handle_type native_handle )

A thread_started function that names the thread using the appropriate system call.

◆ SingletonHolder< ThreadUtility >

friend class SingletonHolder< ThreadUtility >
friend

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