32 virtual void Push(
const Data &data) {
38 virtual void Pop(Data *data) {
67 return static_cast<int>(
queue_.size());
88template <
typename Data>
96 virtual void Push(
const Data &data) {
98 while (this->
queue_.size() >= max_count_) {
107 if (this->
queue_.size() >= max_count_) {
115 virtual void Pop(Data *data) {
118 while (this->
queue_.empty()) {
121 *data = this->
queue_.front();
129 if (this->
queue_.empty()) {
133 *data = this->
queue_.front();
139 bool Full()
const {
return this->
queue_.size() >= max_count_; }
146 const size_t max_count_;
virtual ~ConcurrentQueue()
ConcurrentQueue & operator=(const ConcurrentQueue &)=delete
virtual void Pop(Data *data)
ConcurrentQueue(const ConcurrentQueue &)=delete
CondVar condition_variable_
std::queue< Data > queue_
virtual void Push(const Data &data)
FixedSizeConQueue(size_t max_count)
virtual bool TryPop(Data *data)
virtual bool TryPush(const Data &data)
virtual void Push(const Data &data)
FixedSizeConQueue & operator=(const FixedSizeConQueue &)=delete
virtual ~FixedSizeConQueue()
virtual void Pop(Data *data)
FixedSizeConQueue(const FixedSizeConQueue &)=delete