public void Handle(IMessage message) { if (message.MessageType == MessageType.InputQuery) { InputQuery query = (InputQuery)message; if (_result != null && _result.Query == query) { return; } // Kill current queries if (_result != null) { HandleDeprecateMessage(_result.Query); } // Notice the handler _result = new QueryResult(query); _handler.OnResultNew(_result); // Generate new queries _searchPipeList = new List <SearchAndReturnPipe>(); lock (_searchPipeList) { foreach (ISearch engine in _searchEngineList) { SearchAndReturnPipe pipe = new SearchAndReturnPipe(this, engine, query, _pipeline); _searchPipeList.Add(pipe); } } } }
public void Handle(IMessage message) { if (message.MessageType == MessageType.InputQuery) { InputQuery query = (InputQuery)message; if (_result != null && _result.Query == query) { return; } // Kill current queries if (_result != null) { HandleDeprecateMessage(_result.Query); } // Notice the handler _result = new QueryResult(query); _handler.OnResultNew(_result); // Generate new queries _searchPipeList = new List<SearchAndReturnPipe>(); lock (_searchPipeList) { foreach (ISearch engine in _searchEngineList) { SearchAndReturnPipe pipe = new SearchAndReturnPipe(this, engine, query, _pipeline); _searchPipeList.Add(pipe); } } } }