Example #1
0
void FStatsWriteFile::NewFrame( int64 TargetFrame )
{
	SCOPE_CYCLE_COUNTER( STAT_StreamFile );

	// Currently raw stat files are limited to 120 frames.
	enum
	{
		MAX_NUM_RAWFRAMES = 120,
	};
	if( Header.bRawStatsFile )
	{
		if( FCommandStatsFile::FirstFrame == -1 )
		{
			FCommandStatsFile::FirstFrame = TargetFrame;
		}
		else if( TargetFrame > FCommandStatsFile::FirstFrame + MAX_NUM_RAWFRAMES )
		{
			FCommandStatsFile::Stop();
			FCommandStatsFile::FirstFrame = -1;
			return;
		}
	}

	WriteFrame( TargetFrame );
	SendTask();
}
Example #2
0
void CXTaskDlg::CheckForUpdate()
{
	CXsvrDlg *pDlg = (CXsvrDlg*)AfxGetMainWnd();

	CTime today;
	today = CTime::GetCurrentTime();
	CString strNow = today.Format(_T("%Y-%m-%d %H:%M:%S"));

	char *buf = (LPSTR)(LPCTSTR)strNow;
	XTask task;
	task.SetDate(buf);
	task.SetTime(buf);

	list<XTask*>::iterator iLast = m_listTask.end();
	for (list<XTask*>::iterator iTask = m_listTask.begin();
		iTask != iLast;)
	{
		// 是时候执行任务了。
		if ( (task.nDate > (*iTask)->nDate)
			| ((task.nDate == (*iTask)->nDate)&&task.nTime >= (*iTask)->nTime))
		{
			// 日期已过
			pDlg->AddErrorInfo((*iTask)->szContent);

			XTask *p = (*iTask);
			m_listTask.remove(*iTask++);

			SendTask(p->nID, p->szContent);
			DeleteTask(p->nID);

			if (p->nFrequency == 0)
			{
				CTime timeTomorrow(today.GetYear(),
					today.GetMonth(),
					today.GetDay()+1,
					today.GetHour(),
					today.GetMinute(),
					today.GetSecond());
				CString strTomorrow = timeTomorrow.Format(_T("%Y-%m-%d %H:%M:%S"));
				AddNewTask(strTomorrow, p->szContent, 0);
				pDlg->AddErrorInfo(strTomorrow);
			}
			else
			{
				DeleteReceiver(p->nID);
			}

			delete p;
		}
		else
		{
			++ iTask;
		}
	}

	// 任务完成后,重新启动计时器
	SetTimer(TIMER_SCAN_DATABASE, TIMER_SCAN_DATABASE_TEIM, NULL);
}
Example #3
0
void FStatsWriteFile::Stop()
{
	if( IsValid() )
	{
		StatsMasterEnableSubtract();
		RemoveNewFrameDelegate();
		SendTask();
		SendTask();
		Finalize();

		File->Close();
		delete File;
		File = nullptr;

		UE_LOG( LogStats, Log, TEXT( "Wrote stats file: %s" ), *ArchiveFilename );
		FCommandStatsFile::LastFileSaved = ArchiveFilename;
	}
}