using System.Net;

namespace NATS.Server.Server;

public sealed class AcceptLoopErrorHandler
{
    private readonly Action<Exception, EndPoint?, TimeSpan> _callback;

    public AcceptLoopErrorHandler(Action<Exception, EndPoint?, TimeSpan> callback)
    {
        _callback = callback ?? throw new ArgumentNullException(nameof(callback));
    }

    public void OnAcceptError(Exception ex, EndPoint? endpoint, TimeSpan delay)
    {
        _callback(ex, endpoint, delay);
    }
}
