10#include <imtmdbx/imtmdbx.h>
11#include <imtmdbx/IMaskContainer.h>
20 virtual public IMaskContainer
29 CMaskContainer(OperationType operationType);
32 virtual bool GetUnit(quint64 position)
override;
33 virtual bool SetUnit(quint64 position,
bool unit)
override;
35 virtual bool GetItem(quint64 offset, quint64& item)
override;
36 virtual bool SetItem(quint64 offset, quint64 item)
override;
38 virtual bool GetNearestOffset(quint64& offset, quint64 startOffset = 0)
override;
39 virtual bool GetNextItemOffset(quint64& offset, quint64 startOffset = -1)
override;
40 virtual bool GetPreviosItemOffset(quint64& offset, quint64 startOffset = 0xffffffffffffff)
override;
43 virtual void AddMask(IMask* mask,
bool isInversion =
false)
override;
44 virtual void Clear()
override;
45 virtual bool RemoveLastMask(
bool isInversion =
false)
override;
46 virtual bool RemoveMask(
int index,
int n = 1,
bool isInversion =
false)
override;
47 virtual int GetMaskCount(
bool isInversion =
false)
override;
48 virtual void SetDocumentTable(IDocumentTable* documentTable)
override;
49 virtual quint64 GetUnitCount()
override;
50 virtual QList<quint64> GetUnitPositions(quint64 offset = 0, quint64 limit = -1)
override;
51 virtual QList<QByteArray> GetDocuments(quint64 offset = 0, quint64 limit = -1)
override;
55 bool GetActiveItem(quint64& activeOffset, quint64& activeItem,
bool isStart);
58 QList<QPair<IMask*,quint64>> m_maskList;
59 QList<QPair<IMask*,quint64>> m_maskListInv;
60 OperationType m_operationType;
61 IDocumentTable* m_documentTable;