PxCrypt v0.2.2
Encrypt data within an image
Loading...
Searching...
No Matches
standard.h
1#ifndef STANDARD_H
2#define STANDARD_H
3
4// Qt Includes
5#include <QByteArray>
6#include <QString>
7
8// Project Includes
9#include "art_io/artwork.h"
10
11namespace PxCryptPrivate
12{
13
14class StandardWork : public Artwork<StandardWork, 1>
15{
16//-Inner Class------------------------------------------------------------------------------------------------------------
17public:
18 class Measure;
19
20//-Class Types------------------------------------------------------------------------------------------------------------
21public:
22 using checksum_t = quint32;
23 using tag_length_t = quint16;
24 using payload_length_t = quint32;
25
26//-Instance Variables------------------------------------------------------------------------------------------------------
27private:
28 QByteArray mTag;
29 checksum_t mChecksum;
30 QByteArray mPayload;
31
32//-Constructor---------------------------------------------------------------------------------------------------------
33public:
34 StandardWork();
35 StandardWork(const QByteArray& tag, const QByteArray& payload);
36
37//-Class Functions----------------------------------------------------------------------------------------------
38private:
39 static quint64 renditionSize(tag_length_t tagSize, payload_length_t payloadSize);
40
41//-Instance Functions----------------------------------------------------------------------------------------------
42private:
43 quint64 renditionSize() const override;
44 ArtworkError renditionRead(QDataStream& stream) override;
45 ArtworkError renditionWrite(QDataStream& stream) const override;
46
47public:
48 checksum_t checksum() const;
49 QByteArray tag() const;
50 QByteArray payload() const;
51};
52
53class StandardWork::Measure : public IMeasure
54{
55//-Instance Variables------------------------------------------------------------------------------------------------------
56private:
57 quint64 mSize;
58
59//-Constructor---------------------------------------------------------------------------------------------------------
60public:
61 Measure(); // Useful for measuring bare minimum consumption
62 Measure(tag_length_t tagSize, payload_length_t payloadSize);
63
64//-Instance Functions----------------------------------------------------------------------------------------------
65private:
66 quint64 renditionSize() const override;
67};
68
69}
70
71#endif // STANDARD_H