bool OperCFThread::SendProgressInfo(int64 size, int64 progress) { MutexLock lock(Node().GetMutex()); if (Node().NBStopped()) return false; OperCFData *data = ((OperCFData*)Node().Data()); if (!data) return false; data->infoSize = size; data->infoProgress = progress; data->progressChanged = true; if (!WinThreadSignal(INFO_NEXTFILE)) return false; return true; }
int OperThreadNode::CallBack( OperCallback f, void* data ) { MutexLock lock( &mutex ); cbRet = -1; cbData = data; cbFunc = f; if ( !WinThreadSignal( 1 ) ) { return -1; } cbCond.Wait( &mutex ); return cbRet; }
bool OperCFThread::SendCopyNextFileInfo(FSString from, FSString to) { MutexLock lock(Node().GetMutex()); if (Node().NBStopped()) return false; OperCFData *data = ((OperCFData*)Node().Data()); if (!data) return false; data->infoCount++; data->infoSrcUri = from; data->infoDstUri = to; data->pathChanged = true; if (!WinThreadSignal(INFO_NEXTFILE)) return false; data->infoProgress = 0; return true; }
bool OperCFThread::SendProgressInfo( int64_t size, int64_t progress, int64_t bytes ) { MutexLock lock( Node().GetMutex() ); if ( Node().NBStopped() ) { return false; } OperCFData* data = ( ( OperCFData* )Node().Data() ); if ( !data ) { return false; } data->infoSize = size; data->infoProgress = progress; data->infoBytes += bytes; data->infoMs = GetTickMiliseconds(); data->progressChanged = true; if ( !WinThreadSignal( INFO_NEXTFILE ) ) { return false; } return true; }