/// <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(); }
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); }