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); } } }