Public Member Functions | Private Attributes | List of all members
MessageExtractor Class Reference

#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< IProtocolManagerm_protocolManager
 
int m_retryTimeout
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ MessageExtractor()

MessageExtractor::MessageExtractor ( std::shared_ptr< IProtocolManager > const &  protocolManager)

Constructor.

Parameters
protocolManagerthe protocol manager to use for finding messages in the buffered data

Definition at line 83 of file messageextractor.cpp.

Member Function Documentation

◆ clearBuffer()

void MessageExtractor::clearBuffer ( )

Clears the processing buffer.

Definition at line 213 of file messageextractor.cpp.

◆ processNewData()

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.

◆ setMaxIncompleteRetryCount()

int MessageExtractor::setMaxIncompleteRetryCount ( int  max)

Sets the maximum number of process attempts before advancing over an incompletely received message.

Parameters
maxThe maximum number set
Returns
Old maximum number

Definition at line 223 of file messageextractor.cpp.

Member Data Documentation

◆ m_buffer

XsByteArray MessageExtractor::m_buffer
private

Definition at line 88 of file messageextractor.h.

◆ m_maxIncompleteRetryCount

int MessageExtractor::m_maxIncompleteRetryCount
private

Definition at line 89 of file messageextractor.h.

◆ m_protocolManager

std::shared_ptr<IProtocolManager> MessageExtractor::m_protocolManager
private

Definition at line 86 of file messageextractor.h.

◆ m_retryTimeout

int MessageExtractor::m_retryTimeout
private

Definition at line 87 of file messageextractor.h.


The documentation for this class was generated from the following files:


xsens_mti_driver
Author(s):
autogenerated on Sun Sep 3 2023 02:43:21