public ServerConnectionState Find(ServerIdPacket.ServerType type, int gameId) { ServerGroupByType group = groups.Find(g => g.Type == type); if (group == null) { return(null); } return(group.Find(gameId)); }
public int GetNumberOfServers(ServerIdPacket.ServerType type) { ServerGroupByType group = groups.Find(g => g.Type == type); if (group == null) { return(0); } return(group.Count); }
public bool Add(ServerConnectionState server) { ServerIdPacket.ServerType type = server.serverType; ServerGroupByType group = groups.Find(g => g.Type == type); if (group == null) { group = new ServerGroupByType(type); groups.Add(group); } return(group.Add(server)); }
public List <int> GetGameServerIds() { List <int> serverIds = new List <int>(); ServerIdPacket.ServerType type = ServerIdPacket.ServerType.Game; ServerGroupByType group = groups.Find(g => g.Type == type); if (group != null) { foreach (var g in group) { serverIds.Add(g.gameId); } } return(serverIds); }
IEnumerator IEnumerable.GetEnumerator() { for (int i = groups.Count - 1; i >= 0; i--) { ServerGroupByType group = groups[i]; var groupEnum = group.GetEnumerator(); while (groupEnum.MoveNext()) { yield return(groupEnum.Current); if (group != groups[i]) { // We've removed the group we're iterating over, // so skip over it break; } } } }