using System.Net;
using System.Threading;
using System.Threading.Tasks;
using WsjtxUtils.WsjtxMessages.Messages;
namespace WsjtxUtils.WsjtxUdpServer
{
///
/// Interface describing WSJT-X UDP Message Handler
///
public interface IWsjtxUdpMessageHandler
{
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleHeartbeatMessageAsync(WsjtxUdpServer server, Heartbeat message, EndPoint endPoint, CancellationToken cancellationToken = default);
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleStatusMessageAsync(WsjtxUdpServer server, Status message, EndPoint endPoint, CancellationToken cancellationToken = default);
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleDecodeMessageAsync(WsjtxUdpServer server, Decode message, EndPoint endPoint, CancellationToken cancellationToken = default);
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleClearMessageAsync(WsjtxUdpServer server, Clear message, EndPoint endPoint, CancellationToken cancellationToken = default);
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleQsoLoggedMessageAsync(WsjtxUdpServer server, QsoLogged message, EndPoint endPoint, CancellationToken cancellationToken = default);
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleClosedMessageAsync(WsjtxUdpServer server, Close message, EndPoint endPoint, CancellationToken cancellationToken = default);
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleWSPRDecodeMessageAsync(WsjtxUdpServer server, WSPRDecode message, EndPoint endPoint, CancellationToken cancellationToken = default);
///
/// Handle WSJT-X messages
///
///
///
///
///
///
Task HandleLoggedAdifMessageAsync(WsjtxUdpServer server, LoggedAdif message, EndPoint endPoint, CancellationToken cancellationToken = default);
}
}