using XFEExtension.NetCore.AutoImplement;
using XFEExtension.NetCore.ServerInteractive.Interfaces.ServerService;
using XFEExtension.NetCore.ServerInteractive.Utilities.Server;
namespace XFEExtension.NetCore.ServerInteractive.Implements.ServerService;
///
/// 核心服务器处理服务基类
///
[CreateImpl]
public abstract class ServerCoreProcessServiceBase : IServerCoreProcessService
{
///
public IReadOnlyList ServerCoreServiceList { get; set; } = [];
///
public XFEServer XFEServer { get; set; } = null!;
///
[Obsolete("请使用 StartAsync、RunAsync 和 StopAsync")]
public abstract Task ProcessServerCore();
///
public virtual Task StartAsync(CancellationToken cancellationToken = default) => Task.CompletedTask;
///
#pragma warning disable CS0618
public virtual Task RunAsync(CancellationToken cancellationToken = default) => ProcessServerCore().WaitAsync(cancellationToken);
#pragma warning restore CS0618
///
public virtual Task StopAsync(CancellationToken cancellationToken = default) => Task.CompletedTask;
}