Skip to main content

Interface ICallGateSubscriber<T1, T2, T3, T4, T5, T6, T7, T8, TRet>

This class facilitates inter-plugin communication.

Assembly: Dalamud.dll
View Source
Declaration
public interface ICallGateSubscriber<T1, T2, T3, T4, T5, T6, T7, T8, TRet>

Methods

Subscribe(Action<T1, T2, T3, T4, T5, T6, T7, T8>)

Registers a System.Delegate (of type System.Action%601) that will be called when the providing plugin calls Dalamud.Plugin.Ipc.ICallGateProvider%601.SendMessage. This method can be used to receive notifications of events or data updates from a specific plugin.

View Source
Declaration
void Subscribe(Action<T1, T2, T3, T4, T5, T6, T7, T8> action)
Parameters
TypeNameDescription
System.Action<<T1>,<T2>,<T3>,<T4>,<T5>,<T6>,<T7>,<T8>>actionAction to subscribe.

Unsubscribe(Action<T1, T2, T3, T4, T5, T6, T7, T8>)

Removes a subscription created through Dalamud.Plugin.Ipc.Internal.CallGatePubSubBase.Subscribe(System.Delegate). Note that the System.Delegate to be unsubscribed must be the same instance as the one passed in.

View Source
Declaration
void Unsubscribe(Action<T1, T2, T3, T4, T5, T6, T7, T8> action)
Parameters
TypeNameDescription
System.Action<<T1>,<T2>,<T3>,<T4>,<T5>,<T6>,<T7>,<T8>>actionAction to unsubscribe.

InvokeAction(T1, T2, T3, T4, T5, T6, T7, T8)

Executes the Action registered for this IPC call gate via Dalamud.Plugin.Ipc.Internal.CallGatePubSubBase.RegisterAction(System.Delegate). This method is intended to be called by plugins wishing to access another plugin via RPC. The parameters passed to this method will be passed to the owning plugin, with appropriate serialization for complex data types. Primitive data types will be passed as-is. The target Action will be called on the <em>same thread</em> as the caller.

View Source
Declaration
void InvokeAction(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
Parameters
TypeName
<T1>arg1
<T2>arg2
<T3>arg3
<T4>arg4
<T5>arg5
<T6>arg6
<T7>arg7
<T8>arg8
Exceptions

Dalamud.Plugin.Ipc.Exceptions.IpcNotReadyError
This is thrown when the IPC publisher has not registered an action for calling yet.

InvokeFunc(T1, T2, T3, T4, T5, T6, T7, T8)

Executes the Function registered for this IPC call gate via Dalamud.Plugin.Ipc.Internal.CallGatePubSubBase.RegisterFunc(System.Delegate). This method is intended to be called by plugins wishing to access another plugin via RPC. The parameters passed to this method will be passed to the owning plugin, with appropriate serialization for complex data types. Primitive data types will be passed as-is. The target Action will be called on the <em>same thread</em> as the caller.

View Source
Declaration
TRet InvokeFunc(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
Returns

<TRet>: The return value.

Parameters
TypeName
<T1>arg1
<T2>arg2
<T3>arg3
<T4>arg4
<T5>arg5
<T6>arg6
<T7>arg7
<T8>arg8
Exceptions

Dalamud.Plugin.Ipc.Exceptions.IpcNotReadyError
This is thrown when the IPC publisher has not registered a func for calling yet.