ImagingTools Core SDK
IDocumentTable.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
5// Qt includes
6#include <QtCore/QString>
7#include <QtCore/QByteArray>
8
9// ACF includes
10#include <istd/IPolymorphic.h>
11
12
13namespace imtmdbx
14{
15
16
17class IDocumentTable: istd::IPolymorphic
18{
19public:
20 virtual quint64 AddDocument(const QByteArray& data) = 0;
21 virtual quint64 AddDocument(quint64 data) = 0;
22 virtual quint64 AddDocument(const QByteArray& key, const QByteArray& data) = 0;
23 virtual QByteArray GetDocument() = 0;
24 virtual QByteArray GetDocument(quint64 key) = 0;
25 virtual QByteArray GetDocument(const QByteArray& key) = 0;
26 virtual bool GetKey(quint64& key) const = 0;
27 virtual bool GetKey(QByteArray& key) const = 0;
28 virtual bool HasRecord(quint64 key) = 0;
29 virtual bool HasRecord(const QByteArray& key) = 0;
30 virtual bool UpdateDocument(quint64 key, const QByteArray& data) = 0;
31 virtual bool UpdateDocument(const QByteArray& key, const QByteArray& data) = 0;
32 virtual bool GetKey(quint64& key, const QByteArray& value = QByteArray()) = 0;
33 virtual bool GetFirstKey(quint64& key) = 0;
34 virtual bool GetLastKey(quint64& key) = 0;
35 virtual QByteArray GetKeyBA(const QByteArray& value = QByteArray()) = 0;
36 virtual bool CreateIndex() = 0;
37 virtual bool MoveTo(quint64 key) = 0;
38 virtual bool MoveTo(const QByteArray& key) = 0;
39 virtual bool MoveToFirst() = 0;
40 virtual bool MoveToLast() = 0;
41 virtual bool MoveToLowerBound(quint64 key) = 0;
42 virtual bool MoveToLowerBound(const QByteArray& key) = 0;
43 virtual bool MoveToUpperBound(quint64 key) = 0;
44 virtual bool MoveToUpperBound(const QByteArray& key) = 0;
45 virtual bool MoveToNext() = 0;
46 virtual bool MoveToPrevious() = 0;
47 virtual bool MoveToValue(const QByteArray& value) = 0;
48 virtual bool RemoveDocument() = 0;
49 virtual bool RemoveDocument(quint64 key, const QByteArray& value = QByteArray()) = 0;
50 virtual bool RemoveDocument(const QByteArray& key, const QByteArray& value = QByteArray()) = 0;
51};
52
53
54}//namespace imtmdbx
55