private void Initialize(string lang, INodesForIndexingProvider nfip, bool isFullRestart) { if (!_isInitialized) { lock (this) { if (!_isInitialized) { isStopIndexingRequested = false; _isInitialized = false; OnIndexingStarted(); NodesForIndexingProvider = nfip; CurrentLanguage = lang; CurrentView = nfip.GetHashKeyForIndex(); if (isFullRestart || IsNeedsReIndexing()) { DoInitialize(isFullRestart); ThreadSafeQueue <Node> queuedNodes = new ThreadSafeQueue <Node>(NodesForIndexingProvider.GetNodesForIndexing()); RunFullIndexingInSeparateThread(queuedNodes); } } } } }
private LuceneIndexMgr InitializeIndex(INodesForIndexingProvider deepNodeFinder) { LuceneIndexMgr result = new LuceneIndexMgr(); indexMrgsNeedingCleanupAtTearDown.Add(result); bool isInitializationCompletedHandlerCalled = false; result.IndexingCompleted += delegate { isInitializationCompletedHandlerCalled = true; }; Assert.IsFalse(result.IsInitialized, "TEST SANITY: IsInitialized should be false"); result.Initialize("en", deepNodeFinder); Stopwatch timer = new Stopwatch(); timer.Start(); while (result.IsIndexing) { if (timer.ElapsedMilliseconds > 120000) { throw new Exception("It's taken longer than 120 seconds to initialize"); } Thread.Sleep(500); } Thread.Sleep(1000); Assert.IsTrue(isInitializationCompletedHandlerCalled, "isInitializationCompletedHandlerCalled was false but should be true"); Assert.IsTrue(result.IsInitialized, "IsInitialized was false but should be true"); return(result); }
/// <summary> /// </summary> public void ChangeToView(INodesForIndexingProvider newNodesForIndexingProvider) { lock (this) { try { NodesForIndexingProvider = newNodesForIndexingProvider; CurrentView = NodesForIndexingProvider.GetHashKeyForIndex(); if (IsNeedsReIndexing()) { _isInitialized = false; Initialize(CurrentLanguage, NodesForIndexingProvider, false); } } catch (Exception e) { Debug.Write(new Exception("AbstractIndexMgr: An error occurred in ChangeToView", e)); } } }
/// <summary> /// </summary> public void ChangeToView(INodesForIndexingProvider nodesForIndexingProvider) { _indexMgr.ChangeToView(nodesForIndexingProvider); }
/// <summary> /// </summary> public void Initialize(string currentLanguage, INodesForIndexingProvider nodesForIndexingProvider) { _indexMgr.Initialize(currentLanguage, nodesForIndexingProvider); }
private void Initialize(string lang, INodesForIndexingProvider nfip, bool isFullRestart) { if (!_isInitialized) { lock (this) { if (!_isInitialized) { isStopIndexingRequested = false; _isInitialized = false; OnIndexingStarted(); NodesForIndexingProvider = nfip; CurrentLanguage = lang; CurrentView = nfip.GetHashKeyForIndex(); if (isFullRestart || IsNeedsReIndexing()) { DoInitialize(isFullRestart); ThreadSafeQueue<Node> queuedNodes = new ThreadSafeQueue<Node>(NodesForIndexingProvider.GetNodesForIndexing()); RunFullIndexingInSeparateThread(queuedNodes); } } } } }
///<summary> ///</summary> public void Initialize(string lang, INodesForIndexingProvider nfip) { Initialize(lang,nfip,true); }
/// <summary> /// </summary> public void ChangeToView(INodesForIndexingProvider newNodesForIndexingProvider) { lock (this) { try { NodesForIndexingProvider = newNodesForIndexingProvider; CurrentView = NodesForIndexingProvider.GetHashKeyForIndex(); if (IsNeedsReIndexing()) { _isInitialized = false; Initialize(CurrentLanguage, NodesForIndexingProvider, false); } } catch (Exception e) { Debug.Write(new Exception("AbstractIndexMgr: An error occurred in ChangeToView", e)); } } }
/// <summary> /// </summary> public void Initialize(string currentLanguage, INodesForIndexingProvider nodesForIndexingProvider) { _indexMgr.Initialize(currentLanguage, nodesForIndexingProvider); }
/// <summary> /// </summary> public void ChangeToView(INodesForIndexingProvider nodesForIndexingProvider) { _indexMgr.ChangeToView(nodesForIndexingProvider); }
public void SetupOnlyOnce() { _deepNodeFinder = GetNodeProvider(); _indexMgr = InitializeIndex(_deepNodeFinder); }
public void SetupOnlyOnce() { _deepNodeFinder = GetNodeProvider(); _indexMgr = InitializeIndex(_deepNodeFinder); }
private LuceneIndexMgr InitializeIndex(INodesForIndexingProvider deepNodeFinder) { LuceneIndexMgr result = new LuceneIndexMgr(); indexMrgsNeedingCleanupAtTearDown.Add(result); bool isInitializationCompletedHandlerCalled = false; result.IndexingCompleted += delegate { isInitializationCompletedHandlerCalled = true; }; Assert.IsFalse(result.IsInitialized, "TEST SANITY: IsInitialized should be false"); result.Initialize("en", deepNodeFinder); Stopwatch timer = new Stopwatch(); timer.Start(); while (result.IsIndexing) { if (timer.ElapsedMilliseconds > 120000) throw new Exception("It's taken longer than 120 seconds to initialize"); Thread.Sleep(500); } Thread.Sleep(1000); Assert.IsTrue(isInitializationCompletedHandlerCalled, "isInitializationCompletedHandlerCalled was false but should be true"); Assert.IsTrue(result.IsInitialized, "IsInitialized was false but should be true"); return result; }
///<summary> ///</summary> public void Initialize(string lang, INodesForIndexingProvider nfip) { Initialize(lang, nfip, true); }