Bitcoin Core 29.99.0
P2P Digital Currency
Public Member Functions | Private Attributes | List of all members
CCheckQueueControl< T, R > Class Template Reference

RAII-style controller object for a CCheckQueue that guarantees the passed queue is finished before continuing. More...

#include <checkqueue.h>

Collaboration diagram for CCheckQueueControl< T, R >:
[legend]

Public Member Functions

 CCheckQueueControl ()=delete
 
 CCheckQueueControl (const CCheckQueueControl &)=delete
 
CCheckQueueControloperator= (const CCheckQueueControl &)=delete
 
 CCheckQueueControl (CCheckQueue< T > &queueIn) EXCLUSIVE_LOCK_FUNCTION(queueIn.m_control_mutex)
 
std::optional< R > Complete ()
 
void Add (std::vector< T > &&vChecks)
 
 ~CCheckQueueControl () UNLOCK_FUNCTION()
 

Private Attributes

CCheckQueue< T, R > & m_queue
 
UniqueLock< Mutexm_lock
 
bool fDone
 

Detailed Description

template<typename T, typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
class CCheckQueueControl< T, R >

RAII-style controller object for a CCheckQueue that guarantees the passed queue is finished before continuing.

Definition at line 208 of file checkqueue.h.

Constructor & Destructor Documentation

◆ CCheckQueueControl() [1/3]

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
CCheckQueueControl< T, R >::CCheckQueueControl ( )
delete

◆ CCheckQueueControl() [2/3]

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
CCheckQueueControl< T, R >::CCheckQueueControl ( const CCheckQueueControl< T, R > &  )
delete

◆ CCheckQueueControl() [3/3]

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
CCheckQueueControl< T, R >::CCheckQueueControl ( CCheckQueue< T > &  queueIn)
inlineexplicit

Definition at line 219 of file checkqueue.h.

◆ ~CCheckQueueControl()

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
CCheckQueueControl< T, R >::~CCheckQueueControl ( )
inline

Definition at line 233 of file checkqueue.h.

Member Function Documentation

◆ Add()

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
void CCheckQueueControl< T, R >::Add ( std::vector< T > &&  vChecks)
inline

Definition at line 228 of file checkqueue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Complete()

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
std::optional< R > CCheckQueueControl< T, R >::Complete ( )
inline

Definition at line 221 of file checkqueue.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
CCheckQueueControl & CCheckQueueControl< T, R >::operator= ( const CCheckQueueControl< T, R > &  )
delete

Member Data Documentation

◆ fDone

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
bool CCheckQueueControl< T, R >::fDone
private

Definition at line 213 of file checkqueue.h.

◆ m_lock

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
UniqueLock<Mutex> CCheckQueueControl< T, R >::m_lock
private

Definition at line 212 of file checkqueue.h.

◆ m_queue

template<typename T , typename R = std::remove_cvref_t<decltype(std::declval<T>()().value())>>
CCheckQueue<T, R>& CCheckQueueControl< T, R >::m_queue
private

Definition at line 211 of file checkqueue.h.


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