Qt 4.8
Classes | Public Types | Public Functions | Static Public Functions | Protected Functions | Protected Variables | Related Functions | List of all members
QAbstractFileEngine Class Reference

The QAbstractFileEngine class provides an abstraction for accessing the filesystem. More...

#include <qabstractfileengine.h>

Inheritance diagram for QAbstractFileEngine:
QFSFileEngine QResourceFileEngine QTemporaryFileEngine

Classes

class  ExtensionOption
 provides an extended input argument to QAbstractFileEngine's extension support. More...
 
class  ExtensionReturn
 provides an extended output argument to QAbstractFileEngine's extension support. More...
 
class  MapExtensionOption
 
class  MapExtensionReturn
 
class  UnMapExtensionOption
 

Public Types

enum  Extension { AtEndExtension, FastReadLineExtension, MapExtension, UnMapExtension }
 This enum describes the types of extensions that the file engine can support. More...
 
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, LinkName, CanonicalName, CanonicalPathName,
  BundleName, NFileNames = 9
}
 These values are used to request a file name in a particular format. More...
 
enum  FileOwner { OwnerUser, OwnerGroup }
 
enum  FileTime { CreationTime, ModificationTime, AccessTime }
 These are used by the fileTime() function. More...
 
typedef QAbstractFileEngineIterator Iterator
 

Public Functions

bool atEnd () const
 Returns true if the current position is at the end of the file; otherwise, returns false. More...
 
virtual IteratorbeginEntryList (QDir::Filters filters, const QStringList &filterNames)
 Returns an instance of a QAbstractFileEngineIterator using filters for entry filtering and filterNames for name filtering. More...
 
virtual bool caseSensitive () const
 Should return true if the underlying file system is case-sensitive; otherwise return false. More...
 
virtual bool close ()
 Closes the file, returning true if successful; otherwise returns false. More...
 
virtual bool copy (const QString &newName)
 Copies the contents of this file to a file with the name newName. More...
 
virtual IteratorendEntryList ()
 
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. More...
 
QFile::FileError error () const
 Returns the QFile::FileError that resulted from the last failed operation. More...
 
QString errorString () const
 Returns the human-readable message appropriate to the current error reported by error(). More...
 
virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0)
 This virtual function can be reimplemented in a QAbstractFileEngine subclass to provide support for extensions. More...
 
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. More...
 
virtual QString fileName (FileName file=DefaultName) const
 Return the file engine's current file name in the format specified by file. More...
 
virtual QDateTime fileTime (FileTime time) const
 If time is CreationTime, return when the file was created. More...
 
virtual bool flush ()
 Flushes the open file, returning true if successful; otherwise returns false. More...
 
virtual int handle () const
 Returns the native file handle for this file engine. More...
 
virtual bool isRelativePath () const
 Return true if the file referred to by this file engine has a relative path; otherwise return false. More...
 
virtual bool isSequential () const
 Returns true if the file is a sequential access device; returns false if the file is a direct access device. More...
 
virtual bool link (const QString &newName)
 Creates a link from the file currently specified by fileName() to newName. More...
 
ucharmap (qint64 offset, qint64 size, QFile::MemoryMapFlags flags)
 Maps size bytes of the file into memory starting at offset. More...
 
virtual bool mkdir (const QString &dirName, bool createParentDirectories) const
 Requests that the directory dirName be created. More...
 
virtual bool open (QIODevice::OpenMode openMode)
 Opens the file in the specified mode. More...
 
virtual QString owner (FileOwner) const
 If owner is OwnerUser return the name of the user who owns the file. More...
 
virtual uint ownerId (FileOwner) const
 If owner is OwnerUser return the ID of the user who owns the file. More...
 
virtual qint64 pos () const
 Returns the current file position. More...
 
virtual qint64 read (char *data, qint64 maxlen)
 Reads a number of characters from the file into data. More...
 
virtual qint64 readLine (char *data, qint64 maxlen)
 This function reads one line, terminated by a '
' character, from the file info data. More...
 
virtual bool remove ()
 Requests that the file is deleted from the file system. More...
 
virtual bool rename (const QString &newName)
 Requests that the file be renamed to newName in the file system. More...
 
virtual bool rmdir (const QString &dirName, bool recurseParentDirectories) const
 Requests that the directory dirName is deleted from the file system. More...
 
virtual bool seek (qint64 pos)
 Sets the file position to the given offset. More...
 
virtual void setFileName (const QString &file)
 Sets the file engine's file name to file. More...
 
virtual bool setPermissions (uint perms)
 Requests that the file's permissions be set to perms. More...
 
