Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QTemporaryFileEngine Class Reference

#include <qtemporaryfile_p.h>

+ Inheritance diagram for QTemporaryFileEngine:
+ Collaboration diagram for QTemporaryFileEngine:

Public Types

enum  Flags { Win32NonShared = 0x1 }
 
enum  MaterializationMode { Overwrite , DontOverwrite , NameIsTemplate }
 
- Public Types inherited from QAbstractFileEngine
enum  FileFlag {
  ReadOwnerPerm = 0x4000 , WriteOwnerPerm = 0x2000 , ExeOwnerPerm = 0x1000 , ReadUserPerm = 0x0400 ,
  WriteUserPerm = 0x0200 , ExeUserPerm = 0x0100 , ReadGroupPerm = 0x0040 , WriteGroupPerm = 0x0020 ,
  ExeGroupPerm = 0x0010 , ReadOtherPerm = 0x0004 , WriteOtherPerm = 0x0002 , ExeOtherPerm = 0x0001 ,
  LinkType = 0x10000 , FileType = 0x20000 , DirectoryType = 0x40000 , BundleType = 0x80000 ,
  HiddenFlag = 0x0100000 , LocalDiskFlag = 0x0200000 , ExistsFlag = 0x0400000 , RootFlag = 0x0800000 ,
  Refresh = 0x1000000 , PermsMask = 0x0000FFFF , TypesMask = 0x000F0000 , FlagsMask = 0x0FF00000 ,
  FileInfoAll = FlagsMask | PermsMask | TypesMask
}
 The permissions and types of a file, suitable for OR'ing together. More...
 
enum  FileName {
  DefaultName , BaseName , PathName , AbsoluteName ,
  AbsolutePathName , AbsoluteLinkTarget , CanonicalName , CanonicalPathName ,
  BundleName , JunctionName , RawLinkPath , NFileNames
}
 These values are used to request a file name in a particular format. More...
 
enum  FileOwner { OwnerUser , OwnerGroup }
 \value OwnerUser The user who owns the file. More...
 
enum  FileTime { AccessTime , BirthTime , MetadataChangeTime , ModificationTime }
 These are used by the fileTime() function. More...
 
enum  Extension { AtEndExtension , FastReadLineExtension , MapExtension , UnMapExtension }
 
typedef QAbstractFileEngineIterator Iterator
 

Public Member Functions

 QTemporaryFileEngine (const QString *_templateName, int _flags=0)
 
void initialize (const QString &file, quint32 mode, bool nameIsTemplate=true)
 
 ~QTemporaryFileEngine ()
 
bool isReallyOpen () const
 
void setFileName (const QString &file) override
 \reimp
 
bool open (QIODevice::OpenMode flags, std::optional< QFile::Permissions > permissions) override
 \reimp
 
bool remove () override
 \reimp
 
bool rename (const QString &newName) override
 \reimp
 
bool renameOverwrite (const QString &newName) override
 \reimp
 
bool close () override
 \reimp
 
QString fileName (FileName file) const override
 \reimp
 
bool materializeUnnamedFile (const QString &newName, MaterializationMode mode)
 
bool isUnnamedFile () const override final
 
- Public Member Functions inherited from QFSFileEngine
 QFSFileEngine ()
 Constructs a QFSFileEngine.
 
 QFSFileEngine (const QString &file)
 Constructs a QFSFileEngine for the file name file.
 
 ~QFSFileEngine ()
 Destructs the QFSFileEngine.
 
bool open (QIODevice::OpenMode openMode, std::optional< QFile::Permissions > permissions) override
 \reimp
 
bool open (QIODevice::OpenMode flags, FILE *fh)
 Opens the file handle fh in openMode mode.
 
bool close () override
 \reimp
 
bool flush () override
 \reimp
 
bool syncToDisk () override
 \reimp
 
qint64 size () const override
 \reimp
 
qint64 pos () const override
 \reimp
 
