ImagingTools Core SDK
CMemoryMask.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4// ImtCore includes
5#include <imtmdbx/IMask.h>
6#include <imtmdbx/CDocumentTable.h>
7
8// Qt includes
9#include <QtCore/QMap>
10
11
12namespace imtmdbx
13{
14
15
16class CMemoryMask: virtual public IMask
17{
18public:
19 CMemoryMask();
20
21 virtual bool GetUnit(quint64 position) override;
22 virtual bool SetUnit(quint64 position, bool unit) override;
23
24 virtual bool GetItem(quint64 offset, quint64& item) override;
25 virtual bool SetItem(quint64 offset, quint64 item) override;
26
27protected:
28 virtual bool GetNearestOffset(quint64& offset, quint64 startOffset = 0) override;
29 virtual bool GetNextItemOffset(quint64& offset, quint64 startOffset = -1) override;
30 virtual bool GetPreviosItemOffset(quint64& offset, quint64 startOffset = 0xffffffff) override;
31 QMap<quint64,quint64> m_cache;
32};
33
34}//namespace imtmdbx