Commit cc7fcecd authored by Thiago Macieira's avatar Thiago Macieira
Browse files

Add QStorageInfo::blockSize


[ChangeLog][QtCore][QStorageInfo] Added QStorageInfo::blockSize(), which
returns the optimal block size for data transfer to and from the
storage.

Change-Id: Ib306f8f647014b399b87ffff13f4eba6000452d4
Reviewed-by: default avatarJake Petroules <jake.petroules@petroules.com>
Reviewed-by: default avatarTobias Koenig <tobias.koenig@kdab.com>
parent 62bd4f58
No related merge requests found
Showing with 17 additions and 1 deletion
......@@ -221,6 +221,18 @@ qint64 QStorageInfo::bytesTotal() const
return d->bytesTotal;
}
/*!
\since 5.6
Returns the optimal transfer block size for this filesystem.
Returns -1 if QStorageInfo could not determine the size or if the QStorageInfo
object is not valid.
*/
int QStorageInfo::blockSize() const
{
return d->blockSize;
}
/*!
Returns the type name of the filesystem.
......
......@@ -72,6 +72,7 @@ public:
qint64 bytesTotal() const;
qint64 bytesFree() const;
qint64 bytesAvailable() const;
int blockSize() const;
inline bool isRoot() const;
bool isReadOnly() const;
......
......@@ -76,6 +76,7 @@ void QStorageInfoPrivate::retrievePosixInfo()
device = QByteArray(statfs_buf.f_mntfromname);
readOnly = (statfs_buf.f_flags & MNT_RDONLY) != 0;
fileSystemType = QByteArray(statfs_buf.f_fstypename);
blockSize = statfs_buf.f_bsize;
}
}
......
......@@ -53,7 +53,7 @@ class QStorageInfoPrivate : public QSharedData
{
public:
inline QStorageInfoPrivate() : QSharedData(),
bytesTotal(-1), bytesFree(-1), bytesAvailable(-1),
bytesTotal(-1), bytesFree(-1), bytesAvailable(-1), blockSize(-1),
readOnly(false), ready(false), valid(false)
{}
......@@ -84,6 +84,7 @@ public:
qint64 bytesTotal;
qint64 bytesFree;
qint64 bytesAvailable;
int blockSize;
bool readOnly;
bool ready;
......
......@@ -510,6 +510,7 @@ void QStorageInfoPrivate::retrieveVolumeInfo()
bytesTotal = statfs_buf.f_blocks * statfs_buf.f_bsize;
bytesFree = statfs_buf.f_bfree * statfs_buf.f_bsize;
bytesAvailable = statfs_buf.f_bavail * statfs_buf.f_bsize;
blockSize = statfs_buf.f_bsize;
#if defined(Q_OS_ANDROID) || defined (Q_OS_BSD4)
#if defined(_STATFS_F_FLAGS)
readOnly = (statfs_buf.f_flags & ST_RDONLY) != 0;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment