40 lines
941 B
C#
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; }
|
|
}
|