void Endpoint::readMessage(Bitstream& in) { SequencedTestMessage message; in >> message; _remoteState = message.state; // record the receipt ReceiveRecord record = { _sequencer->getIncomingPacketNumber(), message.state }; _receiveRecords.append(record); for (QList<SequencedTestMessage>::iterator it = _other->_unreliableMessagesSent.begin(); it != _other->_unreliableMessagesSent.end(); it++) { if (it->sequenceNumber == message.sequenceNumber) { if (!messagesEqual(it->submessage, message.submessage)) { throw QString("Sent/received unreliable message mismatch."); } if (!it->state->equals(message.state)) { throw QString("Delta-encoded object mismatch."); } _other->_unreliableMessagesSent.erase(_other->_unreliableMessagesSent.begin(), it + 1); unreliableMessagesReceived++; return; } } throw QString("Received unsent/already sent unreliable message."); }
void Endpoint::handleReliableMessage(const QVariant& message) { if (_other->_reliableMessagesSent.isEmpty()) { throw QString("Received unsent/already sent reliable message."); } QVariant sentMessage = _other->_reliableMessagesSent.takeFirst(); if (!messagesEqual(message, sentMessage)) { throw QString("Sent/received reliable message mismatch."); } reliableMessagesReceived++; }
void Endpoint::handleHighPriorityMessage(const QVariant& message) { if (_other->_highPriorityMessagesSent.isEmpty()) { throw QString("Received unsent/already sent high priority message."); } QVariant sentMessage = _other->_highPriorityMessagesSent.takeFirst(); if (!messagesEqual(message, sentMessage)) { throw QString("Sent/received high priority message mismatch."); } highPriorityMessagesReceived++; }
void Endpoint::handleReliableMessage(const QVariant& message) { if (message.userType() == ClearSharedObjectMessage::Type || message.userType() == ClearMainChannelSharedObjectMessage::Type) { return; } if (_other->_reliableMessagesSent.isEmpty()) { throw QString("Received unsent/already sent reliable message."); } QVariant sentMessage = _other->_reliableMessagesSent.takeFirst(); if (!messagesEqual(message, sentMessage)) { throw QString("Sent/received reliable message mismatch."); } reliableMessagesReceived++; }
void Endpoint::readMessage(Bitstream& in) { SequencedTestMessage message; in >> message; for (QList<SequencedTestMessage>::iterator it = _other->_unreliableMessagesSent.begin(); it != _other->_unreliableMessagesSent.end(); it++) { if (it->sequenceNumber == message.sequenceNumber) { if (!messagesEqual(it->submessage, message.submessage)) { throw QString("Sent/received unreliable message mismatch."); } _other->_unreliableMessagesSent.erase(_other->_unreliableMessagesSent.begin(), it + 1); unreliableMessagesReceived++; return; } } throw QString("Received unsent/already sent unreliable message."); }