void Game::forceLogout() { if(!isOnline()) return; m_protocolGame->sendLogout(); processDisconnect(); }
void Game::cancelLogin() { // send logout even if the game has not started yet, to make sure that the player doesn't stay logged there if(m_protocolGame) m_protocolGame->sendLogout(); processDisconnect(); }
void Game::processConnectionError(const boost::system::error_code& ec) { // connection errors only have meaning if we still have a protocol if(m_protocolGame) { // eof = end of file, a clean disconnect if(ec != asio::error::eof) g_lua.callGlobalField("g_game", "onConnectionError", ec.message(), ec.value()); processDisconnect(); } }
void SerialPortWorker::processCommand(Command command) { // qDebug() << "Method name"; switch (command.type) { case CT_create: processCreate(command.num); break; case CT_connect: processConnect(command.num); break; case CT_basicPosture: processBasicPosture(command.num); break; case CT_DCOn: processDCOn(command.num); break; case CT_setPose: processSetPose(command.num, command.angles); break; case CT_DCOff: processDCOff(command.num); break; case CT_disconnect: processDisconnect(command.num); break; // default: // break; } }
void pollNet() { if (connectState != ConnectState::Connecting && connectState != ConnectState::Connected) { return; } // wait for the connection to succeed ENetEvent evt; if (enet_host_service(client, &evt, 0) > 0) { switch (evt.type) { case ENET_EVENT_TYPE_CONNECT: processConnect(evt); break; case ENET_EVENT_TYPE_DISCONNECT: processDisconnect(evt); break; case ENET_EVENT_TYPE_RECEIVE: processReceive(evt); break; case ENET_EVENT_TYPE_NONE: // make the compiler shut up about unhandled enum value break; } } if (connectState == ConnectState::Connecting && narf::time::now() >= connectTimeoutEnd) { narf::console->println("Connection attempt timed out"); // TODO: use to_string enet_peer_reset(server); // TODO: is server valid at this point? do we need to destroy it? server = nullptr; connectState = ConnectState::Unconnected; } }
bool DebuggerServlet::httpRecvRequest(const HTTPServer::Request& request) { if (!request.data.hasKey("path")) return false; // returnError(request); if (isCORS(request)) { handleCORS(request); return true; } std::cout << request.data["path"] << ": " << request.data["content"] << std::endl; Data replyData; // process request that don't need a session if (false) { } else if (boost::starts_with(request.data.at("path").atom, "/debug/connect")) { processConnect(request); return true; } else if (boost::starts_with(request.data.at("path").atom, "/debug/sessions")) { processListSessions(request); return true; } // get session or return error if (false) { } else if (!request.data.at("content").hasKey("session")) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No session given", Data::VERBATIM); } else if (_sessionForId.find(request.data.at("content").at("session").atom) == _sessionForId.end()) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No such session", Data::VERBATIM); } if (replyData) { returnData(request, replyData); return true; } boost::shared_ptr<DebugSession> session = _sessionForId[request.data.at("content").at("session").atom]; if (false) { } else if (boost::starts_with(request.data.at("path").atom, "/debug/poll")) { // save long-standing client poll _clientConns[session] = request; serverPushData(session); } else if (boost::starts_with(request.data.at("path").atom, "/debug/disconnect")) { processDisconnect(request); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/enable/all")) { replyData = session->enableAllBreakPoints(); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/disable/all")) { replyData = session->disableAllBreakPoints(); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/skipto")) { replyData = session->skipToBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/add")) { replyData = session->addBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/remove")) { replyData = session->removeBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/enable")) { replyData = session->enableBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/disable")) { replyData = session->disableBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/stop")) { replyData = session->debugStop(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/prepare")) { replyData = session->debugPrepare(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/attach")) { replyData = session->debugAttach(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/start")) { replyData = session->debugStart(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/step")) { replyData = session->debugStep(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/pause")) { replyData = session->debugPause(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/resume")) { replyData = session->debugResume(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/eval")) { replyData = session->debugEval(request.data["content"]); } if (replyData) { returnData(request, replyData); return true; } return true; }