Example #1
0
void MIOSystem::Update( U32 uiTickTime )
{
	while(true){
		m_CS.Enter();
		STD_VECTOR<MFile*>	lst	=	m_lstFile;
		m_lstFile.clear();
		m_CS.Leave();

		STD_VECTOR<MFile*>::iterator	i	=	lst.begin();
		for(;i!=lst.end();i++){
			MFile* pFile = (*i);
			SaveFile(pFile->GetFileInfo(),pFile->GetData(),pFile->GetDataSize());
			U32	uiRA	=	pFile->GetFileIndexRA();
			DWORD dWrite=0;
			LARGE_INTEGER fpos;
			fpos.QuadPart	=	uiRA;
			LARGE_INTEGER oldpos;
			SetFilePointerEx(m_FileIndex,fpos,&oldpos,FILE_BEGIN);
			WriteFile(m_FileIndex,&pFile->GetFileInfo().idx,sizeof(U32),&dWrite,NULL);
			pFile->ReleaseRef();
		}
		m_WaitExit.Wait(1000);
		if(m_bExit){
			break;
		}
	}
	
}