/// <summary>
 /// 构造一个WebResourceManager,如果pipeline = null,抛出ArgumentNullException
 /// </summary>
 /// <param name="pipeline">流水线,不能是null</param>
 /// <param name="handler">处理搜索结果并显示的模块,不能是null</param>
 public WebResourceManager(Pipeline pipeline, IQueryResultHandler handler)
 {
     if (pipeline == null)
     {
         throw new ArgumentNullException("pipeline");
     }
     if (handler == null)
     {
         throw new ArgumentNullException("handler");
     }
     _pipeline = pipeline;
     _handler = handler;
 }
 public static void Test()
 {
     Pipeline pipeline = new Pipeline();
     pipeline.QueryResultItemSubscriberManager.AddSubscriber(new ResultItemSubscriber(500));
     WebResourceManager manager = new WebResourceManager(pipeline, new QueryResultHandler());
     InputQuery query = new InputQuery("Ba");
     Console.WriteLine(query.Text);
     //manager.SearchEngineList.Add(new SearchEngine(2000));
        // manager.SearchEngineList.Add(new SearchEngine(1000));
     manager.SearchEngineList.Add(new GoogleSearchEngine());
     manager.SearchEngineList.Add(new BaiduSearchEngine());
     manager.SearchEngineList.Add( new GoogleSuggestion() );
     manager.SearchEngineList.Add(new DictCn());
     manager.Handle(query);
     Thread.Sleep(8000);
 }
 public SearchAndReturnPipe(WebResourceManager parent,
     ISearch engine, InputQuery query, Pipeline pipeline)
 {
     // Assert(engine!= null && query != null)
     _parent = parent;
     _searchEngine = engine;
     _inputQuery = query;
     _thread = new Thread(new ThreadStart(SearchAndReturn));
     _thread.IsBackground = true;
     _thread.Start();
 }
Esempio n. 4
0
        private void CreateListeners()
        {
            _pipeline = new Pipeline();
            _resultHandler = new QueryResultHandler(this);

            _webResourceManager = new WebResourceManager(_pipeline, _resultHandler);
            _pipeline.InputTextSubscriberManager.AddSubscriber(_webResourceManager);

            _webResourceManager.AddSearchEngine(new GoogleSearchEngine());
            _webResourceManager.AddSearchEngine(new BaiduSearchEngine());
            _webResourceManager.AddSearchEngine(new SogouSearchEngine());
            _webResourceManager.AddSearchEngine(new WikipediaSearchEngine());
            //_webResourceManager.AddSearchEngine( new GoogleSuggestion() );
            _webResourceManager.AddSearchEngine( new DictCn() );

            InputQueryObsoletedTime = _defaultInputQueryObsoletedTime;
            //_inputQueryRecordManager = new InputQueryRecordManager(
            //    "data\\query.xml", InputQueryObsoletedTime);
            _pipeline.InputTextSubscriberManager.AddSubscriber(_inputQueryRecordManager);

            _queryResultRecordManager =
                new QueryResultRecordManager(
                    "data", new TimeSpan(30, 0, 0, 0));
            _pipeline.QueryResultSubscriberManager.AddSubscriber(_queryResultRecordManager);
        }