Apollo 11.0
自动驾驶开放平台
apollo::perception::lib::BlockingCounter类 参考

#include <mutex.h>

apollo::perception::lib::BlockingCounter 的协作图:

Public 成员函数

 BlockingCounter (size_t cnt)
 
bool Decrement ()
 
void Reset (size_t cnt)
 
void Wait ()
 
 BlockingCounter (const BlockingCounter &)=delete
 
BlockingCounteroperator= (const BlockingCounter &)=delete
 

详细描述

在文件 mutex.h75 行定义.

构造及析构函数说明

◆ BlockingCounter() [1/2]

apollo::perception::lib::BlockingCounter::BlockingCounter ( size_t  cnt)
inlineexplicit

在文件 mutex.h77 行定义.

77: counter_(cnt) {}

◆ BlockingCounter() [2/2]

apollo::perception::lib::BlockingCounter::BlockingCounter ( const BlockingCounter )
delete

成员函数说明

◆ Decrement()

bool apollo::perception::lib::BlockingCounter::Decrement ( )
inline

在文件 mutex.h79 行定义.

79 {
80 MutexLock lock(&mutex_);
81 --counter_;
82
83 if (counter_ == 0u) {
84 cond_.Signalall();
85 }
86
87 return counter_ == 0u;
88 }

◆ operator=()

BlockingCounter & apollo::perception::lib::BlockingCounter::operator= ( const BlockingCounter )
delete

◆ Reset()

void apollo::perception::lib::BlockingCounter::Reset ( size_t  cnt)
inline

在文件 mutex.h90 行定义.

90 {
91 MutexLock lock(&mutex_);
92 counter_ = cnt;
93 }

◆ Wait()

void apollo::perception::lib::BlockingCounter::Wait ( )
inline

在文件 mutex.h95 行定义.

95 {
96 MutexLock lock(&mutex_);
97
98 while (counter_ != 0u) {
99 cond_.Wait(&mutex_);
100 }
101 }

该类的文档由以下文件生成: