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()); }
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()); } }
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); } }
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(); })); } }
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); } }