/// <summary> /// Retrieve the string value for a given ulong /// key. /// </summary> /// <param name="key">The key whose value should be returned.</param> /// <returns>The string value for the given key, or an empty string if not found.</returns> public string FindKey(ulong key) { // determine the owning node for the key ChordNode owningNode = ChordServer.CallFindSuccessor(key); if (owningNode != ChordServer.LocalNode) { // if this is not the owning node, call // FindKey on the remote owning node return(ChordServer.CallFindKey(owningNode, key)); } else { // if this is the owning node, check // to see if the key exists in the data store if (this.m_DataStore.ContainsKey(key)) { // if the key exists, return the value return(this.m_DataStore[key]); } else { // if the key does not exist, return empty string return(string.Empty); } } }