Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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;
}