Files
Pilz/Pilz.Net/Api/IApiServer.cs
Pilzinsel64 75b5f7ddd5 jobs
2025-10-22 07:39:32 +02:00

37 lines
1.3 KiB
C#

using Castle.Core.Logging;
using Pilz.Data;
using Pilz.Jobs;
namespace Pilz.Net.Api;
public interface IApiServer
{
public delegate void OnCheckAuthenticationEventHandler(object sender, ApiAuthCheckEventArgs e);
public delegate void OnCheckContextEventHandler(object sender, ApiContextEventArgs e);
public delegate IDataManager? OnGetNewDataManagerEventHandler(object sender, EventArgs e);
event OnCheckAuthenticationEventHandler? OnCheckAuthentication;
event OnCheckContextEventHandler? OnCheckContext;
event OnCheckContextEventHandler? OnCheckContextCompleted;
event OnGetNewDataManagerEventHandler? OnGetNewDataManager;
event DataManagerEventHandler? OnResetDataManager;
IDataManager Manager { get; }
string ApiUrl { get; }
bool EnableAuth { get; set; }
public JobCenter Jobs { get; }
IApiMessageSerializer Serializer { get; }
ILogger Log { get; set; }
void Start();
void Stop() => Stop(true);
void RegisterHandler<T>(T instance) where T : class;
void RegisterHandler(Delegate handler);
void RegisterHandler(Delegate handler, bool throwOnError);
void RegisterHandler(Delegate handler, ApiMessageHandlerAttribute attribute, bool throwOnError);
Dictionary<string, string[]> GetEndpoints();
void Stop(bool graceful);
void Restart(bool graceful);
T? GetHandler<T>();
}