UniSet 2.32.1
|
#include <MQMutex.h>
Открытые типы | |
enum | LostStrategy { lostOldData , lostNewData } |
Открытые члены | |
MQMutex (size_t qsize=2000) | |
void | push (const VoidMessagePtr &msg) |
VoidMessagePtr | top () noexcept |
size_t | size () |
bool | empty () |
void | setMaxSizeOfMessageQueue (size_t s) noexcept |
size_t | getMaxSizeOfMessageQueue () const noexcept |
void | setLostStrategy (LostStrategy s) noexcept |
size_t | getMaxQueueMessages () const noexcept |
size_t | getCountOfLostMessages () const noexcept |
Простая "многопоточная" очередь сообщений с использованием std::mutex. Максимальное ограничение на размер очереди сообщений задаётся функцией setMaxSizeOfMessageQueue().
Контроль переполнения очереди осуществляется в push Если очередь переполняется, то сообщения ТЕРЯЮТСЯ! При помощи функции setLostStrategy() можно установить стратегию что терять lostNewData - в случае переполнения теряются новые данные (т.е. не будут помещаться в очередь) lostOldData - в случае переполнения очереди, старые данные затираются новыми.
Стратегия при переполнении
|
inlinenoexcept |
количество потерянных сообщений
|
inlinenoexcept |
максимальное количество которое было в очереди сообщений
void MQMutex::push | ( | const VoidMessagePtr & | msg | ) |
поместить сообщение в очередь
|
noexcept |
Извлечь сообщение из очереди