Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

#include <scheduler.h>

Public Types

typedef std::function< void(void)> Function
 

Public Member Functions

 CScheduler ()
 
 ~CScheduler ()
 
void schedule (Function f, boost::chrono::system_clock::time_point t=boost::chrono::system_clock::now())
 
void scheduleFromNow (Function f, int64_t deltaMilliSeconds)
 
void scheduleEvery (Function f, int64_t deltaMilliSeconds)
 
void serviceQueue ()
 
void stop (bool drain=false)
 
size_t getQueueInfo (boost::chrono::system_clock::time_point &first, boost::chrono::system_clock::time_point &last) const
 
bool AreThreadsServicingQueue () const
 

Private Member Functions

bool shouldStop () const
 

Private Attributes

std::multimap< boost::chrono::system_clock::time_point, FunctiontaskQueue
 
boost::condition_variable newTaskScheduled
 
boost::mutex newTaskMutex
 
int nThreadsServicingQueue
 
bool stopRequested
 
bool stopWhenEmpty
 

Detailed Description

Definition at line 37 of file scheduler.h.

Member Typedef Documentation

◆ Function

typedef std::function<void(void)> CScheduler::Function

Definition at line 43 of file scheduler.h.

Constructor & Destructor Documentation

◆ CScheduler()

CScheduler::CScheduler ( )

Definition at line 14 of file scheduler.cpp.

◆ ~CScheduler()

CScheduler::~CScheduler ( )

Definition at line 18 of file scheduler.cpp.

References nThreadsServicingQueue.

Member Function Documentation

◆ AreThreadsServicingQueue()

bool CScheduler::AreThreadsServicingQueue ( ) const

Definition at line 143 of file scheduler.cpp.

References newTaskMutex, and nThreadsServicingQueue.

Referenced by SingleThreadedSchedulerClient::EmptyQueue().

◆ getQueueInfo()

size_t CScheduler::getQueueInfo ( boost::chrono::system_clock::time_point &  first,
boost::chrono::system_clock::time_point &  last 
) const

Definition at line 131 of file scheduler.cpp.

References newTaskMutex, and taskQueue.

◆ schedule()

void CScheduler::schedule ( CScheduler::Function  f,
boost::chrono::system_clock::time_point  t = boost::chrono::system_clock::now() 
)

◆ scheduleEvery()

void CScheduler::scheduleEvery ( CScheduler::Function  f,
int64_t  deltaMilliSeconds 
)

◆ scheduleFromNow()

void CScheduler::scheduleFromNow ( CScheduler::Function  f,
int64_t  deltaMilliSeconds 
)

◆ serviceQueue()

◆ shouldStop()

bool CScheduler::shouldStop ( ) const
inlineprivate

Definition at line 84 of file scheduler.h.

References stopRequested, stopWhenEmpty, and taskQueue.

Referenced by serviceQueue().

◆ stop()

void CScheduler::stop ( bool  drain = false)

Definition at line 94 of file scheduler.cpp.

References newTaskMutex, newTaskScheduled, stopRequested, and stopWhenEmpty.

Referenced by llmq::CChainLocksHandler::Stop().

Member Data Documentation

◆ newTaskMutex

boost::mutex CScheduler::newTaskMutex
mutableprivate

Definition at line 80 of file scheduler.h.

Referenced by AreThreadsServicingQueue(), getQueueInfo(), schedule(), serviceQueue(), and stop().

◆ newTaskScheduled

boost::condition_variable CScheduler::newTaskScheduled
private

Definition at line 79 of file scheduler.h.

Referenced by schedule(), serviceQueue(), and stop().

◆ nThreadsServicingQueue

int CScheduler::nThreadsServicingQueue
private

Definition at line 81 of file scheduler.h.

Referenced by AreThreadsServicingQueue(), serviceQueue(), and ~CScheduler().

◆ stopRequested

bool CScheduler::stopRequested
private

Definition at line 82 of file scheduler.h.

Referenced by shouldStop(), and stop().

◆ stopWhenEmpty

bool CScheduler::stopWhenEmpty
private

Definition at line 83 of file scheduler.h.

Referenced by shouldStop(), and stop().

◆ taskQueue

std::multimap<boost::chrono::system_clock::time_point, Function> CScheduler::taskQueue
private

Definition at line 78 of file scheduler.h.

Referenced by getQueueInfo(), schedule(), serviceQueue(), and shouldStop().


The documentation for this class was generated from the following files:
Released under the MIT license