19#include <condition_variable>
34 "Items in ScreenConnectorQueue should be std::mov-able");
44 const std::lock_guard<std::mutex> lock(*
q_mutex_);
49 const std::lock_guard<std::mutex> lock(*
q_mutex_);
54 auto is_empty = [
this](void) {
return buffer_.empty(); };
55 std::unique_lock<std::mutex> lock(*
q_mutex_);
77 std::unique_lock<std::mutex> lock(*
q_mutex_);
79 auto is_empty = [
this](void) {
return buffer_.empty(); };
82 buffer_.push_back(std::move(item));
84 void Push(T& item) =
delete;
85 void Push(
const T& item) =
delete;
88 const std::lock_guard<std::mutex> lock(*
q_mutex_);
89 auto item = std::move(
buffer_.front());
Definition: screen_connector_queue.h:31
auto Size() const
Definition: screen_connector_queue.h:48
void Push(T &item)=delete
void Push(T &&item)
Definition: screen_connector_queue.h:76
void WaitEmpty()
Definition: screen_connector_queue.h:53
ScreenConnectorQueue & operator=(ScreenConnectorQueue &&cq)=delete
bool Full() const
Definition: screen_connector_queue.h:98
T Pop()
Definition: screen_connector_queue.h:87
bool IsEmpty() const
Definition: screen_connector_queue.h:43
std::deque< T > buffer_
Definition: screen_connector_queue.h:103
std::condition_variable q_empty_
Definition: screen_connector_queue.h:105
const int q_max_size_
Definition: screen_connector_queue.h:106
std::unique_ptr< std::mutex > q_mutex_
Definition: screen_connector_queue.h:104
ScreenConnectorQueue(const int q_max_size=2)
Definition: screen_connector_queue.h:36
ScreenConnectorQueue & operator=(const ScreenConnectorQueue &cq)=delete
ScreenConnectorQueue(ScreenConnectorQueue &&cq)=delete
ScreenConnectorQueue(const ScreenConnectorQueue &cq)=delete
void Push(const T &item)=delete
Definition: alloc_utils.cpp:23
Definition: logging.h:464
Definition: screen_connector_common.h:27