using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InABox.Core
{
public interface IPushHandler
{
///
/// Receives a new push from the server, called when a push is pushed.
///
/// The push object
void Receive(object? o);
}
public class PushHandler : IPushHandler
{
public delegate void ReceiveEvent(TPush push);
public event ReceiveEvent? OnReceive;
public PushHandler() { }
public PushHandler(ReceiveEvent receive)
{
OnReceive += receive;
}
public void Receive(object? push) => Receive((TPush)push);
///
/// Receives a new push message from the server, called when it is pushed.
///
/// The push message received
public void Receive(TPush push)
{
OnReceive?.Invoke(push);
}
}
}