UniSet 2.32.1
Открытые типы | Открытые члены | Полный список членов класса
Класс uniset::MQMutex

#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 - в случае переполнения очереди, старые данные затираются новыми.

Перечисления

◆ LostStrategy

Стратегия при переполнении

Методы

◆ getCountOfLostMessages()

size_t uniset::MQMutex::getCountOfLostMessages ( ) const
inlinenoexcept

количество потерянных сообщений

◆ getMaxQueueMessages()

size_t uniset::MQMutex::getMaxQueueMessages ( ) const
inlinenoexcept

максимальное количество которое было в очереди сообщений

◆ push()

void MQMutex::push ( const VoidMessagePtr & msg)

поместить сообщение в очередь

◆ top()

VoidMessagePtr MQMutex::top ( )
noexcept

Извлечь сообщение из очереди

Возвращает
не валидный shatred_ptr(nullptr) если сообщений нет