コード例 #1
0
ファイル: MessageBuilder.cs プロジェクト: codebutler/meshwork
 public Message CreateSearchReplyMessage(Node To, SearchResultInfo result)
 {
     Message p = new Message(network, MessageType.SearchResult);
     p.To = To.NodeID;
     p.Content = result;
     return p;
 }
コード例 #2
0
ファイル: EventArgs.cs プロジェクト: codebutler/meshwork
 public SearchResultInfoEventArgs(Node node, SearchResultInfo info)
 {
     this.node = node;
     this.info = info;
 }
コード例 #3
0
ファイル: FileSearch.cs プロジェクト: codebutler/meshwork
        public void AppendResults(Node node, SearchResultInfo resultInfo)
        {
            List<SearchResult> newResults = new List<SearchResult>();

            if (resultInfo.SearchId != id) {
                throw new ArgumentException("Results are for a different search.");
            }

            foreach (string dir in resultInfo.Directories) {
                SearchResult directoryResult = new SearchResult(this, node, dir);
                results.Add(directoryResult);
                newResults.Add(directoryResult);
            }

            foreach (SharedFileListing file in resultInfo.Files) {
                SearchResult result = new SearchResult(this, node, file);
                results.Add(result);
                newResults.Add(result);

                if (!allFileResults.ContainsKey(file.InfoHash)) {
                    allFileResults[file.InfoHash] = new List<SearchResult>();
                }
                allFileResults[file.InfoHash].Add(result);
            }

            if (NewResults != null) {
                NewResults(this, newResults.ToArray());
            }
        }
コード例 #4
0
ファイル: Network.cs プロジェクト: codebutler/meshwork
 internal void SendSearchReply(Node node, SearchResultInfo reply)
 {
     this.SendRoutedMessage(this.MessageBuilder.CreateSearchReplyMessage(node, reply));
 }
コード例 #5
0
ファイル: Network.cs プロジェクト: codebutler/meshwork
 internal void RaiseReceivedSearchResult(Node node, SearchResultInfo result)
 {
     if (ReceivedSearchResult != null) {
         ReceivedSearchResult(this, new SearchResultInfoEventArgs(node, result));
     }
 }
コード例 #6
0
 internal void ProcessSearchResultMessage(Node messageFrom, SearchResultInfo result)
 {
     network.RaiseReceivedSearchResult (messageFrom, result);
 }