PxCrypt v0.2.2
Encrypt data within an image
Loading...
Searching...
No Matches
px_sequence_generator.h
1#ifndef PX_SEQUENCE_GENERATOR_H
2#define PX_SEQUENCE_GENERATOR_H
3
4// Qt Includes
5#include <QRandomGenerator>
6#include <QSize>
7#include <QPoint>
8
9// Qx Includes
10#include <qx/core/qx-freeindextracker.h>
11
12namespace PxCryptPrivate
13{
14
15class PxSequenceGenerator
16{
17//-Inner Class------------------------------------------------------------------------------------------------------
18public:
19 class State;
20
21//-Instance Variables------------------------------------------------------------------------------------------------------
22private:
23 QByteArray mSeed;
24 QRandomGenerator mGenerator;
25 Qx::FreeIndexTracker mPixelTracker;
26 bool mAtEnd;
27
28//-Constructor---------------------------------------------------------------------------------------------------------
29public:
30 PxSequenceGenerator(const QSize& dim, const QByteArray& seed);
31 PxSequenceGenerator(const State& state);
32
33//-Instance Functions----------------------------------------------------------------------------------------------
34public:
35 quint64 pixelCoverage() const;
36 quint64 pixelTotal() const;
37 State state() const;
38
39 qint64 next();
40 bool atEnd() const;
41
42//-Operators----------------------------------------------------------------------------------------------------------------
43public:
44 bool operator==(const State& state) const;
45};
46
47class PxSequenceGenerator::State
48{
49//-Instance Variables------------------------------------------------------------------------------------------------------
50private:
51 QByteArray mSeed;
52 quint64 mStart;
53 quint64 mEnd;
54 quint64 mCoverage;
55 bool mAtEnd;
56
57//-Constructor-------------------------------------------------------------------------------------------------------------
58public:
59 State(const QByteArray& seed, quint64 start, quint64 end, quint64 coverage, bool atEnd);
60
61//-Instance Functions------------------------------------------------------------------------------------------------------
62public:
63 QByteArray seed() const;
64 quint64 start() const;
65 quint64 end() const;
66 quint64 coverage() const;
67 bool atEnd() const;
68};
69
70}
71
72#endif // PX_SEQUENCE_GENERATOR_H