virtual bool setSize (qint64 size)
 Requests that the file be set to size size. More...
 
virtual qint64 size () const
 Returns the size of the file. More...
 
virtual bool supportsExtension (Extension extension) const
 This virtual function returns true if the file engine supports extension; otherwise, false is returned. More...
 
bool unmap (uchar *ptr)
 Unmaps the memory address. More...
 
virtual qint64 write (const char *data, qint64 len)
 Writes len bytes from data to the file. More...
 
virtual ~QAbstractFileEngine ()
 Destroys the QAbstractFileEngine. More...
 

Static Public Functions

static QAbstractFileEnginecreate (const QString &fileName)
 Creates and returns a QAbstractFileEngine suitable for processing fileName. More...
 

Protected Functions

 QAbstractFileEngine ()
 Constructs a new QAbstractFileEngine that does not refer to any file or directory. More...
 
 QAbstractFileEngine (QAbstractFileEnginePrivate &)
 Constructs a QAbstractFileEngine. More...
 
void setError (QFile::FileError error, const QString &str)
 Sets the error type to error, and the error string to errorString. More...
 

Protected Variables

QScopedPointer< QAbstractFileEnginePrivated_ptr
 

Related Functions

(Note that these are not member functions.)

 Iterator
 Synonym for QAbstractFileEngineIterator. More...
 

Detailed Description

The QAbstractFileEngine class provides an abstraction for accessing the filesystem.

Note
This class or function is reentrant.
Since
4.1

The QDir, QFile, and QFileInfo classes all make use of a QAbstractFileEngine internally. If you create your own QAbstractFileEngine subclass (and register it with Qt by creating a QAbstractFileEngineHandler subclass), your file engine will be used when the path is one that your file engine handles.

A QAbstractFileEngine refers to one file or one directory. If the referent is a file, the setFileName(), rename(), and remove() functions are applicable. If the referent is a directory the mkdir(), rmdir(), and entryList() functions are applicable. In all cases the caseSensitive(), isRelativePath(), fileFlags(), ownerId(), owner(), and fileTime() functions are applicable.

A QAbstractFileEngine subclass can be created to do synchronous network I/O based file system operations, local file system operations, or to operate as a resource system to access file based resources.

See also
QAbstractFileEngineHandler

Definition at line 63 of file qabstractfileengine.h.

Typedefs

◆ Iterator

Definition at line 147 of file qabstractfileengine.h.

Enumerations

◆ Extension

This enum describes the types of extensions that the file engine can support.

Since
4.3

Before using these extensions, you must verify that the extension is supported (i.e., call supportsExtension()).

  • AtEndExtension Whether the current file position is at the end of the file or not. This extension allows file engines that implement local buffering to report end-of-file status without having to check the size of the file. It is also useful for sequential files, where the size of the file cannot be used to determine whether or not you have reached the end. This extension returns true if the file is at the end; otherwise it returns false. The input and output arguments to extension() are ignored.
  • FastReadLineExtension Whether the file engine provides a fast implementation for readLine() or not. If readLine() remains unimplemented in the file engine, QAbstractFileEngine will provide an implementation based on calling read() repeatedly. If supportsExtension() returns false for this extension, however, QIODevice can provide a faster implementation by making use of its internal buffer. For engines that already provide a fast readLine() implementation, returning false for this extension can avoid unnnecessary double-buffering in QIODevice.
  • MapExtension Whether the file engine provides the ability to map a file to memory.
  • UnMapExtension Whether the file engine provides the ability to unmap memory that was previously mapped.
Enumerator
AtEndExtension 
FastReadLineExtension 
MapExtension 
UnMapExtension 

Definition at line 158 of file qabstractfileengine.h.

◆ FileFlag

The permissions and types of a file, suitable for OR'ing together.

  • ReadOwnerPerm The owner of the file has permission to read it.
  • WriteOwnerPerm The owner of the file has permission to write to it.
  • ExeOwnerPerm The owner of the file has permission to execute it.
  • ReadUserPerm The current user has permission to read the file.
  • WriteUserPerm The current user has permission to write to the file.
  • ExeUserPerm The current user has permission to execute the file.
  • ReadGroupPerm Members of the current user's group have permission to read the file.
  • WriteGroupPerm Members of the current user's group have permission to write to the file.
  • ExeGroupPerm Members of the current user's group have permission to execute the file.
  • ReadOtherPerm All users have permission to read the file.
  • WriteOtherPerm All users have permission to write to the file.
  • ExeOtherPerm All users have permission to execute the file.
  • LinkType The file is a link to another file (or link) in the file system (i.e. not a file or directory).
  • FileType The file is a regular file to the file system (i.e. not a link or directory)
  • BundleType The file is a Mac OS X bundle implies DirectoryType
  • DirectoryType The file is a directory in the file system (i.e. not a link or file).
  • HiddenFlag The file is hidden.
  • ExistsFlag The file actually exists in the file system.
  • RootFlag The file or the file pointed to is the root of the filesystem.
  • LocalDiskFlag The file resides on the local disk and can be passed to standard file functions.
  • Refresh Passing this flag will force the file engine to refresh all flags.
  • PermsMask
  • TypesMask
  • FlagsMask
  • FileInfoAll
