ElectronNET.API: Add new runtime code (for launch, lifecycle and service orchestration)

This commit is contained in:
softworkz
2025-10-13 13:24:28 +02:00
parent b06d20450b
commit d1db928222
19 changed files with 1175 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
namespace ElectronNET
{
using System;
using System.Collections.Immutable;
using System.Threading.Tasks;
using ElectronNET.API;
using ElectronNET.Runtime;
using ElectronNET.Runtime.Controllers;
using ElectronNET.Runtime.Data;
public static class ElectronNetRuntime
{
internal static StartupManager StartupManager;
internal const int DefaultSocketPort = 8000;
internal const int DefaultWebPort = 8001;
internal const string ElectronPortArgumentName = "electronPort";
internal const string ElectronPidArgumentName = "electronPID";
/// <summary>Initializes the <see cref="ElectronNetRuntime"/> class.</summary>
static ElectronNetRuntime()
{
StartupManager = new StartupManager();
StartupManager.Initialize();
}
public static int? ElectronSocketPort { get; internal set; }
public static int? AspNetWebPort { get; internal set; }
public static StartupMethod StartupMethod { get; internal set; }
public static DotnetAppType DotnetAppType { get; internal set; }
public static string ElectronExecutable { get; internal set; }
public static ImmutableList<string> ProcessArguments { get; internal set; }
public static BuildInfo BuildInfo { get; internal set; }
public static IElectronNetRuntimeController RuntimeController => RuntimeControllerCore;
// The below properties are non-public
internal static RuntimeControllerBase RuntimeControllerCore { get; set; }
internal static int? ElectronProcessId { get; set; }
internal static Func<Task> OnAppReadyCallback { get; set; }
internal static SocketIoFacade GetSocket()
{
return RuntimeControllerCore?.Socket;
}
}
}