ewmscp  ..
Public Member Functions | Private Attributes | List of all members
MyWaitQueues::simple< T > Class Template Reference
Collaboration diagram for MyWaitQueues::simple< T >:
[legend]

Public Member Functions

void enqueue (std::unique_ptr< T > &item)
 
template<class ... Types>
void emplace (Types ... args)
 
template<class ... Types>
std::unique_ptr< T > dequeue ()
 
decltype(queue.size()) size () const
 
decltype(queue.empty()) empty () const
 

Private Attributes

std::deque< std::unique_ptr< T > > queue
 
std::mutex queue_mutex
 

Detailed Description

template<typename T>
class MyWaitQueues::simple< T >

Definition at line 28 of file dirCount.cpp.

Member Function Documentation

◆ dequeue()

template<typename T >
template<class ... Types>
std::unique_ptr<T> MyWaitQueues::simple< T >::dequeue ( )
inline

Definition at line 41 of file dirCount.cpp.

41  {
42  std::unique_lock<decltype(queue_mutex)> lock(queue_mutex); //(NOLINT clang-analyzer-alpha.core.CastToStruct)
43  if (queue.empty()) {
44  return nullptr;
45  }
46  auto item = std::move(queue.front());
47  queue.pop_front();
48  return item;
49  }

References MyWaitQueues::simple< T >::queue, and MyWaitQueues::simple< T >::queue_mutex.

Referenced by runnerType::process().

Here is the caller graph for this function:

◆ emplace()

template<typename T >
template<class ... Types>
void MyWaitQueues::simple< T >::emplace ( Types ...  args)
inline

Definition at line 37 of file dirCount.cpp.

37  {
38  std::unique_ptr<T> item(new T(args...));
39  enqueue(item);
40  }

References MyWaitQueues::simple< T >::enqueue().

Referenced by main(), and runnerType::process().

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

◆ empty()

template<typename T >
decltype(queue.empty()) MyWaitQueues::simple< T >::empty ( ) const
inline

Definition at line 53 of file dirCount.cpp.

53  {
54  return queue.empty();
55  }

References MyWaitQueues::simple< T >::queue.

◆ enqueue()

template<typename T >
void MyWaitQueues::simple< T >::enqueue ( std::unique_ptr< T > &  item)
inline

Definition at line 33 of file dirCount.cpp.

33  {
34  std::unique_lock<decltype(queue_mutex)> lock(queue_mutex); //(NOLINT clang-analyzer-alpha.core.CastToStruct)
35  queue.emplace_back(std::move(item));
36  }

References MyWaitQueues::simple< T >::queue, and MyWaitQueues::simple< T >::queue_mutex.

Referenced by MyWaitQueues::simple< T >::emplace().

Here is the caller graph for this function:

◆ size()

template<typename T >
decltype(queue.size()) MyWaitQueues::simple< T >::size ( ) const
inline

Definition at line 50 of file dirCount.cpp.

50  {
51  return queue.size();
52  }

References MyWaitQueues::simple< T >::queue.

Member Data Documentation

◆ queue

template<typename T >
std::deque<std::unique_ptr<T> > MyWaitQueues::simple< T >::queue
private

◆ queue_mutex

template<typename T >
std::mutex MyWaitQueues::simple< T >::queue_mutex
private

The documentation for this class was generated from the following file:
MyWaitQueues::simple::queue
std::deque< std::unique_ptr< T > > queue
Definition: dirCount.cpp:30
MyWaitQueues::simple::queue_mutex
std::mutex queue_mutex
Definition: dirCount.cpp:31
MyWaitQueues::simple::enqueue
void enqueue(std::unique_ptr< T > &item)
Definition: dirCount.cpp:33