bool seek (qint64) override
 \reimp
 
bool isSequential () const override
 \reimp
 
bool remove () override
 \reimp
 
bool copy (const QString &newName) override
 For Windows or Apple platforms, copy the file to file copyName.
 
bool rename (const QString &newName) override
 \reimp
 
bool renameOverwrite (const QString &newName) override
 \reimp
 
bool link (const QString &newName) override
 Creates a link from the file currently specified by fileName() to newName.
 
bool mkdir (const QString &dirName, bool createParentDirectories, std::optional< QFile::Permissions > permissions) const override
 \reimp
 
bool rmdir (const QString &dirName, bool recurseParentDirectories) const override
 \reimp
 
bool setSize (qint64 size) override
 \reimp
 
bool caseSensitive () const override
 Returns false for Windows, true for Unix.
 
bool isRelativePath () const override
 \reimp
 
QStringList entryList (QDir::Filters filters, const QStringList &filterNames) const override
 
FileFlags fileFlags (FileFlags type) const override
 \reimp
 
bool setPermissions (uint perms) override
 \reimp
 
QByteArray id () const override
 
QString fileName (FileName file) const override
 \reimp
 
uint ownerId (FileOwner) const override
 In Unix, if stat() is successful, the uid is returned if own is the owner.
 
QString owner (FileOwner) const override
 \reimp
 
bool setFileTime (const QDateTime &newDate, FileTime time) override
 \reimp
 
QDateTime fileTime (FileTime time) const override
 \reimp
 
void setFileName (const QString &file) override
 \reimp
 
int handle () const override
 \reimp
 
IteratorbeginEntryList (QDir::Filters filters, const QStringList &filterNames) override
 
IteratorendEntryList () override
 
qint64 read (char *data, qint64 maxlen) override
 \reimp
 
qint64 readLine (char *data, qint64 maxlen) override
 \reimp
 
qint64 write (const char *data, qint64 len) override
 \reimp
 
bool cloneTo (QAbstractFileEngine *target) override
 \reimp
 
virtual bool isUnnamedFile () const
 
bool extension (Extension extension, const ExtensionOption *option=nullptr, ExtensionReturn *output=nullptr) override
 \reimp
 
bool supportsExtension (Extension extension) const override
 \reimp
 
bool open (QIODevice::OpenMode flags, int fd)
 Opens the file descriptor fd in openMode mode.
 
bool open (QIODevice::OpenMode flags, int fd, QFile::FileHandleFlags handleFlags)
 
bool open (QIODevice::OpenMode flags, FILE *fh, QFile::FileHandleFlags handleFlags)
 
- Public Member Functions inherited from QAbstractFileEngine
virtual ~QAbstractFileEngine ()
 Destroys the QAbstractFileEngine.
 
virtual bool open (QIODevice::OpenMode openMode, std::optional< QFile::Permissions > permissions=std::nullopt)
 Opens the file in the specified mode.
 
virtual bool close ()
 Closes the file, returning true if successful; otherwise returns false.
 
virtual bool flush ()
 Flushes the open file, returning true if successful; otherwise returns false.
 
virtual bool syncToDisk ()
 
virtual qint64 size () const
 Returns the size of the file.
 
virtual qint64 pos () const
 Returns the current file position.
 
virtual bool seek (qint64 pos)
 Sets the file position to the given offset.
 
virtual bool isSequential () const
 Returns true if the file is a sequential access device; returns false if the file is a direct access device.
 
virtual bool remove ()
 Requests that the file is deleted from the file system.
 
virtual bool copy (const QString &newName)
 Copies the contents of this file to a file with the name newName.
 
virtual bool rename (const QString &newName)
 Requests that the file be renamed to newName in the file system.
 
virtual bool renameOverwrite (const QString &newName)
 
virtual bool link (const QString &newName)
 Creates a link from the file currently specified by fileName() to newName.
 