See also
fileFlags(), setFileName()
Enumerator
ReadOwnerPerm 
WriteOwnerPerm 
ExeOwnerPerm 
ReadUserPerm 
WriteUserPerm 
ExeUserPerm 
ReadGroupPerm 
WriteGroupPerm 
ExeGroupPerm 
ReadOtherPerm 
WriteOtherPerm 
ExeOtherPerm 
LinkType 
FileType 
DirectoryType 
BundleType 
HiddenFlag 
LocalDiskFlag 
ExistsFlag 
RootFlag 
Refresh 
PermsMask 
TypesMask 
FlagsMask 
FileInfoAll 

Definition at line 66 of file qabstractfileengine.h.

66  {
67  //perms (overlaps the QFile::Permission)
68  ReadOwnerPerm = 0x4000, WriteOwnerPerm = 0x2000, ExeOwnerPerm = 0x1000,
69  ReadUserPerm = 0x0400, WriteUserPerm = 0x0200, ExeUserPerm = 0x0100,
70  ReadGroupPerm = 0x0040, WriteGroupPerm = 0x0020, ExeGroupPerm = 0x0010,
71  ReadOtherPerm = 0x0004, WriteOtherPerm = 0x0002, ExeOtherPerm = 0x0001,
72 
73  //types
74  LinkType = 0x10000,
75  FileType = 0x20000,
76  DirectoryType = 0x40000,
77  BundleType = 0x80000,
78 
79  //flags
80  HiddenFlag = 0x0100000,
81  LocalDiskFlag = 0x0200000,
82  ExistsFlag = 0x0400000,
83  RootFlag = 0x0800000,
84  Refresh = 0x1000000,
85 
86  //masks
87  PermsMask = 0x0000FFFF,
88  TypesMask = 0x000F0000,
89  FlagsMask = 0x0FF00000,
91  };

◆ FileName

These values are used to request a file name in a particular format.

  • DefaultName The same filename that was passed to the QAbstractFileEngine.
  • BaseName The name of the file excluding the path.
  • PathName The path to the file excluding the base name.
  • AbsoluteName The absolute path to the file (including the base name).
  • AbsolutePathName The absolute path to the file (excluding the base name).
  • LinkName The full file name of the file that this file is a link to. (This will be empty if this file is not a link.)
  • CanonicalName Often very similar to LinkName. Will return the true path to the file.
  • CanonicalPathName Same as CanonicalName, excluding the base name.
  • BundleName Returns the name of the bundle implies BundleType is set.
  • NFileNames
See also
fileName(), setFileName()
Enumerator
DefaultName 
BaseName 
PathName 
AbsoluteName 
AbsolutePathName 
LinkName 
CanonicalName 
CanonicalPathName 
BundleName 
NFileNames 

Definition at line 94 of file qabstractfileengine.h.

◆ FileOwner

  • OwnerUser The user who owns the file.
  • OwnerGroup The group who owns the file.
See also
owner(), ownerId(), setFileName()
Enumerator
OwnerUser 
OwnerGroup 

Definition at line 106 of file qabstractfileengine.h.

◆ FileTime

These are used by the fileTime() function.

  • CreationTime When the file was created.
  • ModificationTime When the file was most recently modified.
  • AccessTime When the file was most recently accessed (e.g. read or written to).
See also
setFileName()
Enumerator
CreationTime 
ModificationTime 
AccessTime 

Definition at line 110 of file qabstractfileengine.h.

Constructors and Destructors

◆ ~QAbstractFileEngine()

QAbstractFileEngine::~QAbstractFileEngine ( )
virtual

Destroys the QAbstractFileEngine.

Definition at line 388 of file qabstractfileengine.cpp.

389 {
390 }

◆ QAbstractFileEngine() [1/2]

QAbstractFileEngine::QAbstractFileEngine ( )
protected

Constructs a new QAbstractFileEngine that does not refer to any file or directory.

See also
setFileName()

Definition at line 367 of file qabstractfileengine.cpp.

