Doxygen
DotRunnerQueue类 参考

Queue of dot jobs to run. 更多...

#include <dotrunner.h>

Public 成员函数

void enqueue (DotRunner *runner)
 
DotRunnerdequeue ()
 
size_t size () const
 

Private 属性

std::condition_variable m_bufferNotEmpty
 
std::queue< DotRunner * > m_queue
 
std::mutex m_mutex
 

详细描述

Queue of dot jobs to run.

在文件 dotrunner.h73 行定义.

成员函数说明

◆ dequeue()

DotRunner * DotRunnerQueue::dequeue ( )

在文件 dotrunner.cpp265 行定义.

266 {
267  std::unique_lock<std::mutex> locker(m_mutex);
268 
269  // wait until something is added to the queue
270  m_bufferNotEmpty.wait(locker, [this]() { return !m_queue.empty(); });
271 
272  DotRunner *result = m_queue.front();
273  m_queue.pop();
274  return result;
275 }

引用了 m_bufferNotEmpty, m_mutex , 以及 m_queue.

被这些函数引用 DotWorkerThread::run().

◆ enqueue()

void DotRunnerQueue::enqueue ( DotRunner runner)

在文件 dotrunner.cpp258 行定义.

259 {
260  std::lock_guard<std::mutex> locker(m_mutex);
261  m_queue.push(runner);
262  m_bufferNotEmpty.notify_all();
263 }

引用了 m_bufferNotEmpty, m_mutex , 以及 m_queue.

被这些函数引用 DotManager::run().

◆ size()

size_t DotRunnerQueue::size ( ) const

在文件 dotrunner.cpp277 行定义.

278 {
279  std::lock_guard<std::mutex> locker(m_mutex);
280  return m_queue.size();
281 }

引用了 m_mutex , 以及 m_queue.

被这些函数引用 DotManager::run().

类成员变量说明

◆ m_bufferNotEmpty

std::condition_variable DotRunnerQueue::m_bufferNotEmpty
private

在文件 dotrunner.h80 行定义.

被这些函数引用 dequeue() , 以及 enqueue().

◆ m_mutex

std::mutex DotRunnerQueue::m_mutex
mutableprivate

在文件 dotrunner.h82 行定义.

被这些函数引用 dequeue(), enqueue() , 以及 size().

◆ m_queue

std::queue<DotRunner *> DotRunnerQueue::m_queue
private

在文件 dotrunner.h81 行定义.

被这些函数引用 dequeue(), enqueue() , 以及 size().


该类的文档由以下文件生成:
DotRunner
Helper class to run dot from doxygen from multiple threads.
Definition: dotrunner.h:30
DotRunnerQueue::m_queue
std::queue< DotRunner * > m_queue
Definition: dotrunner.h:81
DotRunnerQueue::m_mutex
std::mutex m_mutex
Definition: dotrunner.h:82
DotRunnerQueue::m_bufferNotEmpty
std::condition_variable m_bufferNotEmpty
Definition: dotrunner.h:80