virtual bool mkdir (const QString &dirName, bool createParentDirectories, std::optional< QFile::Permissions > permissions=std::nullopt) const
 Requests that the directory dirName be created with the specified permissions.
 
virtual bool rmdir (const QString &dirName, bool recurseParentDirectories) const
 Requests that the directory dirName is deleted from the file system.
 
virtual bool setSize (qint64 size)
 Requests that the file be set to size size.
 
virtual bool caseSensitive () const
 Should return true if the underlying file system is case-sensitive; otherwise return false.
 
virtual bool isRelativePath () const
 Return true if the file referred to by this file engine has a relative path; otherwise return false.
 
virtual QStringList entryList (QDir::Filters filters, const QStringList &filterNames) const
 Requests that a list of all the files matching the filters list based on the filterNames in the file engine's directory are returned.
 
virtual FileFlags fileFlags (FileFlags type=FileInfoAll) const
 This function should return the set of OR'd flags that are true for the file engine's file, and that are in the type's OR'd members.
 
virtual bool setPermissions (uint perms)
 Requests that the file's permissions be set to perms.
 
virtual QByteArray id () const
 
virtual QString fileName (FileName file=DefaultName) const
 Return the file engine's current file name in the format specified by file.
 
virtual uint ownerId (FileOwner) const
 If owner is OwnerUser return the ID of the user who owns the file.
 
virtual QString owner (FileOwner) const
 If owner is OwnerUser return the name of the user who owns the file.
 
virtual bool setFileTime (const QDateTime &newDate, FileTime time)
 
virtual QDateTime fileTime (FileTime time) const
 If time is BirthTime, return when the file was born (created).
 
virtual void setFileName (const QString &file)
 Sets the file engine's file name to file.
 
virtual int handle () const
 Returns the native file handle for this file engine.
 
virtual bool cloneTo (QAbstractFileEngine *target)
 
bool atEnd () const
 
ucharmap (qint64 offset, qint64 size, QFile::MemoryMapFlags flags)
 
bool unmap (uchar *ptr)
 
virtual IteratorbeginEntryList (QDir::Filters filters, const QStringList &filterNames)
 Returns an instance of a QAbstractFileEngineIterator using filters for entry filtering and filterNames for name filtering.
 
virtual IteratorendEntryList ()
 
virtual qint64 read (char *data, qint64 maxlen)
 Reads a number of characters from the file into data.
 
virtual qint64 readLine (char *data, qint64 maxlen)
 This function reads one line, terminated by a '\n' character, from the file info data.
 
virtual qint64 write (const char *data, qint64 len)
 Writes len bytes from data to the file.
 
QFile::FileError error () const
 Returns the QFile::FileError that resulted from the last failed operation.
 
QString errorString () const
 Returns the human-readable message appropriate to the current error reported by error().
 
virtual bool extension (Extension extension, const ExtensionOption *option=nullptr, ExtensionReturn *output=nullptr)
 
virtual bool supportsExtension (Extension extension) const
 

Public Attributes

const QStringtemplateName
 
quint32 fileMode = 0
 
int flags = 0
 
bool filePathIsTemplate = true
 
bool filePathWasTemplate = true
 
bool unnamedFile = false
 

Additional Inherited Members

- Static Public Member Functions inherited from QFSFileEngine
static bool setCurrentPath (const QString &path)
 Sets the current path (e.g., for QDir), to path.
 
static QString currentPath (const QString &path=QString())
 For Unix, returns the current working directory for the file engine.
 
static QString homePath ()
 Returns the home path of the current user.
 
static QString rootPath ()
 Returns the root path.
 
static QString tempPath ()
 Returns the temporary path (i.e., a path in which it is safe to store temporary files).
 
static QFileInfoList drives ()
 For Windows, returns the list of drives in the file system as a list of QFileInfo objects.
 
- Static Public Member Functions inherited from QAbstractFileEngine
static QAbstractFileEnginecreate (const QString &fileName)
 Creates and returns a QAbstractFileEngine suitable for processing fileName.
 
