#include <messageextractor.h>
Public Member Functions | |
void | clearBuffer () |
Clears the processing buffer. More... | |
MessageExtractor (std::shared_ptr< IProtocolManager > const &protocolManager) | |
Constructor. More... | |
XsResultValue | processNewData (XsDevice *devicePtr, XsByteArray const &newData, std::deque< XsMessage > &messages) |
Processes new incoming data for message extraction. More... | |
int | setMaxIncompleteRetryCount (int max) |
Sets the maximum number of process attempts before advancing over an incompletely received message. More... | |
Private Attributes | |
XsByteArray | m_buffer |
int | m_maxIncompleteRetryCount |
std::shared_ptr< IProtocolManager > | m_protocolManager |
int | m_retryTimeout |
Helper class that extracts XsMessages from a stream of data. The user must call the \a processNewData function every time a new block of data is available. It is advised not to process too small blocks of data (e.g. per byte); Every single message must not span more than \a m_maxIncompleteRetryCount blocks to guarantee correct operation. A MessageExtractor object maintains a buffer representing a sliding window over the data stream that is just big enough to contain any incompletely received XsMessage. The user can explicitly clear this buffer using the \a clearBuffer function
Definition at line 75 of file messageextractor.h.
MessageExtractor::MessageExtractor | ( | std::shared_ptr< IProtocolManager > const & | protocolManager | ) |
Constructor.
protocolManager | the protocol manager to use for finding messages in the buffered data |
Definition at line 83 of file messageextractor.cpp.
void MessageExtractor::clearBuffer | ( | ) |
Clears the processing buffer.
Definition at line 213 of file messageextractor.cpp.
XsResultValue MessageExtractor::processNewData | ( | XsDevice * | devicePtr, |
XsByteArray const & | newData, | ||
std::deque< XsMessage > & | messages | ||
) |
Processes new incoming data for message extraction.
\param devicePtr: %XsDevice pointer to call a onMessageDetected2 callback \param newData: Buffer that contains the newly arrived data \param messages: Newly extracted messages are stored in this vector. This vector will be cleared upon function entry \returns XRV_OK if one or more messages were successfully extracted. Something else if not
Definition at line 98 of file messageextractor.cpp.
int MessageExtractor::setMaxIncompleteRetryCount | ( | int | max | ) |
Sets the maximum number of process attempts before advancing over an incompletely received message.
max | The maximum number set |
Definition at line 223 of file messageextractor.cpp.
|
private |
Definition at line 88 of file messageextractor.h.
|
private |
Definition at line 89 of file messageextractor.h.
|
private |
Definition at line 86 of file messageextractor.h.
|
private |
Definition at line 87 of file messageextractor.h.