using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Flow.Launcher.Plugin { /// /// Asynchronous Plugin Model for Flow Launcher /// public interface IAsyncPlugin { /// /// Asynchronous Querying /// /// /// If the Querying or Init method requires high IO transmission /// or performing CPU intense jobs (performing better with cancellation), please use this IAsyncPlugin interface /// /// Query to search /// Cancel when querying job is obsolete /// Task> QueryAsync(Query query, CancellationToken token); /// /// Initialize plugin asynchrously (will still wait finish to continue) /// /// /// Task InitAsync(PluginInitContext context); } }