public ClientHelper(string[] replicaAddresses) { Statistics = new ServerStatistics(replicaAddresses); GrayList = new GrayList(replicaAddresses); ServerСount = replicaAddresses.Length; enumerator = GetAddressesEnumerator(); enumerator.MoveNext(); }
private IEnumerator <string> GetAddressesEnumerator() { var pointer = 0; var currStat = Statistics.GetSortedAddresses(); while (true) { if (pointer == 0) { currStat = Statistics.GetSortedAddresses(); } var currAddr = currStat[pointer]; if (GrayList.IsReady(currAddr)) { yield return(currAddr); } pointer = (pointer + 1) % currStat.Length; } }
public void RemoveAddress(string address) { Statistics.RemoveAddress(address); GrayList.Remove(address); }