forked from qt-creator/qt-creator
Clang: Print message if message is lost
If there is a message counter mismatch it is very helpful to get message content. Change-Id: I4ea2526bd4b72010627e99de08ff9a8e64ca3d02 Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
@@ -41,19 +41,22 @@ ReadMessageBlock::ReadMessageBlock(QIODevice *ioDevice)
|
||||
{
|
||||
}
|
||||
|
||||
void ReadMessageBlock::checkIfMessageIsLost(QDataStream &in)
|
||||
bool ReadMessageBlock::checkIfMessageIsLost(QDataStream &in)
|
||||
{
|
||||
qint64 currentMessageCounter;
|
||||
|
||||
in >> currentMessageCounter;
|
||||
|
||||
bool messageIsLost = false;
|
||||
#ifndef DONT_CHECK_MESSAGE_COUNTER
|
||||
bool messageLost = !((currentMessageCounter == 0 && messageCounter == 0) || (messageCounter + 1 == currentMessageCounter));
|
||||
if (messageLost)
|
||||
qWarning() << "client message lost: " << messageCounter << currentMessageCounter;
|
||||
messageIsLost = !((currentMessageCounter == 0 && messageCounter == 0) || (messageCounter + 1 == currentMessageCounter));
|
||||
if (messageIsLost)
|
||||
qWarning() << "message lost: " << messageCounter << currentMessageCounter;
|
||||
#endif
|
||||
|
||||
messageCounter = currentMessageCounter;
|
||||
|
||||
return messageIsLost;
|
||||
}
|
||||
|
||||
MessageEnvelop ReadMessageBlock::read()
|
||||
@@ -63,8 +66,12 @@ MessageEnvelop ReadMessageBlock::read()
|
||||
MessageEnvelop message;
|
||||
|
||||
if (isTheWholeMessageReadable(in)) {
|
||||
checkIfMessageIsLost(in);
|
||||
bool messageIsLost = checkIfMessageIsLost(in);
|
||||
|
||||
in >> message;
|
||||
|
||||
if (messageIsLost)
|
||||
qDebug() << message;
|
||||
}
|
||||
|
||||
return message;
|
||||
|
||||
Reference in New Issue
Block a user