public void Handle(CrawlHandler cacheHandler) { if (FilesToHandle.Count == 0) return; try { cacheHandler.SetLanguage(Plugin.GetLanguage()); Plugin.Crawl(FilesToHandle, (line) => cacheHandler.Handle(line)); FilesToHandle.Clear(); } catch (Exception ex) { Logger.Write(ex); } }
private static void initPlugins(PluginLocator locator) { var plugins = locator.Locate(); foreach (var plugin in plugins) { try { plugin.Initialize(_path); plugin.GetCrawlFileTypes(); ThreadPool.QueueUserWorkItem( (o) => { try { var currentPlugin = (LanguagePlugin)o; var handler = new CrawlHandler(_cache, (s) => Logger.Write(s)); handler.SetLanguage(currentPlugin.GetLanguage()); currentPlugin.Crawl(new string[] { _path }, (line) => handler.Handle(line)); } catch (Exception ex) { Logger.Write(ex.ToString()); } }, plugin); } catch (Exception ex) { Logger.Write(ex.ToString()); } } Logger.Write("Plugins initialized"); }
public void Handle(CrawlHandler cacheHandler) { if (FilesToHandle.Count == 0) return; cacheHandler.SetLanguage(Plugin.GetLanguage()); Plugin.Crawl(FilesToHandle, (line) => cacheHandler.Handle(line)); FilesToHandle.Clear(); }
public void Handle(CrawlHandler cacheHandler) { if (FilesToHandle.Count == 0) return; cacheHandler.SetLanguage(Plugin.GetLanguage()); foreach (var line in Plugin.Crawl(FilesToHandle)) cacheHandler.Handle(line); FilesToHandle.Clear(); }
private static void initPlugins(PluginLocator locator, CrawlHandler handler) { new Thread(() => { locator.Locate().ToList() .ForEach(x => { try { handler.SetLanguage(x.GetLanguage()); foreach (var line in x.Crawl(new string[] { _path })) handler.Handle(line); } catch (Exception ex) { Logger.Write(ex.ToString()); } }); }).Start(); }