/// <summary> /// Add a key to the store. Gets a hash of the key, determines /// the correct owning node, and stores the string value /// on that node. /// </summary> /// <param name="value">The value to add.</param> public void AddKey(string value) { // the key is the hash of the value to // add to the store, and determines the // owning NChord node ulong key = ChordServer.GetHash(value); // using the local node, determine the correct owning // node for the data to be stored given the key value ChordNode owningNode = ChordServer.CallFindSuccessor(key); if (owningNode != ChordServer.LocalNode) { // if this is not the owning node, then call AddKey // on the actual owning node ChordServer.CallAddKey(owningNode, value); } else { // if this is the owning node, then add the // key to the local data store this.m_DataStore.Add(key, value); } }