| 47 | } |
| 48 | |
| 49 | FullMessageHeader FullMessageHeader::fromHeaderData(QByteArray const& headerData) { |
| 50 | if (headerData.size() != (PROTO_MESSAGE_HEADER_FULL_LENGTH_BYTES)) { |
| 51 | throw openmittsu::exceptions::IllegalArgumentException() << "Size of Header data segment is " << headerData.size() << " instead of " << (PROTO_MESSAGE_HEADER_FULL_LENGTH_BYTES) << " Bytes."; |
| 52 | } |
| 53 | |
| 54 | int startPosition = 0; |
| 55 | openmittsu::protocol::ContactId const senderId(headerData.mid(startPosition, PROTO_IDENTITY_LENGTH_BYTES)); |
| 56 | startPosition += PROTO_IDENTITY_LENGTH_BYTES; |
| 57 | openmittsu::protocol::ContactId const receiverId(headerData.mid(startPosition, PROTO_IDENTITY_LENGTH_BYTES)); |
| 58 | startPosition += PROTO_IDENTITY_LENGTH_BYTES; |
| 59 | openmittsu::protocol::MessageId const messageId(headerData.mid(startPosition, PROTO_MESSAGE_MESSAGEID_LENGTH_BYTES)); |
| 60 | startPosition += PROTO_MESSAGE_MESSAGEID_LENGTH_BYTES; |
| 61 | openmittsu::protocol::MessageTime const timestamp(headerData.mid(startPosition, PROTO_MESSAGE_TIMESTAMP_LENGTH_BYTES)); |
| 62 | startPosition += PROTO_MESSAGE_TIMESTAMP_LENGTH_BYTES; |
| 63 | MessageFlags const flags((uint8_t)headerData.at(startPosition)); |
| 64 | startPosition += (PROTO_MESSAGE_FLAGS_LENGTH_BYTES + PROTO_MESSAGE_RESERVED_AFTER_FLAGS_LENGTH_BYTES); |
| 65 | openmittsu::protocol::PushFromId const pushFromId(headerData.mid(startPosition, PROTO_MESSAGE_PUSH_FROM_LENGTH_BYTES)); |
| 66 | startPosition += PROTO_MESSAGE_PUSH_FROM_LENGTH_BYTES; |
| 67 | |
| 68 | return FullMessageHeader(receiverId, timestamp, senderId, messageId, flags, pushFromId); |
| 69 | } |
| 70 | |
| 71 | openmittsu::protocol::ContactId const& FullMessageHeader::getSender() const { |
| 72 | return sender; |
nothing calls this directly
no test coverage detected