MCPcopy Create free account
hub / github.com/blizzard4591/openMittsu / fromHeaderData

Method fromHeaderData

src/messages/FullMessageHeader.cpp:49–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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;

Callers

nothing calls this directly

Calls 2

FullMessageHeaderClass · 0.70
sizeMethod · 0.45

Tested by

no test coverage detected