示例#1
0
bool QDSDataStore::add( const QUniqueId& id,
                        QFile& data,
                        const QMimeType& type )
{
    // Create info file and copy data file (in an atomic fashion)
    QDSLockedFile infoFile( infoFileName( id ) );
    if ( infoFile.exists() ) {
        qLog(DataSharing) << "QDSDataStore::add - info file already exists";
        return false;
    }

    if ( !infoFile.openLocked( QIODevice::WriteOnly ) ) {
        qLog(DataSharing) << "QDSDataStore::add - "
                          << "info file can't be written to";
        return false;
    }

    if ( !data.copy( dataFileName( id ) ) ) {
        qLog(DataSharing) << "QDSDataStore::add - couldn't copy data file";
        return false;
    }

    QDataStream ds(&infoFile);
    ds << 1;
    ds << 0;
    ds << type.id();

    return true;
}
示例#2
0
/*!
    Determines the approriate directory within a \a location path for saving content of a given \a {mimeType}.
*/
QDir QFSContentEngine::determineDirectory(const QMimeType &mimeType, const QString &location)
{
    QDir dir(location + QLatin1Char('/') + mimeType.id());

    if (!dir.exists())
        QDir::root().mkpath(dir.absolutePath());

    return dir;
}
示例#3
0
 QDLSourceSelectorPrivate( const QMimeType& responseDataType )
 :   serviceList( 0 ),
     services( 0 ),
     itemToServiceIndex()
 {
     QStringList attributes;
     attributes.append( "QDL" ); // No tr
     attributes.append( "request" ); // No tr
     services = new QDSServices( QDLCLIENT_HINT_MIMETYPE,
                                 responseDataType.id(),
                                 attributes );
 }
示例#4
0
bool QDSDataStore::add( const QUniqueId& id,
                        const QByteArray& data,
                        const QMimeType& type )
{
    // Create info and data files (in an atomic fashion)
    QDSLockedFile infoFile( infoFileName( id ) );
    if ( infoFile.exists() ) {
        qLog(DataSharing) << "QDSDataStore::add - info file already exists";
        return false;
    }

    if ( !infoFile.openLocked( QIODevice::WriteOnly ) ) {
        qLog(DataSharing) << "QDSDataStore::add - "
                          << "info file can't be written to";
        return false;
    }

    QDSLockedFile dataFile( dataFileName( id ) );
    if ( dataFile.exists() ) {
        qLog(DataSharing) << "QDSDataStore::add - data file already exists";
        return false;
    }

    if ( !dataFile.openLocked( QIODevice::WriteOnly ) ) {
        qLog(DataSharing) << "QDSDataStore::add - "
                          << "data file can't be written to";
        return false;
    }

    // Write to files
    QDataStream infoDs( &infoFile );
    infoDs << 1;
    infoDs << 0;
    infoDs << type.id();

    dataFile.write( data );

    return true;
}