368 {
369  d_ptr->q_ptr = this;
370 }
QScopedPointer< QAbstractFileEnginePrivate > d_ptr

◆ QAbstractFileEngine() [2/2]

QAbstractFileEngine::QAbstractFileEngine ( QAbstractFileEnginePrivate dd)
protected

Constructs a QAbstractFileEngine.

Warning
This function is not part of the public interface.

Definition at line 380 of file qabstractfileengine.cpp.

380  : d_ptr(&dd)
381 {
382  d_ptr->q_ptr = this;
383 }
QScopedPointer< QAbstractFileEnginePrivate > d_ptr

Functions

◆ atEnd()

bool QAbstractFileEngine::atEnd ( ) const

Returns true if the current position is at the end of the file; otherwise, returns false.

Since
4.3

This function bases its behavior on calling extension() with AtEndExtension. If the engine does not support this extension, false is returned.

See also
extension(), supportsExtension(), QFile::atEnd()

Definition at line 777 of file qabstractfileengine.cpp.

778 {
779  return const_cast<QAbstractFileEngine *>(this)->extension(AtEndExtension);
780 }
The QAbstractFileEngine class provides an abstraction for accessing the filesystem.
virtual bool extension(Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0)
This virtual function can be reimplemented in a QAbstractFileEngine subclass to provide support for e...

◆ beginEntryList()

QAbstractFileEngine::Iterator * QAbstractFileEngine::beginEntryList ( QDir::Filters  filters,
const QStringList filterNames 
)
virtual

Returns an instance of a QAbstractFileEngineIterator using filters for entry filtering and filterNames for name filtering.

This function is called by QDirIterator to initiate directory iteration.

QDirIterator takes ownership of the returned instance, and deletes it when it's done.

See also
QDirIterator

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 1097 of file qabstractfileengine.cpp.

Referenced by QDirIteratorPrivate::pushDirectory().

1098 {
1099  Q_UNUSED(filters);
1100  Q_UNUSED(filterNames);
1101  return 0;
1102 }
static const char *const filters[3]
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ caseSensitive()

bool QAbstractFileEngine::caseSensitive ( ) const
virtual

Should return true if the underlying file system is case-sensitive; otherwise return false.

This virtual function must be reimplemented by all subclasses.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 592 of file qabstractfileengine.cpp.

Referenced by QFileInfo::operator==(), and QDir::operator==().

593 {
594  return false;
595 }

◆ close()

bool QAbstractFileEngine::close ( )
virtual

Closes the file, returning true if successful; otherwise returns false.

The default implementation always returns false.

Reimplemented in QTemporaryFileEngine, QResourceFileEngine, and QFSFileEngine.

Definition at line 415 of file qabstractfileengine.cpp.

416 {
417  return false;
418 }

◆ copy()

bool QAbstractFileEngine::copy ( const QString newName)
virtual

Copies the contents of this file to a file with the name newName.

Returns true on success; otherwise, false is returned.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 498 of file qabstractfileengine.cpp.

