Example #1
0
/*!
    Flushes any buffered data to the file. Returns true if successful;
    otherwise returns false.
*/
bool QFileDevice::flush()
{
    Q_D(QFileDevice);
    if (!d->fileEngine) {
        qWarning("QFileDevice::flush: No file engine. Is IODevice open?");
        return false;
    }

    if (!d->writeBuffer.isEmpty()) {
        qint64 size = d->writeBuffer.size();
        if (_qfile_writeData(d->fileEngine, &d->writeBuffer) != size) {
            QFileDevice::FileError err = d->fileEngine->error();
            if (err == QFileDevice::UnspecifiedError)
                err = QFileDevice::WriteError;
            d->setError(err, d->fileEngine->errorString());
            return false;
        }
    }

    if (!d->fileEngine->flush()) {
        QFileDevice::FileError err = d->fileEngine->error();
        if (err == QFileDevice::UnspecifiedError)
            err = QFileDevice::WriteError;
        d->setError(err, d->fileEngine->errorString());
        return false;
    }
    return true;
}
Example #2
0
bool
QFile::flush()
{
    Q_D(QFile);
    if (!d->writeBuffer.isEmpty()) {
        qint64 size = d->writeBuffer.size();
        if (_qfile_writeData(d->fileEngine ? d->fileEngine : fileEngine(),
                             &d->writeBuffer) != size) {
            QFile::FileError err = fileEngine()->error();
            if(err == QFile::UnspecifiedError)
                err = QFile::WriteError;
            d->setError(err, fileEngine()->errorString());
            return false;
        }
    }

    if (!fileEngine()->flush()) {
        QFile::FileError err = fileEngine()->error();
        if(err == QFile::UnspecifiedError)
            err = QFile::WriteError;
        d->setError(err, fileEngine()->errorString());
        return false;
    }
    return true;
}