Apache.NMS.ActiveMQ.Transport.Failover.FailoverTransport.UpdateURIs C# (CSharp) Method

UpdateURIs() public method

public UpdateURIs ( bool rebalance, Uri updatedURIs ) : void
rebalance bool
updatedURIs Uri
return void
        public void UpdateURIs(bool rebalance, Uri[] updatedURIs)
        {
            if(IsUpdateURIsSupported)
            {
                List<Uri> copy = new List<Uri>(this.updated);
                List<Uri> added = new List<Uri>();

                if(updatedURIs != null && updatedURIs.Length > 0)
                {
                    Dictionary<Uri, bool> uriSet = new Dictionary<Uri, bool>();
                    for(int i = 0; i < updatedURIs.Length; i++)
                    {
                        Uri uri = updatedURIs[i];
                        if(uri != null)
                        {
                            uriSet[uri] = true;
                        }
                    }

                    foreach(Uri uri in uriSet.Keys)
                    {
                        if(copy.Remove(uri) == false)
                        {
                            added.Add(uri);
                        }
                    }

                    lock(reconnectMutex)
                    {
                        this.updated.Clear();
                        this.updated.AddRange(added);

                        foreach(Uri uri in copy)
                        {
                            this.uris.Remove(uri);
                        }

                        this.Add(rebalance, added.ToArray());
                    }
                }
            }
        }