aboutsummaryrefslogtreecommitdiff
path: root/Libs/VNLib.Plugins.Essentials.Sessions.Runtime/IRuntimeSessionProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Libs/VNLib.Plugins.Essentials.Sessions.Runtime/IRuntimeSessionProvider.cs')
-rw-r--r--Libs/VNLib.Plugins.Essentials.Sessions.Runtime/IRuntimeSessionProvider.cs26
1 files changed, 26 insertions, 0 deletions
diff --git a/Libs/VNLib.Plugins.Essentials.Sessions.Runtime/IRuntimeSessionProvider.cs b/Libs/VNLib.Plugins.Essentials.Sessions.Runtime/IRuntimeSessionProvider.cs
new file mode 100644
index 0000000..9941e6a
--- /dev/null
+++ b/Libs/VNLib.Plugins.Essentials.Sessions.Runtime/IRuntimeSessionProvider.cs
@@ -0,0 +1,26 @@
+
+using VNLib.Net.Http;
+using VNLib.Utils.Logging;
+
+namespace VNLib.Plugins.Essentials.Sessions
+{
+ /// <summary>
+ /// Represents a dynamically loadable type that an provide sessions to http connections
+ /// </summary>
+ public interface IRuntimeSessionProvider : ISessionProvider
+ {
+ /// <summary>
+ /// Called immediatly after the plugin is loaded into the appdomain
+ /// </summary>
+ /// <param name="plugin">The plugin instance that is loading the module</param>
+ /// <param name="localizedLog">The localized log provider for the provider</param>
+ void Load(PluginBase plugin, ILogProvider localizedLog);
+
+ /// <summary>
+ /// Determines if the provider can return a session for the connection
+ /// </summary>
+ /// <param name="entity">The entity to process</param>
+ /// <returns>A value indicating if this provider should be called to load a session for</returns>
+ bool CanProcess(IHttpEvent entity);
+ }
+}