499 {
500  Q_UNUSED(newName);
501  return false;
502 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ create()

QAbstractFileEngine * QAbstractFileEngine::create ( const QString fileName)
static

Creates and returns a QAbstractFileEngine suitable for processing fileName.

You should not need to call this function; use QFile, QFileInfo or QDir directly instead.

If you reimplemnt this function, it should only return file engines that knows how to handle fileName; otherwise, it should return 0.

See also
QAbstractFileEngineHandler

Definition at line 208 of file qabstractfileengine.cpp.

Referenced by QFile::fileEngine().

209 {
210  QFileSystemEntry entry(fileName);
211  QFileSystemMetaData metaData;
213 
214 #ifndef QT_NO_FSFILEENGINE
215  if (!engine)
216  // fall back to regular file engine
217  return new QFSFileEngine(entry.filePath());
218 #endif
219 
220  return engine;
221 }
The QAbstractFileEngine class provides an abstraction for accessing the filesystem.
static QAbstractFileEngine * resolveEntryAndCreateLegacyEngine(QFileSystemEntry &entry, QFileSystemMetaData &data)
Resolves the entry (see QDir::searchPaths) and returns an engine for it, but never a QFSFileEngine...
The QFSFileEngine class implements Qt&#39;s default file engine.
Definition: qfsfileengine.h:60

◆ endEntryList()

QAbstractFileEngine::Iterator * QAbstractFileEngine::endEntryList ( )
virtual
Warning
This function is not part of the public interface.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 1107 of file qabstractfileengine.cpp.

1108 {
1109  return 0;
1110 }

◆ entryList()

QStringList QAbstractFileEngine::entryList ( QDir::Filters  filters,
const QStringList filterNames 
) const
virtual

Requests that a list of all the files matching the filters list based on the filterNames in the file engine's directory are returned.

Should return an empty list if the file engine refers to a file rather than a directory, or if the directory is unreadable or does not exist or if nothing matches the specifications.

This virtual function must be reimplemented by all subclasses.

See also
setFileName()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 623 of file qabstractfileengine.cpp.

Referenced by QFSFileEngine::entryList(), and QResourceFileEngine::entryList().

624 {
625  QStringList ret;
626  QDirIterator it(fileName(), filterNames, filters);
627  while (it.hasNext()) {
628  it.next();
629  ret << it.fileName();
630  }
631  return ret;
632 }
virtual QString fileName(FileName file=DefaultName) const
Return the file engine&#39;s current file name in the format specified by file.
#define it(className, varName)
The QDirIterator class provides an iterator for directory entrylists.
Definition: qdiriterator.h:54
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
static const char *const filters[3]

◆ error()

QFile::FileError QAbstractFileEngine::error ( ) const

Returns the QFile::FileError that resulted from the last failed operation.

If QFile::UnspecifiedError is returned, QFile will use its own idea of the error status.

See also
QFile::FileError, errorString()

Definition at line 1272 of file qabstractfileengine.cpp.

Referenced by QTemporaryFileEngine::open().

1273 {
1274  Q_D(const QAbstractFileEngine);
1275  return d->fileError;
1276 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAbstractFileEngine class provides an abstraction for accessing the filesystem.

◆ errorString()

QString QAbstractFileEngine::errorString ( ) const

Returns the human-readable message appropriate to the current error reported by error().

If no suitable string is available, an empty string is returned.

See also
error()

Definition at line 1285 of file qabstractfileengine.cpp.

1286 {
1287  Q_D(const QAbstractFileEngine);
1288  return d->errorString;
1289 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAbstractFileEngine class provides an abstraction for accessing the filesystem.

◆ extension()

bool QAbstractFileEngine::extension ( Extension  extension,
const ExtensionOption option = 0,
ExtensionReturn output = 0 
)
virtual

This virtual function can be reimplemented in a QAbstractFileEngine subclass to provide support for extensions.

Since
4.3

The option argument is provided as input to the extension, and this function can store output results in output.

The behavior of this function is determined by extension; see the Extension documentation for details.

You can call supportsExtension() to check if an extension is supported by the file engine.

By default, no extensions are supported, and this function returns false.

See also
supportsExtension(), Extension

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 1239 of file qabstractfileengine.cpp.

Referenced by atEnd(), map(), and unmap().

1240 {
1242  Q_UNUSED(option);
1243  Q_UNUSED(output);
1244  return false;
1245 }
virtual bool extension(Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0)
This virtual function can be reimplemented in a QAbstractFileEngine subclass to provide support for e...
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ fileFlags()

QAbstractFileEngine::FileFlags QAbstractFileEngine::fileFlags ( FileFlags  type = FileInfoAll) const
virtual

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.

In your reimplementation you can use the type argument as an optimization hint and only return the OR'd set of members that are true and that match those in type; in other words you can ignore any members not mentioned in type, thus avoiding some potentially expensive lookups or system calls.

This virtual function must be reimplemented by all subclasses.

See also
setFileName()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 649 of file qabstractfileengine.cpp.

Referenced by _q_checkEntry(), QFontDatabase::addApplicationFont(), QDirPrivate::exists(), QFreetypeFace::getFace(), QFileInfoPrivate::getFileFlags(), QDir::isReadable(), QDir::isRoot(), and QFile::permissions().

650 {
651  Q_UNUSED(type);
652  return 0;
653 }
int type
Definition: qmetatype.cpp:239
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ fileName()

QString QAbstractFileEngine::fileName ( FileName  file = DefaultName) const
virtual

Return the file engine's current file name in the format specified by file.

If you don't handle some FileName possibilities, return the file name set in setFileName() when an unhandled format is requested.

This virtual function must be reimplemented by all subclasses.

See also
setFileName(), FileName

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 684 of file qabstractfileengine.cpp.

Referenced by QDir::canonicalPath(), entryList(), QTemporaryFile::fileName(), QFile::fileName(), QFileInfoPrivate::getFileName(), QDir::makeAbsolute(), QFile::readLink(), and QDirPrivate::resolveAbsoluteEntry().

685 {
686  Q_UNUSED(file);
687  return QString();
688 }
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ fileTime()

QDateTime QAbstractFileEngine::fileTime ( FileTime  time) const
virtual

If time is CreationTime, return when the file was created.

If time is ModificationTime, return when the file was most recently modified. If time is AccessTime, return when the file was most recently accessed (e.g. read or written). If the time cannot be determined return QDateTime() (an invalid date time).

This virtual function must be reimplemented by all subclasses.

See also
setFileName(), QDateTime, QDateTime::isValid(), FileTime

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 733 of file qabstractfileengine.cpp.

Referenced by QFileInfoPrivate::getFileTime().

734 {
735  Q_UNUSED(time);
736  return QDateTime();
737 }
The QDateTime class provides date and time functions.
Definition: qdatetime.h:216
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ flush()

bool QAbstractFileEngine::flush ( )
virtual

Flushes the open file, returning true if successful; otherwise returns false.

The default implementation always returns false.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 426 of file qabstractfileengine.cpp.

427 {
428  return false;
429 }

◆ handle()

int QAbstractFileEngine::handle ( ) const
virtual

Returns the native file handle for this file engine.

This handle must be used with care; its value and type are platform specific, and using it will most likely lead to non-portable code.

Reimplemented in QFSFileEngine.

Definition at line 757 of file qabstractfileengine.cpp.

758 {
759  return -1;
760 }

◆ isRelativePath()

bool QAbstractFileEngine::isRelativePath ( ) const
virtual

Return true if the file referred to by this file engine has a relative path; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also
setFileName()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 605 of file qabstractfileengine.cpp.

Referenced by QDir::isRelative().

606 {
607  return false;
608 }

◆ isSequential()

bool QAbstractFileEngine::isSequential ( ) const
virtual

Returns true if the file is a sequential access device; returns false if the file is a direct access device.

Operations involving size() and seek(int) are not valid on sequential devices.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 476 of file qabstractfileengine.cpp.

477 {
478  return false;
479 }

◆ link()

bool QAbstractFileEngine::link ( const QString newName)
virtual

Creates a link from the file currently specified by fileName() to newName.

What a link is depends on the underlying filesystem (be it a shortcut on Windows or a symbolic link on Unix). Returns true if successful; otherwise returns false.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 525 of file qabstractfileengine.cpp.

526 {
527  Q_UNUSED(newName);
528  return false;
529 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ map()

uchar * QAbstractFileEngine::map ( qint64  offset,
qint64  size,
QFile::MemoryMapFlags  flags 
)

Maps size bytes of the file into memory starting at offset.

Since
4.4

Returns a pointer to the memory if successful; otherwise returns false if, for example, an error occurs.

This function bases its behavior on calling extension() with MapExtensionOption. If the engine does not support this extension, 0 is returned.

flags is currently not used, but could be used in the future.

See also
unmap(), supportsExtension()

Definition at line 801 of file qabstractfileengine.cpp.

802 {
803  MapExtensionOption option;
804  option.offset = offset;
805  option.size = size;
806  option.flags = flags;
807  MapExtensionReturn r;
808  if (!extension(MapExtension, &option, &r))
809  return 0;
810  return r.address;
811 }
virtual bool extension(Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0)
This virtual function can be reimplemented in a QAbstractFileEngine subclass to provide support for e...
virtual qint64 size() const
Returns the size of the file.

◆ mkdir()

bool QAbstractFileEngine::mkdir ( const QString dirName,
bool  createParentDirectories 
) const
virtual

Requests that the directory dirName be created.

If createParentDirectories is true, then any sub-directories in dirName that don't exist must be created. If createParentDirectories is false then any sub-directories in dirName must already exist for the function to succeed. If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also
setFileName() rmdir() isRelativePath()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 543 of file qabstractfileengine.cpp.

Referenced by QDir::mkdir(), and QDir::mkpath().

544 {
545  Q_UNUSED(dirName);
546  Q_UNUSED(createParentDirectories);
547  return false;
548 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ open()

bool QAbstractFileEngine::open ( QIODevice::OpenMode  mode)
virtual

Opens the file in the specified mode.

Returns true if the file was successfully opened; otherwise returns false.

The mode is an OR combination of QIODevice::OpenMode and QIODevice::HandlingMode values.

Reimplemented in QTemporaryFileEngine, QResourceFileEngine, and QFSFileEngine.

Definition at line 404 of file qabstractfileengine.cpp.

405 {
406  Q_UNUSED(openMode);
407  return false;
408 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ owner()

QString QAbstractFileEngine::owner ( FileOwner  owner) const
virtual

If owner is OwnerUser return the name of the user who owns the file.

If owner is OwnerGroup return the name of the group that own the file. If you can't determine the owner return QString().

This virtual function must be reimplemented by all subclasses.

See also
ownerId() setFileName(), FileOwner

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 715 of file qabstractfileengine.cpp.

Referenced by QFileInfoPrivate::getFileOwner().

716 {
717  Q_UNUSED(owner);
718  return QString();
719 }
virtual QString owner(FileOwner) const
If owner is OwnerUser return the name of the user who owns the file.
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ ownerId()

uint QAbstractFileEngine::ownerId ( FileOwner  owner) const
virtual

If owner is OwnerUser return the ID of the user who owns the file.

If owner is OwnerGroup return the ID of the group that own the file. If you can't determine the owner return -2.

This virtual function must be reimplemented by all subclasses.

See also
owner() setFileName(), FileOwner

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 699 of file qabstractfileengine.cpp.

700 {
701  Q_UNUSED(owner);
702  return 0;
703 }
virtual QString owner(FileOwner) const
If owner is OwnerUser return the name of the user who owns the file.
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ pos()

qint64 QAbstractFileEngine::pos ( ) const
virtual

Returns the current file position.

This is the position of the data read/write head of the file.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 444 of file qabstractfileengine.cpp.

445 {
446  return 0;
447 }

◆ read()

qint64 QAbstractFileEngine::read ( char *  data,
qint64  maxlen 
)
virtual

Reads a number of characters from the file into data.

At most maxlen characters will be read.

Returns -1 if a fatal error occurs, or 0 if there are no bytes to read.

Reimplemented in QFSFileEngine, and QResourceFileEngine.

Definition at line 1119 of file qabstractfileengine.cpp.

1120 {
1121  Q_UNUSED(data);
1122  Q_UNUSED(maxlen);
1123  return -1;
1124 }
static const char * data(const QByteArray &arr)
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ readLine()

qint64 QAbstractFileEngine::readLine ( char *  data,
qint64  maxlen 
)
virtual

This function reads one line, terminated by a '
' character, from the file info data.

At most maxlen characters will be read. The end-of-line character is included.

Reimplemented in QFSFileEngine.

Definition at line 1142 of file qabstractfileengine.cpp.

1143 {
1144  qint64 readSoFar = 0;
1145  while (readSoFar < maxlen) {
1146  char c;
1147  qint64 readResult = read(&c, 1);
1148  if (readResult <= 0)
1149  return (readSoFar > 0) ? readSoFar : -1;
1150  ++readSoFar;
1151  *data++ = c;
1152  if (c == '\n')
1153  return readSoFar;
1154  }
1155  return readSoFar;
1156 }
unsigned char c[8]
Definition: qnumeric_p.h:62
static const char * data(const QByteArray &arr)
__int64 qint64
Definition: qglobal.h:942
virtual qint64 read(char *data, qint64 maxlen)
Reads a number of characters from the file into data.

◆ remove()

bool QAbstractFileEngine::remove ( )
virtual

Requests that the file is deleted from the file system.

If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also
setFileName() rmdir()

Reimplemented in QTemporaryFileEngine, QResourceFileEngine, and QFSFileEngine.

Definition at line 489 of file qabstractfileengine.cpp.

490 {
491  return false;
492 }

◆ rename()

bool QAbstractFileEngine::rename ( const QString newName)
virtual

Requests that the file be renamed to newName in the file system.

If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also
setFileName()

Reimplemented in QTemporaryFileEngine, QResourceFileEngine, and QFSFileEngine.

Definition at line 513 of file qabstractfileengine.cpp.

514 {
515  Q_UNUSED(newName);
516  return false;
517 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ rmdir()

bool QAbstractFileEngine::rmdir ( const QString dirName,
bool  recurseParentDirectories 
) const
virtual

Requests that the directory dirName is deleted from the file system.

When recurseParentDirectories is true, then any empty parent-directories in dirName must also be deleted. If recurseParentDirectories is false, only the dirName leaf-node should be deleted. In most file systems a directory cannot be deleted using this function if it is non-empty. If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also
setFileName() remove() mkdir() isRelativePath()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 563 of file qabstractfileengine.cpp.

Referenced by QDir::rmdir(), and QDir::rmpath().

564 {
565  Q_UNUSED(dirName);
566  Q_UNUSED(recurseParentDirectories);
567  return false;
568 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ seek()

bool QAbstractFileEngine::seek ( qint64  offset)
virtual

Sets the file position to the given offset.

Returns true if the position was successfully set; otherwise returns false.

The offset is from the beginning of the file, unless the file is sequential.

See also
isSequential()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 463 of file qabstractfileengine.cpp.

Referenced by QFile::open().

464 {
465  Q_UNUSED(pos);
466  return false;
467 }
virtual qint64 pos() const
Returns the current file position.
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ setError()

void QAbstractFileEngine::setError ( QFile::FileError  error,
const QString errorString 
)
protected

Sets the error type to error, and the error string to errorString.

Call this function to set the error values returned by the higher-level classes.

See also
QFile::error(), QIODevice::errorString(), QIODevice::setErrorString()

Definition at line 1298 of file qabstractfileengine.cpp.

Referenced by QTemporaryFileEngine::close(), QFSFileEnginePrivate::longFileName(), QFSFileEngine::open(), and QTemporaryFileEngine::open().

1299 {
1301  d->fileError = error;
1302  d->errorString = errorString;
1303 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QAbstractFileEngine class provides an abstraction for accessing the filesystem.
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().

◆ setFileName()

void QAbstractFileEngine::setFileName ( const QString file)
virtual

Sets the file engine's file name to file.

This file name is the file that the rest of the virtual functions will operate on.

This virtual function must be reimplemented by all subclasses.

See also
rename()

Reimplemented in QTemporaryFileEngine, QFSFileEngine, and QResourceFileEngine.

Definition at line 747 of file qabstractfileengine.cpp.

Referenced by QDirIteratorPrivate::pushDirectory().

748 {
749  Q_UNUSED(file);
750 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ setPermissions()

bool QAbstractFileEngine::setPermissions ( uint  perms)
virtual

Requests that the file's permissions be set to perms.

The argument perms will be set to the OR-ed together combination of QAbstractFileEngine::FileInfo, with only the QAbstractFileEngine::PermsMask being honored. If the operations succceeds return true; otherwise return false;

This virtual function must be reimplemented by all subclasses.

See also
size()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 666 of file qabstractfileengine.cpp.

667 {
668  Q_UNUSED(perms);
669  return false;
670 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ setSize()

bool QAbstractFileEngine::setSize ( qint64  size)
virtual

Requests that the file be set to size size.

If size is larger than the current file then it is filled with 0's, if smaller it is simply truncated. If the operations succceeds return true; otherwise return false;

This virtual function must be reimplemented by all subclasses.

See also
size()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 580 of file qabstractfileengine.cpp.

581 {
582  Q_UNUSED(size);
583  return false;
584 }
virtual qint64 size() const
Returns the size of the file.
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ size()

qint64 QAbstractFileEngine::size ( ) const
virtual

Returns the size of the file.

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 434 of file qabstractfileengine.cpp.

Referenced by map(), and QFile::size().

435 {
436  return 0;
437 }

◆ supportsExtension()

bool QAbstractFileEngine::supportsExtension ( Extension  extension) const
virtual

This virtual function returns true if the file engine supports extension; otherwise, false is returned.

Since
4.3

By default, no extensions are supported.

See also
extension()

Reimplemented in QResourceFileEngine, and QFSFileEngine.

Definition at line 1259 of file qabstractfileengine.cpp.

1260 {
1262  return false;
1263 }
virtual bool extension(Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0)
This virtual function can be reimplemented in a QAbstractFileEngine subclass to provide support for e...
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ unmap()

bool QAbstractFileEngine::unmap ( uchar address)

Unmaps the memory address.

Since
4.4

Returns true if the unmap succeeds; otherwise returns false.

This function bases its behavior on calling extension() with UnMapExtensionOption. If the engine does not support this extension, false is returned.

See also
map(), supportsExtension()

Definition at line 828 of file qabstractfileengine.cpp.

Referenced by QFSFileEngine::~QFSFileEngine().

829 {
830  UnMapExtensionOption options;
831  options.address = address;
832  return extension(UnMapExtension, &options);
833 }
virtual bool extension(Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0)
This virtual function can be reimplemented in a QAbstractFileEngine subclass to provide support for e...

◆ write()

qint64 QAbstractFileEngine::write ( const char *  data,
qint64  len 
)
virtual

Writes len bytes from data to the file.

Returns the number of characters written on success; otherwise returns -1.

Reimplemented in QFSFileEngine, and QResourceFileEngine.

Definition at line 1130 of file qabstractfileengine.cpp.

Referenced by _qfile_writeData().

1131 {
1132  Q_UNUSED(data);
1133  Q_UNUSED(len);
1134  return -1;
1135 }
static const char * data(const QByteArray &arr)
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

Friends and Related Functions

◆ Iterator()

Iterator
related

Synonym for QAbstractFileEngineIterator.

Since
4.3

Properties

◆ d_ptr

QScopedPointer<QAbstractFileEnginePrivate> QAbstractFileEngine::d_ptr
protected

Definition at line 197 of file qabstractfileengine.h.

Referenced by QAbstractFileEngine().


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