Add IExclusivePlugin

This commit is contained in:
qianlifeng
2015-02-05 22:20:42 +08:00
parent 7b0a643de3
commit ad11ca0a87
21 changed files with 254 additions and 279 deletions

View File

@@ -6,28 +6,18 @@ namespace Wox.Core.Plugin.QueryDispatcher
{
internal static class QueryDispatcher
{
private static readonly IQueryDispatcher UserPluginDispatcher = new UserPluginQueryDispatcher();
private static readonly IQueryDispatcher SystemPluginDispatcher = new SystemPluginQueryDispatcher();
private static readonly IQueryDispatcher exclusivePluginDispatcher = new ExclusiveQueryDispatcher();
private static readonly IQueryDispatcher genericQueryDispatcher = new GenericQueryDispatcher();
public static void Dispatch(Wox.Plugin.Query query)
public static void Dispatch(Query query)
{
PluginPair exclusiveSearchPlugin = PluginManager.GetExclusiveSearchPlugin(query);
if (exclusiveSearchPlugin != null)
if (PluginManager.IsExclusivePluginQuery(query))
{
ThreadPool.QueueUserWorkItem(state =>
{
PluginManager.ExecutePluginQuery(exclusiveSearchPlugin, query);
});
return;
}
if (PluginManager.IsUserPluginQuery(query))
{
UserPluginDispatcher.Dispatch(query);
exclusivePluginDispatcher.Dispatch(query);
}
else
{
SystemPluginDispatcher.Dispatch(query);
genericQueryDispatcher.Dispatch(query);
}
}
}