using Dalamud.Plugin.Ipc.Internal;
using Dalamud.Utility;
#pragma warning disable SA1402 // File may only contain a single type
namespace Dalamud.Plugin.Ipc;
///
/// The backing interface for the provider ("server") half of an IPC channel. This interface is used to expose methods
/// to other plugins via RPC, as well as to allow other plugins to subscribe to notifications from this plugin.
///
public interface ICallGateProvider
{
///
public int SubscriptionCount { get; }
///
public void UnregisterAction();
///
public void UnregisterFunc();
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage();
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1);
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1, T2 arg2);
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1, T2 arg2, T3 arg3);
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
}
///
public interface ICallGateProvider : ICallGateProvider
{
///
public void RegisterAction(Action action);
///
public void RegisterFunc(Func func);
///
public void SendMessage(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
}
#pragma warning restore SA1402 // File may only contain a single type