MessageRecord Reader::readNext() { MessageRecord msg; if(!readNextToBuffer(_msgbuf)) return msg; protocol::Message *message; switch(_formatversion) { // see protocol changelog in doc/protocol.md case version32(11, 3): case version32(11, 2): message = compat::deserializeV11((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; default: message = protocol::Message::deserialize((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; } if(message) { msg.status = MessageRecord::OK; msg.message = message; } else { msg.status = MessageRecord::INVALID; msg.error.len = protocol::Message::sniffLength(_msgbuf.constData()); msg.error.type = protocol::MessageType(_msgbuf.at(2)); } return msg; }
MessageRecord Reader::readNext() { MessageRecord msg; if(!readNextToBuffer(_msgbuf)) return msg; protocol::Message *message; if(_compat && _formatversion != version32(DRAWPILE_PROTO_MAJOR_VERSION, DRAWPILE_PROTO_MINOR_VERSION)) { // see protocol changelog in doc/protocol.md switch(_formatversion) { case version32(15, 5): message = compat::deserializeV15_5((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(14, 5): case version32(13, 5): message = compat::deserializeV14((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(12, 4): message = compat::deserializeV12((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(11, 3): case version32(11, 2): message = compat::deserializeV11((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(10, 2): case version32(9, 2): case version32(8, 1): case version32(7, 1): message = compat::deserializeV10((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; default: message = protocol::Message::deserialize((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; } } else { message = protocol::Message::deserialize((const uchar*)_msgbuf.constData(), _msgbuf.length()); } if(message) { msg.status = MessageRecord::OK; msg.message = message; } else { msg.status = MessageRecord::INVALID; msg.error.len = protocol::Message::sniffLength(_msgbuf.constData()); msg.error.type = protocol::MessageType(_msgbuf.at(2)); } return msg; }
MessageRecord Reader::readNext() { MessageRecord msg; if(!readNextToBuffer(_msgbuf)) return msg; auto *message = protocol::Message::deserialize((const uchar*)_msgbuf.constData(), _msgbuf.length()); if(message) { msg.status = MessageRecord::OK; msg.message = message; } else { msg.status = MessageRecord::INVALID; msg.error.len = protocol::Message::sniffLength(_msgbuf.constData()); msg.error.type = protocol::MessageType(_msgbuf.at(2)); } return msg; }
MessageRecord Reader::readNext() { MessageRecord msg; if(!readNextToBuffer(m_msgbuf)) return msg; protocol::Message *message; #if 0 // TODO if(m_formatversion != version32(DRAWPILE_PROTO_MAJOR_VERSION, DRAWPILE_PROTO_MINOR_VERSION)) { // see protocol changelog in doc/protocol.md switch(_formatversion) { case version32(15, 5): message = compat::deserializeV15_5((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(14, 5): case version32(13, 5): message = compat::deserializeV14((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(12, 4): message = compat::deserializeV12((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(11, 3): case version32(11, 2): message = compat::deserializeV11((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; case version32(10, 2): case version32(9, 2): case version32(8, 1): case version32(7, 1): message = compat::deserializeV10((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; default: message = protocol::Message::deserialize((const uchar*)_msgbuf.constData(), _msgbuf.length()); break; } qWarning("TODO: recording compatability mode not yet implemented!"); message = 0; } else { message = protocol::Message::deserialize((const uchar*)m_msgbuf.constData(), m_msgbuf.length(), true); } #endif message = protocol::Message::deserialize((const uchar*)m_msgbuf.constData(), m_msgbuf.length(), true); if(message) { msg.status = MessageRecord::OK; msg.message = message; } else { msg.status = MessageRecord::INVALID; msg.error.len = protocol::Message::sniffLength(m_msgbuf.constData()); msg.error.type = protocol::MessageType(m_msgbuf.at(2)); } return msg; }