Beispiel #1
0
        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);
                    }
                }
            }
        }