void ServerLobbyState::SetSessionArguments(Network::Server* server, const std::string& adminName, Logic::Ruleset* ruleset) { assert(server != NULL); assert(ruleset != NULL); assert(mServerSession == NULL); mServerSession = new Logic::ServerSession(server, adminName, ruleset); SetSession(mServerSession); }
void CWebinosUI::Initialise() { m_confirmingExit = false; m_restartingPzh = m_restartingPzp = 0; // Register to receive session-change notifications. WTSRegisterSessionNotification(m_hWnd, NOTIFY_FOR_THIS_SESSION); // Set user info for this session (this will initialise m_user_params). SetSession(); // Initialise the node services we are interested in. m_pzh_params.serviceName = WEBINOS_PZH; m_pzp_params.serviceName = WEBINOS_PZP; CServiceManager mgr; // Get PZH parameters. mgr.GetServiceParameters(m_user_params,m_pzh_params); // Get PZP parameters. mgr.GetServiceParameters(m_user_params,m_pzp_params); // Initialise dialog controls with configuration folders. SetDlgItemText(IDC_PATH_TO_NODE_EDIT,m_pzp_params.nodePath.c_str()); SetDlgItemText(IDC_PATH_TO_WEBINOS_EDIT,m_pzp_params.workingDirectoryPath.c_str()); // Parse node arguments to extract PZP specific params. std::vector<std::string> toks = webinos::split(m_pzp_params.nodeArgs.c_str(),' '); for (std::vector<std::string>::iterator it = toks.begin(); it != toks.end(); it++) { std::string tok = *it; if (tok.length() == 0) continue; std::string argVal; if (ParseArg(tok,_T("--auth-code=\""),argVal)) SetDlgItemText(IDC_AUTH_CODE_EDIT,argVal.c_str()); else if (ParseArg(tok,_T("--pzh-name=\""),argVal)) SetDlgItemText(IDC_PZH_NAME_EDIT,argVal.c_str()); } // Re-set PZH service parameters. m_pzh_params.instance = 0; mgr.SetServiceParameters(m_user_params,m_pzh_params); // Re-set PZP service parameters. m_pzp_params.instance = 0; mgr.SetServiceParameters(m_user_params,m_pzp_params); // Start timer to poll for status SetTimer(ID_POLL_TIMER,SERVICE_POLL_INTERVAL,NULL); }
void Player::HandleClusterRemove() { #ifdef CLUSTERING RemoveAllAuras(); if (IsInWorld()) RemoveFromWorld(); sEventMgr.AddEvent(this, &Player::Destructor, EVENT_UNK, 30000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT | EVENT_FLAG_DELETES_OBJECT); if (GetSession() != NULL) { GetSession()->SetPlayer(NULL); if (GetSession()->GetSocket() != NULL) { uint32 sessionid = GetSession()->GetSocket()->GetSessionId(); sClusterInterface.DestroySession(sessionid); } SetSession(NULL); } objmgr.RemovePlayer(this); #endif }
LRESULT CWebinosUI::OnSessionChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { switch( wParam ) { case WTS_CONSOLE_CONNECT: // MessageBox(TEXT("WTS_CONSOLE_CONNECT"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); SetSession(); break; case WTS_CONSOLE_DISCONNECT: ClearSession(); // MessageBox(TEXT("WTS_CONSOLE_DISCONNECT"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; case WTS_SESSION_LOCK: //MessageBox(TEXT("WTS_SESSION_LOCK"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; case WTS_SESSION_UNLOCK: //MessageBox(TEXT("WTS_SESSION_UNLOCK"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; default: break; } return 0; }