![]() |
PIDUINO
|
This provides a thread safe buffer. More...
#include <threadsafebuffer.h>
Public Member Functions | |
| ThreadSafeBuffer () | |
| virtual | ~ThreadSafeBuffer () |
| virtual void | write (const T &data) |
| virtual void | write (const T *buf, size_t len) |
| virtual void | write (const std::vector< T > &dataVec) |
| virtual bool | read (T &data, long msTimeout=0) |
| virtual size_t | read (std::vector< T > &dataVec, long msTimeout=0) |
| virtual size_t | read (T *buf, size_t max, long msTimeout=0) |
| virtual bool | peek (T &data, long msTimeout=0) |
| virtual size_t | peek (std::vector< T > &dataVec, long msTimeout=0) |
| virtual size_t | peek (T *buf, size_t max, long msTimeout=0) |
| size_t | size () const |
| template<typename Functor > | |
| void | iterate (Functor functor) |
Protected Member Functions | |
| void | waitForData (std::unique_lock< std::mutex > &lock, long msTimeout) |
| void | writeData (const T &data) |
| void | writeData (const T *buf, size_t len) |
| bool | readData (T &data) |
| size_t | readData (std::vector< T > &dataVec) |
| size_t | readData (T *buf, size_t max) |
| bool | peekData (T &data) |
| size_t | peekData (std::vector< T > &dataVec) |
| size_t | peekData (T *buf, size_t max) |
| virtual size_t | sizeOfData (const T &) const |
Protected Attributes | |
| std::list< T > | _queue |
| std::mutex | _queueMutex |
| std::condition_variable | _msgNotification |
| size_t | _numEnqueued |
This provides a thread safe buffer.
Definition at line 63 of file threadsafebuffer.h.
|
inline |
Definition at line 65 of file threadsafebuffer.h.
|
inlinevirtual |
Definition at line 72 of file threadsafebuffer.h.
|
inline |
Definition at line 181 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_numEnqueued, Piduino::ThreadSafeBuffer< T >::_queue, and Piduino::ThreadSafeBuffer< T >::_queueMutex.
|
inlinevirtual |
Definition at line 144 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_queueMutex, Piduino::ThreadSafeBuffer< T >::peekData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::waitForData().
|
inlinevirtual |
Definition at line 132 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_queueMutex, Piduino::ThreadSafeBuffer< T >::peekData(), and Piduino::ThreadSafeBuffer< T >::waitForData().
|
inlinevirtual |
Definition at line 156 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_queueMutex, Piduino::ThreadSafeBuffer< T >::peekData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::waitForData().
|
inlineprotected |
Definition at line 274 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::peekData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::sizeOfData().
|
inlineprotected |
Definition at line 264 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_queue.
Referenced by Piduino::ThreadSafeBuffer< T >::peek(), and Piduino::ThreadSafeBuffer< T >::peekData().
|
inlineprotected |
Definition at line 285 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_numEnqueued, Piduino::ThreadSafeBuffer< T >::peekData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::sizeOfData().
|
inlinevirtual |
Definition at line 109 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_queueMutex, Piduino::ThreadSafeBuffer< T >::readData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::waitForData().
|
inlinevirtual |
Definition at line 97 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_queueMutex, Piduino::ThreadSafeBuffer< T >::readData(), and Piduino::ThreadSafeBuffer< T >::waitForData().
|
inlinevirtual |
Definition at line 121 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_queueMutex, Piduino::ThreadSafeBuffer< T >::readData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::waitForData().
|
inlineprotected |
Definition at line 241 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::readData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::sizeOfData().
|
inlineprotected |
Definition at line 229 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_numEnqueued, and Piduino::ThreadSafeBuffer< T >::_queue.
Referenced by Piduino::ThreadSafeBuffer< T >::read(), and Piduino::ThreadSafeBuffer< T >::readData().
|
inlineprotected |
Definition at line 252 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_numEnqueued, Piduino::ThreadSafeBuffer< T >::readData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::sizeOfData().
|
inline |
Definition at line 167 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_numEnqueued.
Referenced by Piduino::ThreadSafeBuffer< T >::peek(), Piduino::ThreadSafeBuffer< T >::peekData(), Piduino::ThreadSafeBuffer< T >::read(), and Piduino::ThreadSafeBuffer< T >::readData().
|
inlineprotectedvirtual |
Definition at line 297 of file threadsafebuffer.h.
Referenced by Piduino::ThreadSafeBuffer< T >::peekData(), and Piduino::ThreadSafeBuffer< T >::readData().
|
inlineprotected |
Definition at line 195 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_msgNotification, and Piduino::ThreadSafeBuffer< T >::_queue.
Referenced by Piduino::ThreadSafeBuffer< T >::peek(), and Piduino::ThreadSafeBuffer< T >::read().
|
inlinevirtual |
Definition at line 93 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::write().
|
inlinevirtual |
Definition at line 75 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_msgNotification, Piduino::ThreadSafeBuffer< T >::_queueMutex, and Piduino::ThreadSafeBuffer< T >::writeData().
Referenced by Piduino::ThreadSafeBuffer< T >::write().
|
inlinevirtual |
Definition at line 84 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_msgNotification, Piduino::ThreadSafeBuffer< T >::_queueMutex, and Piduino::ThreadSafeBuffer< T >::writeData().
|
inlineprotected |
Definition at line 216 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::_numEnqueued, and Piduino::ThreadSafeBuffer< T >::_queue.
Referenced by Piduino::ThreadSafeBuffer< T >::write(), and Piduino::ThreadSafeBuffer< T >::writeData().
|
inlineprotected |
Definition at line 222 of file threadsafebuffer.h.
References Piduino::ThreadSafeBuffer< T >::writeData().
|
protected |
Definition at line 303 of file threadsafebuffer.h.
Referenced by Piduino::ThreadSafeBuffer< T >::waitForData(), and Piduino::ThreadSafeBuffer< T >::write().
|
protected |
Definition at line 304 of file threadsafebuffer.h.
Referenced by Piduino::ThreadSafeBuffer< T >::iterate(), Piduino::ThreadSafeBuffer< T >::peekData(), Piduino::ThreadSafeBuffer< T >::readData(), Piduino::ThreadSafeBuffer< T >::size(), and Piduino::ThreadSafeBuffer< T >::writeData().
|
protected |
|
protected |
Definition at line 302 of file threadsafebuffer.h.
Referenced by Piduino::ThreadSafeBuffer< T >::iterate(), Piduino::ThreadSafeBuffer< T >::peek(), Piduino::ThreadSafeBuffer< T >::read(), and Piduino::ThreadSafeBuffer< T >::write().