ImagingTools Core SDK
CDoubleMask.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/CMask.h>
6#include <imtmdbx/imtmdbx.h>
7
8
9namespace imtmdbx
10{
11
12
13class CDoubleMask: public CMask
14{
15public:
16 CDoubleMask(const QString& name,
17 mdbx::txn_managed& txn,
18 quint32 externKey = 0,
19 mdbx::key_mode keyMode = mdbx::key_mode::ordinal,
20 mdbx::value_mode valueMode = mdbx::value_mode::single,
21 bool hasIndex = false);
22
23protected:
24 virtual bool GetNearestOffset(quint64& offset, quint64 startOffset = 0) override;
25 virtual bool GetNextItemOffset(quint64& offset, quint64 startOffset = -1) override;
26 virtual bool GetPreviosItemOffset(quint64& offset, quint64 startOffset = 0xffffffff) override;
27
28public:
29 virtual bool GetItem(quint64 offset, quint64& item) override;
30 virtual bool SetItem(quint64 offset, quint64 item) override;
31 bool SetExternalKey(quint64 externalKey);
32
33private:
34 quint64 m_externKey;
35
36};
37
38}//namespace imtmdbx