Exemple #1
0
 public void SearchAlbum(IPeer p, string album, int ttl)
 {
     SetOutputMsg("Request from " + p.GetPeerURI());
     SetOutputMsg("Searching for album " + album);
     if (MyAlbum.Contains(album))
     {
         p.MarkAsFoundAlbum(this, album);
         return;
     }
     if (_albumOnKnownPeers.ContainsKey(album))
     {
         IPeer peer = _albumOnKnownPeers[album];
         try
         {
             p.MarkAsFoundAlbum(peer, album);
         }
         catch (Exception)
         {
             SetOutputMsg("Peer to respond not found!!!");
         }
         return;
     }
     if (--ttl == 0)
     {
         return;
     }
     foreach (IPeer peer in MyKnownPeers)
     {
         try
         {
             peer.SearchAlbum(p, album, ttl);
         }
         catch (Exception)
         {
             MyKnownPeers.Remove(peer);
         }
     }
 }