Files
ClubPenguinClient/MareSynchronos/Mediator/MediatorSubscriberBase.cs
2023-01-31 19:52:12 +01:00

40 lines
941 B
C#

using Dalamud.Interface.Windowing;
using MareSynchronos.Utils;
namespace MareSynchronos.Mediator;
public abstract class MediatorSubscriberBase : IMediatorSubscriber
{
public MareMediator Mediator { get; }
protected MediatorSubscriberBase(MareMediator mediator)
{
Mediator = mediator;
}
public virtual void Dispose()
{
Logger.Verbose($"Disposing {GetType()}");
Mediator.UnsubscribeAll(this);
}
}
public abstract class WindowMediatorSubscriberBase : Window, IMediatorSubscriber
{
public MareMediator Mediator { get; }
protected WindowMediatorSubscriberBase(MareMediator mediator, string name) : base(name)
{
Mediator = mediator;
}
public virtual void Dispose()
{
Logger.Verbose($"Disposing {GetType()}");
Mediator.UnsubscribeAll(this);
}
}
public interface IMediatorSubscriber : IDisposable
{
MareMediator Mediator { get; }
}