Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qfiledevice.h
Go to the documentation of this file.
1// Copyright (C) 2020 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 QFILEDEVICE_H
5#define QFILEDEVICE_H
6
7#include <QtCore/qiodevice.h>
8#include <QtCore/qstring.h>
9
11
12class QDateTime;
14
15#if !defined(QT_USE_NODISCARD_FILE_OPEN) && !defined(QT_NO_USE_NODISCARD_FILE_OPEN)
16# if QT_VERSION < QT_VERSION_CHECK(6, 10, 0)
17# define QT_NO_USE_NODISCARD_FILE_OPEN
18# else
19# define QT_USE_NODISCARD_FILE_OPEN
20# endif
21#endif
22
23#if defined(QT_USE_NODISCARD_FILE_OPEN) && defined(QT_NO_USE_NODISCARD_FILE_OPEN)
24#error "Inconsistent macro definition for nodiscard QFile::open"
25#elif defined(QT_USE_NODISCARD_FILE_OPEN)
26#define QFILE_MAYBE_NODISCARD [[nodiscard]]
27#else /* QT_NO_USE_NODISCARD_FILE_OPEN */
28#define QFILE_MAYBE_NODISCARD
29#endif
30
31class Q_CORE_EXPORT QFileDevice : public QIODevice
32{
33#ifndef QT_NO_QOBJECT
35#endif
36 Q_DECLARE_PRIVATE(QFileDevice)
37
38public:
39 enum FileError {
41 ReadError = 1,
42 WriteError = 2,
43 FatalError = 3,
44 ResourceError = 4,
45 OpenError = 5,
46 AbortError = 6,
47 TimeOutError = 7,
48 UnspecifiedError = 8,
49 RemoveError = 9,
50 RenameError = 10,
51 PositionError = 11,
52 ResizeError = 12,
53 PermissionsError = 13,
54 CopyError = 14
55 };
56
63
65 ReadOwner = 0x4000, WriteOwner = 0x2000, ExeOwner = 0x1000,
66 ReadUser = 0x0400, WriteUser = 0x0200, ExeUser = 0x0100,
67 ReadGroup = 0x0040, WriteGroup = 0x0020, ExeGroup = 0x0010,
68 ReadOther = 0x0004, WriteOther = 0x0002, ExeOther = 0x0001
69 };
70 Q_DECLARE_FLAGS(Permissions, Permission)
71
73 AutoCloseHandle = 0x0001,
74 DontCloseHandle = 0
75 };
76 Q_DECLARE_FLAGS(FileHandleFlags, FileHandleFlag)
77
79
80 FileError error() const;
81 void unsetError();
82
83 void close() override;
84
85 bool isSequential() const override;
86
87 int handle() const;
88 virtual QString fileName() const;
89
90 qint64 pos() const override;
91 bool seek(qint64 offset) override;
92 bool atEnd() const override;
93 bool flush();
94
95 qint64 size() const override;
96
97 virtual bool resize(qint64 sz);
98 virtual Permissions permissions() const;
99 virtual bool setPermissions(Permissions permissionSpec);
100
102 NoOptions = 0,
103 MapPrivateOption = 0x0001
104 };
105 Q_DECLARE_FLAGS(MemoryMapFlags, MemoryMapFlag)
106
107 uchar *map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions);
108 bool unmap(uchar *address);
109
110 QDateTime fileTime(QFileDevice::FileTime time) const;
111 bool setFileTime(const QDateTime &newDate, QFileDevice::FileTime fileTime);
112
113protected:
114 QFileDevice();
115#ifdef QT_NO_QOBJECT
117#else
118 explicit QFileDevice(QObject *parent);
119 QFileDevice(QFileDevicePrivate &dd, QObject *parent = nullptr);
120#endif
121
122 qint64 readData(char *data, qint64 maxlen) override;
123 qint64 writeData(const char *data, qint64 len) override;
124 qint64 readLineData(char *data, qint64 maxlen) override;
125
126private:
127 Q_DISABLE_COPY(QFileDevice)
128};
129
130Q_DECLARE_OPERATORS_FOR_FLAGS(QFileDevice::Permissions)
131Q_DECLARE_OPERATORS_FOR_FLAGS(QFileDevice::FileHandleFlags)
132Q_DECLARE_OPERATORS_FOR_FLAGS(QFileDevice::MemoryMapFlags)
133
135
136#endif // QFILEDEVICE_H
\inmodule QtCore\reentrant
Definition qdatetime.h:283
\inmodule QtCore
Definition qfiledevice.h:32
Permission
This enum is used by the permission() function to report the permissions and ownership of a file.
Definition qfiledevice.h:64
FileHandleFlag
This enum is used when opening a file to specify additional options which only apply to files and not...
Definition qfiledevice.h:72
@ FileMetadataChangeTime
Definition qfiledevice.h:60
FileError
This enum describes the errors that may be returned by the error() function.
Definition qfiledevice.h:39
\inmodule QtCore \reentrant
Definition qiodevice.h:34
\inmodule QtCore
Definition qobject.h:103
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
a resize(100000)
QMap< QString, QString > map
[6]
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
GLuint64 GLenum void * handle
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLbitfield flags
GLenum GLuint GLintptr offset
GLuint GLuint64EXT address
GLenum GLsizei len
@ NoError
Definition main.cpp:34
#define Q_OBJECT
unsigned char uchar
Definition qtypes.h:32
long long qint64
Definition qtypes.h:60
void writeData(const QByteArray &data)
QByteArray readData()