Exemple #1
0
 /**
  * Simply set all to null so the Garbage Manager will collect it
  * */
 public void Clean()
 {
     Buffer = null;
     this.SearchRegrouping = null;
     this.PeersBrowsed.Clear();
     this.PeersBrowsed = null;
     this.ACKPacket.Clear();
     this.ACKPacket = null;
 }
Exemple #2
0
        public void SearchKeyword(SearchTransaction searchTransaction)
        {
            queueKeywords = new System.Collections.Queue();

            try
            {

                //pour chaque keyword on lance le search dans un thread séparé
                foreach (Keyword k in searchTransaction.Keywords)
                {
                    KeywordCollection keyword = null;
                    SearchTransaction searchTrans = null;
                    keyword = new KeywordCollection();
                    keyword.Add(k);
                    searchTrans = new SearchTransaction(searchTransaction.IdTransaction, keyword, searchTransaction.MinFileFromPeerFilter, searchTransaction.IpAcceptRangeCollection);
                    queueKeywords.Enqueue(searchTrans);
                }

                // regrouping of results for this transaction
                // will raise the CompletResultHandler event when we received one results for each keyword
                G2SearchResultRegrouping searchRegrouping = new G2SearchResultRegrouping(searchTransaction, searchTransaction.Keywords.Count, false);
                searchRegrouping.CompletResult += new CompletResultHandler(searchRegrouping_CompletResult);
                searchResultRegroupingKeyword_.Add(searchRegrouping);

                while (queueKeywords.Count > 0)
                {

                    SearchTransaction srchTrans = (SearchTransaction)queueKeywords.Dequeue();

                    G2Log.Write("Starting Transaction - Keyword :" + srchTrans.Keywords[0].KeywordName.ToString());
                    searchManager.NewSearch(srchTrans);

                    // on attends 30sec ?????????????????????????
                    //System.Threading.Thread.Sleep(30000);
                }
            }
            catch
            {
               G2Log.Write("Erreur niveau manager.....");
            }
        }
Exemple #3
0
        public G2SearchResults(SearchTransaction transaction, GUID guid)
        {
            SearchManager    = G2SearchManager.Instance;
            ACKPacket        = new List <G2PacketQA>();
            Transaction      = transaction;
            SearchGUID       = guid;
            TotalFiles       = 0;
            SharedTotalFiles = 0;
            PeersBrowsed     = new HashSet <Peer>();

            SearchedWord              = transaction.Keywords[0].KeywordName;
            Buffer                    = new PacketBuffer();
            SearchRegrouping          = new G2SearchResultRegrouping(transaction, 0, false);
            ContinueRegrouping        = true;
            StartSearchTime           = DateTime.Now;
            StopSearchTimer           = new System.Timers.Timer((double)Settings.SEARCH_TIME_OUT_MS);
            StopSearchTimer.AutoReset = false;
            StopSearchTimer.Elapsed  += new ElapsedEventHandler(SearchTimeOut);


            RegroupingThread = new Thread(new ThreadStart(SearchResultThread));
        }