Queue of NMEA0183 messages which only holds a limited amount of each message type.
More...
#include <comm_out_queue.h>
|
virtual bool | push_back (const std::string &line) |
| Insert valid line of NMEA0183 data in buffer.
|
|
virtual std::string | pop () |
| Return next line to send and remove it from buffer, throws exception if empty.
|
|
virtual int | size () const |
| Return number of lines in queue.
|
|
| CommOutQueue (unsigned max_buffered, std::chrono::duration< unsigned, std::milli > min_msg_gap) |
| Create a buffer which stores at most max_buffered items of each message, applying rate limits if messages are entered "too" fast.
|
|
| CommOutQueue (unsigned max_buffered) |
| Create a buffer which stores at most max_buffered items of each message.
|
|
| CommOutQueue () |
| Default buffer, allows 10 buffered messages of each type, applies rate limits when repeated with less than 600 ms intervals.
|
|
| CommOutQueue (const CommOutQueue &other)=delete |
|
CommOutQueue & | operator= (const CommOutQueue &)=delete |
|
|
using | duration_ms = std::chrono::duration< unsigned, std::milli > |
|
Queue of NMEA0183 messages which only holds a limited amount of each message type.
Definition at line 78 of file comm_out_queue.h.
◆ duration_ms
using CommOutQueue::duration_ms = std::chrono::duration<unsigned, std::milli> |
|
protected |
◆ CommOutQueue() [1/3]
CommOutQueue::CommOutQueue |
( |
unsigned |
max_buffered, |
|
|
std::chrono::duration< unsigned, std::milli > |
min_msg_gap |
|
) |
| |
Create a buffer which stores at most max_buffered items of each message, applying rate limits if messages are entered "too" fast.
- Parameters
-
max_buffered | Max number of messages of a type kept in buffer without discarding data as overrun. |
min_msg_gap | minimum time between two messages of the same type without applying rate limits. |
Definition at line 75 of file comm_out_queue.cpp.
◆ CommOutQueue() [2/3]
CommOutQueue::CommOutQueue |
( |
unsigned |
max_buffered | ) |
|
|
inline |
Create a buffer which stores at most max_buffered items of each message.
Definition at line 110 of file comm_out_queue.h.
◆ CommOutQueue() [3/3]
CommOutQueue::CommOutQueue |
( |
| ) |
|
|
inline |
Default buffer, allows 10 buffered messages of each type, applies rate limits when repeated with less than 600 ms intervals.
Definition at line 116 of file comm_out_queue.h.
◆ pop()
std::string CommOutQueue::pop |
( |
| ) |
|
|
virtual |
◆ push_back()
bool CommOutQueue::push_back |
( |
const std::string & |
line | ) |
|
|
virtual |
◆ size()
int CommOutQueue::size |
( |
| ) |
const |
|
virtual |
◆ m_buffer
◆ m_min_msg_gap
duration_ms CommOutQueue::m_min_msg_gap |
|
protected |
◆ m_mutex
std::mutex CommOutQueue::m_mutex |
|
mutableprotected |
◆ m_overrun_reported
bool CommOutQueue::m_overrun_reported |
|
protected |
◆ m_rate_limits_logged
std::set<uint64_t> CommOutQueue::m_rate_limits_logged |
|
protected |
◆ m_size
The documentation for this class was generated from the following files: