|
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 |
Извлечь сообщение из очереди