void LoginManager::onLineReceived(const QString& aLine, Client &aClient) { if(state_ == ELoginStateWelcome) { processWelcomeScreen(aClient); return; } else if(state_ == ELoginStateLogin) { processLoginState(aLine, aClient); return; } if(aLine.length() == 0) return; if (state_ == ELoginStateNewAccountName) { processNewAccountName(aLine, aClient); return; } else if (state_ == ELoginStateNewPassword) { processNewPassword(aLine, aClient); return; } else if (state_ == ELoginStateConfirmPassword) { processPasswordConfirmation(aLine, aClient); return; } else if (state_ == ELoginStatePassword) { processPasswordState(aLine, aClient); } //TODO account menu }
void LoginState::processInput(const std::string& input, std::shared_ptr<Connection> connection) { int state = m_state_map[connection->GetID()]; switch(state) { case USERNAME: processUsername(input, connection); break; case PASSWORD: processPassword(input, connection); break; case NEWPASSWORD: processNewPassword(input, connection); break; case NEWACCOUNT: processNewAccount(input, connection); break; default: break; } }