gio-qt 0.0.16
Loading...
Searching...
No Matches
dgiofileiterator.h
1// SPDX-FileCopyrightText: 2019 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DGIOFILEITERATOR_H
6#define DGIOFILEITERATOR_H
7
8#include <QObject>
9#include <QSharedData>
10
11namespace Gio {
12class FileEnumerator;
13}
14
15enum DGioIOPriority
16{
20 PRIORITY_HIGH = -100,
21
27 PRIORITY_DEFAULT = 0,
28
36 PRIORITY_HIGH_IDLE = 100,
37
42 PRIORITY_DEFAULT_IDLE = 200,
43
47 PRIORITY_LOW = 300
48};
49
50Q_ENUMS(DGioIOPriority);
51
52class DGioFileInfo;
53class DGioFileIteratorPrivate;
54class DGioFileIterator : public QObject, public QSharedData
55{
56 Q_OBJECT
57public:
58 explicit DGioFileIterator(Gio::FileEnumerator *gmmFileEnumeratorPtr, QObject *parent = nullptr);
59 ~DGioFileIterator();
60
61 QExplicitlySharedDataPointer<DGioFileInfo> nextFile();
62 void nextFilesAsync(int numberOfFiles = 1, DGioIOPriority io_priority = PRIORITY_DEFAULT);
63
64Q_SIGNALS:
65 void nextFilesReady(QList<QExplicitlySharedDataPointer<DGioFileInfo> > fileInfoList);
66 void nextFilesCancelled();
67
68private:
69 QScopedPointer<DGioFileIteratorPrivate> d_ptr;
70
71 Q_DECLARE_PRIVATE(DGioFileIterator)
72};
73
74#endif // DGIOFILEITERATOR_H
Definition dgiofileinfo.h:28