- Protected Member Functions inherited from QFSFileEngine
 QFSFileEngine (QFSFileEnginePrivate &dd)
 
- Protected Member Functions inherited from QAbstractFileEngine
void setError (QFile::FileError error, const QString &str)
 Sets the error type to error, and the error string to errorString.
 
 QAbstractFileEngine ()
 Constructs a new QAbstractFileEngine that does not refer to any file or directory.
 
 QAbstractFileEngine (QAbstractFileEnginePrivate &)
 
- Protected Attributes inherited from QAbstractFileEngine
QScopedPointer< QAbstractFileEnginePrivated_ptr
 

Detailed Description

Definition at line 71 of file qtemporaryfile_p.h.

Member Enumeration Documentation

◆ Flags

Enumerator
Win32NonShared 

Definition at line 75 of file qtemporaryfile_p.h.

◆ MaterializationMode

Enumerator
Overwrite 
DontOverwrite 
NameIsTemplate 

Definition at line 107 of file qtemporaryfile_p.h.

Constructor & Destructor Documentation

◆ QTemporaryFileEngine()

QTemporaryFileEngine::QTemporaryFileEngine ( const QString _templateName,
int  _flags = 0 
)
inlineexplicit

Definition at line 77 of file qtemporaryfile_p.h.

◆ ~QTemporaryFileEngine()

QTemporaryFileEngine::~QTemporaryFileEngine ( )

Definition at line 280 of file qtemporaryfile.cpp.

References QFSFileEngine::close(), and d.

+ Here is the call graph for this function:

Member Function Documentation

◆ close()

bool QTemporaryFileEngine::close ( )
overridevirtual

\reimp

Reimplemented from QFSFileEngine.

Definition at line 398 of file qtemporaryfile.cpp.

References QFSFileEngine::seek(), QAbstractFileEngine::setError(), and QFileDevice::UnspecifiedError.

+ Here is the call graph for this function:

◆ fileName()

QString QTemporaryFileEngine::fileName ( QAbstractFileEngine::FileName  file) const
overridevirtual

\reimp

Reimplemented from QFSFileEngine.

Definition at line 406 of file qtemporaryfile.cpp.

References QAbstractFileEngine::AbsoluteLinkTarget, file, QFSFileEngine::fileName(), isUnnamedFile(), materializeUnnamedFile(), NameIsTemplate, QAbstractFileEngine::RawLinkPath, and templateName.

+ Here is the call graph for this function:

◆ initialize()

void QTemporaryFileEngine::initialize ( const QString file,
quint32  mode,
bool  nameIsTemplate = true 
)
inline

Definition at line 81 of file qtemporaryfile_p.h.

References d, file, fileMode, filePathIsTemplate, filePathWasTemplate, isReallyOpen(), Q_ASSERT, and QFSFileEngine::setFileName().

Referenced by QTemporaryFilePrivate::resetFileEngine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isReallyOpen()

bool QTemporaryFileEngine::isReallyOpen ( ) const

Definition at line 287 of file qtemporaryfile.cpp.

References d.

Referenced by initialize(), and open().

+ Here is the caller graph for this function:

◆ isUnnamedFile()

bool QTemporaryFileEngine::isUnnamedFile ( ) const
finaloverridevirtual

Reimplemented from QFSFileEngine.

Definition at line 478 of file qtemporaryfile.cpp.

References filePathIsTemplate, Q_ASSERT, and unnamedFile.

Referenced by fileName(), materializeUnnamedFile(), remove(), rename(), and renameOverwrite().

+ Here is the caller graph for this function:

◆ materializeUnnamedFile()

bool QTemporaryFileEngine::materializeUnnamedFile ( const QString newName,
QTemporaryFileEngine::MaterializationMode  mode 
)

Definition at line 420 of file qtemporaryfile.cpp.

