示例#1
0
void psNetConnection::CheckLinkDead (csTicks currenttime)
{
    if (currenttime - server->lastRecvPacketTime > LINKDEAD_TIMEOUT)
    {
        if (server->heartbeat < LINKDEAD_ATTEMPTS)
        {
            server->heartbeat++;
            psHeartBeatMsg heart((uint32_t)0);
            SendMessage(heart.msg);  // This should cause an ack to update the timestamp
        }
        else
        {
            // Simulate message to self to inform user of quitting.
            psSystemMessage quit(0,MSG_INFO,"Server is not responding, try again in 5 minutes. Exiting PlaneShift...");
            HandleCompletedMessage(quit.msg, server, &server->addr,NULL);
            
            csSleep(1000);
            
            // If no packets received ever, then use -1 to indicate cannot connect
            psDisconnectMessage msgb(0,server->pcknumin?0:-1,
                                     server->pcknumin?
                                     "Server is not responding, try again in 5 minutes. "
                                     "Check http://laanx.fragnetics.com/ for status.":
                                     "The server is not running or is not reachable.  "
                                     "Please check http://laanx.fragnetics.com/ or forums for more info.");
            HandleCompletedMessage(msgb.msg, server, &server->addr,NULL);
        }
    }
    else
    {
        server->heartbeat = 0;
    }
}
示例#2
0
void ASSDrawFrame::_Clear()
{
	wxMessageDialog msgb(this, _T("Clear the canvas and create a new drawing?"),
                  _T("Confirmation"), wxOK | wxCANCEL | wxICON_QUESTION );
	if (msgb.ShowModal() == wxID_OK)
	{
		m_canvas->RefreshUndocmds();
		m_canvas->AddUndo(_T("Clear canvas"));
		m_canvas->ResetEngine(true);
	    wxSize siz = m_canvas->GetClientSize();
		m_canvas->ChangeZoomLevelTo(DEFAULT_SCALE, wxPoint(siz.x / 2, siz.y / 2));
		m_canvas->MoveCanvasOriginTo(siz.x / 2, siz.y / 2);
		UpdateUndoRedoMenu();
		m_canvas->RefreshDisplay();
	}
}