using System; using System.Net; using ZeroLevel.Models; namespace ZeroLevel.Network { public interface IExClient : IDisposable { event Action Connected; void ForceConnect(); ZTransportStatus Status { get; } IPEndPoint Endpoint { get; } InvokeResult Send(T obj); InvokeResult Send(string inbox, T obj); InvokeResult Request(Treq obj, Action callback); InvokeResult Request(string inbox, Treq obj, Action callback); InvokeResult Request(Action callback); InvokeResult Request(string inbox, Action callback); void RegisterInbox(string inbox, Action handler); void RegisterInbox(Action handler); void RegisterInbox(string inbox, Func handler); } }