References QFSFileEngine::close(), d, filePathIsTemplate, QTemporaryFileName::generateNext(), isUnnamedFile(), NameIsTemplate, QSystemError::NativeError, QByteArray::number(), Overwrite, QTemporaryFileName::path, Q_ASSERT, QFileDevice::RenameError, QFSFileEngine::renameOverwrite(), QAbstractFileEngine::setError(), templateName, toString(), and unnamedFile.

Referenced by fileName(), rename(), and renameOverwrite().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ open()

bool QTemporaryFileEngine::open ( QIODevice::OpenMode  openMode,
std::optional< QFile::Permissions >  permissions 
)
overridevirtual

\reimp

Reimplemented from QFSFileEngine.

Definition at line 309 of file qtemporaryfile.cpp.

References createFileFromTemplate(), createUnnamedFile(), d, QAbstractFileEngine::error(), file, fileMode, filePathIsTemplate, isReallyOpen(), NotSupported, QFSFileEngine::open(), QFileDevice::OpenError, QTemporaryFileName::path, Q_ASSERT, QIODeviceBase::ReadWrite, QAbstractFileEngine::setError(), Success, templateName, and unnamedFile.

+ Here is the call graph for this function:

◆ remove()

bool QTemporaryFileEngine::remove ( )
overridevirtual

\reimp

Reimplemented from QFSFileEngine.

Definition at line 354 of file qtemporaryfile.cpp.

References QFSFileEngine::close(), d, filePathIsTemplate, filePathWasTemplate, isUnnamedFile(), and QFSFileEngine::remove().

+ Here is the call graph for this function:

◆ rename()

bool QTemporaryFileEngine::rename ( const QString newName)
overridevirtual

\reimp

Reimplemented from QFSFileEngine.

Definition at line 376 of file qtemporaryfile.cpp.

References QFSFileEngine::close(), DontOverwrite, isUnnamedFile(), materializeUnnamedFile(), ok, and QFSFileEngine::rename().

+ Here is the call graph for this function:

◆ renameOverwrite()

bool QTemporaryFileEngine::renameOverwrite ( const QString newName)
overridevirtual

\reimp

Reimplemented from QFSFileEngine.

Definition at line 387 of file qtemporaryfile.cpp.

References QFSFileEngine::close(), isUnnamedFile(), materializeUnnamedFile(), ok, Overwrite, and QFSFileEngine::renameOverwrite().

+ Here is the call graph for this function:

◆ setFileName()

void QTemporaryFileEngine::setFileName ( const QString file)
overridevirtual

\reimp

Reimplemented from QFSFileEngine.

Definition at line 302 of file qtemporaryfile.cpp.

References QFSFileEngine::close(), file, and QFSFileEngine::setFileName().

+ Here is the call graph for this function:

Member Data Documentation

◆ fileMode

quint32 QTemporaryFileEngine::fileMode = 0

Definition at line 112 of file qtemporaryfile_p.h.

Referenced by initialize(), and open().

◆ filePathIsTemplate

bool QTemporaryFileEngine::filePathIsTemplate = true

Definition at line 114 of file qtemporaryfile_p.h.

Referenced by initialize(), isUnnamedFile(), materializeUnnamedFile(), open(), and remove().

◆ filePathWasTemplate

bool QTemporaryFileEngine::filePathWasTemplate = true

Definition at line 115 of file qtemporaryfile_p.h.

Referenced by initialize(), and remove().

◆ flags

int QTemporaryFileEngine::flags = 0

Definition at line 113 of file qtemporaryfile_p.h.

◆ templateName

const QString& QTemporaryFileEngine::templateName

Definition at line 111 of file qtemporaryfile_p.h.

Referenced by fileName(), materializeUnnamedFile(), and open().

◆ unnamedFile

bool QTemporaryFileEngine::unnamedFile = false

Definition at line 116 of file qtemporaryfile_p.h.

Referenced by isUnnamedFile(), materializeUnnamedFile(), and open().


The documentation for this class was generated from the following files: