예제 #1
0
	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);
	}
예제 #2
0
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);
}
예제 #3
0
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
}
예제 #4
0
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;
}