CCIMXDesktop
 
Loading...
Searching...
No Matches
DataHeader.h
1#ifndef DATAHEADER_H
2#define DATAHEADER_H
3#include <QByteArray>
4#include <QtTypes>
5namespace DataHeaderUtils {
6
7#pragma pack(push, 1)
8struct DataHeader {
9 quint32 header_magic;
10 quint16 protocol_version;
11 quint8 current_state;
12 quint8 payload_type;
13 quint64 fileId;
14 quint64 offset;
15 quint64 totalSize;
16 quint32 nameLen;
17 quint32 payloadSize;
18 quint32 header_crc;
19};
20#pragma pack(pop)
21
22static constexpr const unsigned int
23 DATAHEADER_SIZE
24 = sizeof(DataHeader);
25
26static constexpr quint32 HEADER_MAGIC = 0x00114514; //
27static constexpr quint16 HEADER_VERSION = 1;
28
29static constexpr const unsigned int DEF_CHUNK_SZ = 16 * 1024;
30
31enum class OperationState : quint8 {
32 Start = 1,
33 Data = 2,
34 End = 3
35};
36
37enum class PayloadType {
38 Text,
39 Image,
40 File,
41 UnPublicMeta
42};
43
44enum class CurrentState {
45 ReadingHeader,
46 ReadingName,
47 ReadingPayload
48};
49
54QByteArray packUpHeader(const DataHeader& h);
55
62bool readOutHeader(QDataStream& stream_prepared, DataHeader& h);
63
68quint64 fileId_generation();
69
70void printDataHeader(const DataHeader& header);
71
72}
73
74#endif // DATAHEADER_H
Definition DataHeader.h:8