Exemplo n.º 1
0
int CTracker::Query (void)
{
	CMenu	menu (3);
	int	i;

NetworkInit ();
if (!RequestServerList ())
	return 0;
menu.AddGauge ("                    ", -1, 1000); 
menu.AddText ("", 0);
menu.AddText ("(Press Escape to cancel)", 0);
menu.Top ()->m_bCentered = 1;
nQueryTimeout = SDL_GetTicks ();
do {
	i = menu.Menu (NULL, "Looking for Trackers", TrackerPoll);
	} while (i >= 0);
return i;
}
void CMasterTestDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	// Do something
	clock_t tCurTime;
	float fElapsed;
	static int nLastSend, nLastRecv;

	if (nIDEvent == TEST_TIMER)
	{
		tCurTime = clock();
		fElapsed = (float)(tCurTime - m_tStartTime)/CLOCKS_PER_SEC;
		if (fElapsed >= 1.0f/fRate && !m_bTestStopped)
		{
			UpdateData( TRUE );

			for (int i = 0; i < m_nMasterSockets; i++)
			{
				if (g_nTestType == 0)
				{
					if (!RequestServerList(m_pMasterSockets[i]))
					{
						delete m_pMasterSockets[i];
						m_pMasterSockets[i] = NULL;
					}
				}
				else if (g_nTestType == 1)
				{
					if (!GetChallenge(m_pMasterSockets[i]))
					{
						delete m_pMasterSockets[i];
						m_pMasterSockets[i] = NULL;
					}
				}
			}
			m_tStartTime = clock();
		}

		// Update Send/Receive
		char szStatus[64];
		if (m_nDataSent != nLastSend)
		{
			sprintf(szStatus, "%i / %i", m_nRequestsSent, m_nDataSent);
			nLastSend = m_nDataSent;
			if (m_statSent.GetSafeHwnd())
				m_statSent.SetWindowText(szStatus);
		}
		if (m_nDataReceived != nLastRecv)
		{
			sprintf(szStatus, "%i / %i", m_nResponsesReceived, m_nDataReceived);
			nLastRecv = m_nDataReceived;
			if (m_statRecv.GetSafeHwnd())
				m_statRecv.SetWindowText(szStatus);
		}

		fElapsed = (float)(tCurTime - m_tTestStartTime)/CLOCKS_PER_SEC;		
		sprintf(szStatus, "%.1f", m_fTestTime - fElapsed);
		if (fElapsed <= m_fTestTime)
		{
			if (m_statTimeLeft.GetSafeHwnd())
				m_statTimeLeft.SetWindowText(szStatus);
		}
		else
		{
			// Shut it down.
			float fDataTimeOut;
			fDataTimeOut = (float)(tCurTime - m_tLastDataReceived)/CLOCKS_PER_SEC;
			if (fDataTimeOut < 30.0f)
			{
				OnStoptest();
			}
			else
			{
				OnStop();
			}
		}
	}
	CDialog::OnTimer(nIDEvent);
}