aboutsummaryrefslogtreecommitdiff
path: root/lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-03-09 01:48:28 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2023-03-09 01:48:28 -0500
commit5ddef0fcb742e77b99a0e17015d2eea0a1d4131a (patch)
treec1c88284b11b70d9f373215d8d54e8a168cc5700 /lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs
parentdab71d5597fdfbe71f6ac310a240835716e952a5 (diff)
Omega cache, session, and account provider complete overhaul
Diffstat (limited to 'lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs')
-rw-r--r--lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs32
1 files changed, 27 insertions, 5 deletions
diff --git a/lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs b/lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs
index 0c8d6c1..bb4f65f 100644
--- a/lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs
+++ b/lib/Plugins.Essentials.ServiceStack/src/IServiceHost.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2023 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Essentials.ServiceStack
@@ -22,21 +22,43 @@
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
+using VNLib.Net.Http;
+
namespace VNLib.Plugins.Essentials.ServiceStack
{
/// <summary>
- /// Represents a host that exposes a processor for host events
+ /// Represents an HTTP service host which provides information required
+ /// for HttpServer routing and the <see cref="IWebRoot"/> for proccessing
+ /// incomming connections
/// </summary>
public interface IServiceHost
{
/// <summary>
- /// The <see cref="EventProcessor"/> to process
- /// incoming HTTP connections
+ /// The <see cref="IWebRoot"/> that handles HTTP connection
+ /// processing.
/// </summary>
- EventProcessor Processor { get; }
+ IWebRoot Processor { get; }
+
/// <summary>
/// The host's transport infomration
/// </summary>
IHostTransportInfo TransportInfo { get; }
+
+ /// <summary>
+ /// Called when a plugin is loaded and is endpoints are extracted
+ /// to be placed into service.
+ /// </summary>
+ /// <param name="plugin">The loaded plugin ready to be attached</param>
+ /// <param name="endpoints">The dynamic endpoints of a loading plugin</param>
+ void OnRuntimeServiceAttach(IManagedPlugin plugin, IEndpoint[] endpoints);
+
+ /// <summary>
+ /// Called when a <see cref="ServiceDomain"/>'s <see cref="IPluginManager"/>
+ /// unloads a given plugin, and its originally discovered endpoints
+ /// </summary>
+ /// <param name="plugin">The unloading plugin to detach</param>
+ /// <param name="endpoints">The endpoints of the unloading plugin to remove from service</param>
+ void OnRuntimeServiceDetach(IManagedPlugin plugin, IEndpoint[] endpoints);
+
}
}