public static PlanetWarsServerSettings ForMode(PlanetWarsServerMode pwsMode) { var infiniteTimeout = Timeout.InfiniteTimeSpan; var largeTimeout = TimeSpan.FromMinutes(30); var extraLargeTimeout = TimeSpan.FromDays(1); switch (pwsMode) { case PlanetWarsServerMode.Local: return(new PlanetWarsServerSettings(pwsMode) { JoinTimeout = infiniteTimeout, StartTimeout = infiniteTimeout, TotalCommandsTimeout = infiniteTimeout, CommandsTimeout = infiniteTimeout, GameExpirationTimeout = infiniteTimeout, LongPollingTimeout = infiniteTimeout, }); case PlanetWarsServerMode.Online: return(new PlanetWarsServerSettings(pwsMode) { JoinTimeout = largeTimeout, StartTimeout = largeTimeout, TotalCommandsTimeout = infiniteTimeout, CommandsTimeout = largeTimeout, GameExpirationTimeout = extraLargeTimeout, LongPollingTimeout = LongPollingKeepAliveTimeout, }); default: throw new InvalidOperationException($"Invalid PlanetWarsServerMode: {pwsMode}"); } }
private PlanetWarsServerSettings(PlanetWarsServerMode pwsMode) { PwsMode = pwsMode; }