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>(); }
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; }