Example #1
0
        private void NodeListUpdated(Node node, NodeUpdateAction updateAction)
        {
            //not interested in any non-active nodes
            //other states usually happen when a node comes up online only
            if (!(node.NodeState == NodeState.Active))
                return;

            if (updateAction == NodeUpdateAction.Removed)
                _consistentHash.RemoveItem(node.EndPoint.ToString());
            else if ((updateAction == NodeUpdateAction.Added) || (updateAction == NodeUpdateAction.Updated))
                _consistentHash.StoreItem(node.EndPoint.ToString());
        }
Example #2
0
        private void NodeListUpdated(Node node, NodeUpdateAction updateAction)
        {
            //not interested in any non-active nodes
            //other states usually happen when a node comes up online only
            if (!(node.NodeState == NodeState.Active))
            {
                return;
            }

            if (updateAction == NodeUpdateAction.Removed)
            {
                _consistentHash.RemoveItem(node.EndPoint.ToString());
            }
            else if ((updateAction == NodeUpdateAction.Added) || (updateAction == NodeUpdateAction.Updated))
            {
                _consistentHash.StoreItem(node.EndPoint.ToString());
            }
        }
Example #3
0
        private void NodeListUpdated(Node node, NodeUpdateAction updateAction)
        {
            //has the node just come online and waiting for its data that I have?
            if ((updateAction == NodeUpdateAction.Added) && (node.NodeState == NodeState.WaitingForNeighbourNode))
            {
                //was that node me?
                if (node.EndPoint.ToString().CompareTo(TcpHelper.SelfIPAddress.ToString()) == 0)
                {
                    return;
                }

                bool nodeIsNeighbourBehind = NodeIsNeighbourBehind(node);

                if (!nodeIsNeighbourBehind)
                {
                    return;
                }

                ThreadPool.QueueUserWorkItem(MoveObjectCallBack, node);
            }
        }
Example #4
0
        private void NodeListUpdated(Node node, NodeUpdateAction updateAction)
        {
            if (updateAction == NodeUpdateAction.Added)
            {
                Dispatcher.Invoke((Action)(() => {
                    tvNodes.Items.Add(node.EndPoint.ToString());
                    if (tvNodes.Items.Count == 1)
                    {
                        SetSelectedItem(tvNodes, tvNodes.Items[0]);
                    }

                    UpdateStatusMessage("Discovered new node " + node.EndPoint.ToString());
                }));
            }
            else if (updateAction == NodeUpdateAction.Removed)
            {
                Dispatcher.Invoke((Action)(() => {
                    tvNodes.Items.Remove(node.EndPoint.ToString());
                    UpdateStatusMessage("Removed dead node " + node.EndPoint.ToString());
                    ClearGrid();
                }));
            }
        }
Example #5
0
        private void NodeListUpdated(Node node, NodeUpdateAction updateAction)
        {
            //has the node just come online and waiting for its data that I have?
            if ((updateAction == NodeUpdateAction.Added) && (node.NodeState == NodeState.WaitingForNeighbourNode))
            {
                //was that node me?
                if (node.EndPoint.ToString().CompareTo(TcpHelper.SelfIPAddress.ToString()) == 0)
                    return;

                bool nodeIsNeighbourBehind = NodeIsNeighbourBehind(node);

                if (!nodeIsNeighbourBehind)
                    return;

                ThreadPool.QueueUserWorkItem(MoveObjectCallBack, node);
            }
        }
Example #6
0
        private void NodeListUpdated(Node node, NodeUpdateAction updateAction)
        {
            if (updateAction == NodeUpdateAction.Added)
            {
                Dispatcher.Invoke((Action)(() => {
                    tvNodes.Items.Add(node.EndPoint.ToString());
                    if (tvNodes.Items.Count == 1)
                    {
                        SetSelectedItem(tvNodes, tvNodes.Items[0]);
                    }

                    UpdateStatusMessage("Discovered new node " + node.EndPoint.ToString());
                }));
            }
            else if (updateAction == NodeUpdateAction.Removed)
            {
                Dispatcher.Invoke((Action)(() => {
                    tvNodes.Items.Remove(node.EndPoint.ToString());
                    UpdateStatusMessage("Removed dead node " + node.EndPoint.ToString());
                    ClearGrid();
                }));
            }
        }