Пример #1
0
    std::shared_ptr<void> TelemetryWorker::processWorkItem(WorkItem &workItem) {
        processOneItem(workItem.m_Item);

        if (workItem.isMilestone()) {
            // force context switch for more imporant tasks
            QThread::msleep(TELEMETRY_SLEEP_MILLIS);
        }

        return std::shared_ptr<void>();
    }
Пример #2
0
bool PodSync::performSync( const char *pSrc, const char *pDst )
{
    DirectoryEnum srcEnumerator;
    DirectoryEnum dstEnumerator;
    FileInfo srcInfo;
    FileInfo dstInfo;
    FileInfo *pSrcInfo = &srcInfo;
    bool result = false;

    // Check that source is valid
    if( false == srcInfo.getInfo( pSrc ))
    {
        rWarning( "Could not get info: %s", pSrc );
        return false;
    }
    // Check that destination is valid
    if( false == dstInfo.getInfo( pDst ))
    {
        rWarning( "Could not get info: %s", pDst );
        if( false == makeDirs( pDst ))
        {
            rError( "Could not create destination: %s", pDst );
            return false;
        }
        else
        {
            if( false == dstInfo.getInfo( pDst ))
            {
                rError( "Could not get info: %s", pDst );
                return false;
            }
        }
    }

    // Check that destination is a directory
    if( false == dstInfo.isDir() )
    {
        rError( "%s is not a directory", pDst );
        return false;
    }
    rInfo( "Source: %s", srcInfo.getName() );
    if( true == srcInfo.isDir() )
    {
        rInfo( "Enumerating %s", srcInfo.getName() );
        // Skip . and ..
        srcEnumerator.findFirst( pSrc );
        srcEnumerator.findNext();
        pSrcInfo = srcEnumerator.findNext();
        while( 0 != pSrcInfo )
        {
            result = processOneItem( pSrcInfo, &dstInfo );
            if( false == result )
            {
                rError( "Sync %s failed", pSrcInfo->getName() );
            }
            pSrcInfo = srcEnumerator.findNext();
        }
    }
    else
    {
        result = processOneItem( pSrcInfo, &dstInfo );
    }
    return result;
}