1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QFSFILEENGINE_ITERATOR_P_H
5#define QFSFILEENGINE_ITERATOR_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include "private/qabstractfileengine_p.h"
19#include "qfilesystemiterator_p.h"
20#include "qdir.h"
21
22#ifndef QT_NO_FILESYSTEMITERATOR
23
24QT_BEGIN_NAMESPACE
25
26class QFSFileEngineIteratorPrivate;
27class QFSFileEngineIteratorPlatformSpecificData;
28
29class QFSFileEngineIterator : public QAbstractFileEngineIterator
30{
31public:
32 QFSFileEngineIterator(QDir::Filters filters, const QStringList &filterNames);
33 ~QFSFileEngineIterator();
34
35 QString next() override;
36 bool hasNext() const override;
37
38 QString currentFileName() const override;
39 QFileInfo currentFileInfo() const override;
40
41private:
42 void advance() const;
43 mutable QScopedPointer<QFileSystemIterator> nativeIterator;
44 mutable QFileInfo currentInfo;
45 mutable QFileInfo nextInfo;
46 mutable bool done;
47};
48
49QT_END_NAMESPACE
50
51#endif // QT_NO_FILESYSTEMITERATOR
52
53#endif // QFSFILEENGINE_ITERATOR_P_H
54

source code of qtbase/src/corelib/io/qfsfileengine_iterator_p.h