Files
Pilz/Pilz.Net/Api/IApiServer.cs
2025-06-13 09:21:04 +02:00

34 lines
1.3 KiB
C#

using Castle.Core.Logging;
using Pilz.Data;
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; }
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);
IEnumerable<string> GetEndpoints();
void Stop(bool graceful);
void Restart(bool graceful);
}