#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Channel.hpp>
Classes | |
| class | Unlocker |
Public Types | |
| using | UniqueLock = std::unique_lock<std::mutex> |
| using | Queue = std::deque<T> |
| using | LockedConstPtr = std::unique_ptr<const Queue, Unlocker<const Queue>> |
| using | LockedPtr = std::unique_ptr<Queue, Unlocker<Queue>> |
Public Member Functions | |
| Channel () | |
| ~Channel () | |
| void | push (const T &item, bool silent=false) |
| void | push (T &&item, bool silent=false) |
| T | pop () |
| boost::optional< T > | try_pop () |
| size_t | size_hint () const noexcept |
| LockedConstPtr | lock_read () const |
| LockedPtr | lock_rw () |
Private Attributes | |
| Queue | m_queue |
| std::mutex | m_mutex |
| std::condition_variable | m_condition |
| using Slic3r::Channel< T >::LockedConstPtr = std::unique_ptr<const Queue, Unlocker<const Queue>> |
| using Slic3r::Channel< T >::LockedPtr = std::unique_ptr<Queue, Unlocker<Queue>> |
| using Slic3r::Channel< T >::Queue = std::deque<T> |
| using Slic3r::Channel< T >::UniqueLock = std::unique_lock<std::mutex> |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References m_condition, m_mutex, and m_queue.
|
inline |
References m_condition, m_mutex, and m_queue.
|
inline |
References m_condition, m_mutex, and m_queue.
|
inlinenoexcept |
|
inline |
|
private |
|
mutableprivate |
|
private |
Referenced by lock_read(), lock_rw(), pop(), push(), push(), size_hint(), and try_pop().