/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend.Core/Execution/IExecutionThread.cs
89 строк
3 KB
Ivan Kozhin
Add events on variables resolve, refactor objects expressions
17 апр 2024, 15:12
17 апр 2024, 15:12
2d53589
Код
Авторство
О чём код?
using QueryCat.Backend.Core.Data; using QueryCat.Backend.Core.Functions; using QueryCat.Backend.Core.Plugins; using QueryCat.Backend.Core.Types; namespace QueryCat.Backend.Core.Execution; /// <summary> /// The execution thread allows to run string commands. /// </summary> public interface IExecutionThread : IDisposable { /// <summary> /// Functions manager. /// </summary> IFunctionsManager FunctionsManager { get; } /// <summary> /// Plugins manager. /// </summary> IPluginsManager PluginsManager { get; } /// <summary> /// Config storage. /// </summary> IInputConfigStorage ConfigStorage { get; } /// <summary> /// Top execution scope. /// </summary> IExecutionScope TopScope { get; } /// <summary> /// The event is fired before variable resolving. /// </summary> event EventHandler<ResolveVariableEventArgs>? VariableResolving; /// <summary> /// The event is fired after variable resolve. /// </summary> event EventHandler<ResolveVariableEventArgs>? VariableResolved; /// <summary> /// Selector to resolve object expressions. /// </summary> IObjectSelector ObjectSelector { get; } /// <summary> /// Execution statistic. /// </summary> ExecutionStatistic Statistic { get; } /// <summary> /// Store custom execution thread information. /// </summary> object? Tag { get; } /// <summary> /// Run text query. /// </summary> /// <param name="query">Query.</param> /// <param name="parameters">Query parameters. They will be used in a separate scope.</param> /// <param name="cancellationToken">Cancellation token to cancel the request execution.</param> VariantValue Run( string query, IDictionary<string, VariantValue>? parameters = null, CancellationToken cancellationToken = default); /// <summary> /// Try get variable value from top scope to the root recursively. /// </summary> /// <param name="name">Variable name.</param> /// <param name="value">Variable value.</param> /// <param name="scope">Scope instance.</param> /// <returns>True if variable with the specified name is found, false otherwise.</returns> bool TryGetVariable(string name, out VariantValue value, IExecutionScope? scope = null); } /// <summary> /// Execution thread with options. /// </summary> /// <typeparam name="TOptions">Options type.</typeparam> public interface IExecutionThread<out TOptions> : IExecutionThread { /// <summary> /// Application options. /// </summary> TOptions Options { get; } }