diff options
author | vnugent <public@vaughnnugent.com> | 2023-04-15 01:58:55 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2023-04-15 01:58:55 -0400 |
commit | 3ce61cf38727db2f37a0e478182d2a73222c8a7c (patch) | |
tree | a03bf1bdde44961183b7bb34dea9c3381050dc27 /lib/Plugins.Essentials.ServiceStack/src/PluginLoadConfiguration.cs | |
parent | baf859f45cf1f00e79508954517ed4b6fb446103 (diff) |
Managed assembly loading overhaul
Diffstat (limited to 'lib/Plugins.Essentials.ServiceStack/src/PluginLoadConfiguration.cs')
-rw-r--r-- | lib/Plugins.Essentials.ServiceStack/src/PluginLoadConfiguration.cs | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/lib/Plugins.Essentials.ServiceStack/src/PluginLoadConfiguration.cs b/lib/Plugins.Essentials.ServiceStack/src/PluginLoadConfiguration.cs index 894ae55..9ab9a82 100644 --- a/lib/Plugins.Essentials.ServiceStack/src/PluginLoadConfiguration.cs +++ b/lib/Plugins.Essentials.ServiceStack/src/PluginLoadConfiguration.cs @@ -3,9 +3,9 @@ * * Library: VNLib * Package: VNLib.Plugins.Essentials.ServiceStack -* File: PluginLoadConfiguration.cs +* File: IPluginLoadConfiguration.cs * -* PluginLoadConfiguration.cs is part of VNLib.Plugins.Essentials.ServiceStack +* IPluginLoadConfiguration.cs is part of VNLib.Plugins.Essentials.ServiceStack * which is part of the larger VNLib collection of libraries and utilities. * * VNLib.Plugins.Essentials.ServiceStack is free software: you can redistribute it and/or modify @@ -30,38 +30,33 @@ using VNLib.Plugins.Runtime; namespace VNLib.Plugins.Essentials.ServiceStack { + /// <summary> /// Plugin loading configuration variables /// </summary> - public readonly record struct PluginLoadConfiguration + public interface IPluginLoadConfiguration { /// <summary> /// The directory containing the dynamic plugin assemblies to load /// </summary> - public readonly string PluginDir { get; init; } - - /// <summary> - /// A value that indicates if the internal <see cref="PluginController"/> - /// allows for hot-reload/unloadable plugin assemblies. - /// </summary> - public readonly bool HotReload { get; init; } + string PluginDir { get; } /// <summary> /// The optional host configuration file to merge with plugin config /// to pass to the loading plugin. /// </summary> - public readonly JsonElement? HostConfig { get; init; } + JsonElement? HostConfig { get; } /// <summary> /// Passed to the underlying <see cref="RuntimePluginLoader"/> /// holding plugins /// </summary> - public readonly ILogProvider? PluginErrorLog { get; init; } + ILogProvider? PluginErrorLog { get; } /// <summary> - /// If hot-reload is enabled, sets a time delay the file watcher waits when - /// a plugin assembly has changed. + /// A factory instance the provides new <see cref="IPluginAssemblyLoader"/> instances + /// on demand from its plugin assembly path /// </summary> - public readonly TimeSpan ReloadDelay { get; init; } + public IPluginAssemblyLoaderFactory AssemblyLoaderFactory { get; init; } } } |