Package com.inductiveautomation.ignition.gateway.rpc
@ParametersAreNonnullByDefault
package com.inductiveautomation.ignition.gateway.rpc
The Gateway half of the 'new' RPC system in Ignition 8.3.0.
The core of this system is the RpcHandler functional interface,
representing the handling of an RPC call, and RpcRouter,
which is responsible for routing RPC calls to the appropriate handler.
It is fully possible to implement these interfaces directly, starting from
GatewayModuleHook.getRpcImplementation() as your entrypoint.
However, the strongly recommended pattern is to use
RpcInterface on one or more interfaces to define
your API contract, and then use
#of(com.inductiveautomation.ignition.common.rpc.GatewayRpcSerializer, java.lang.Object...) GatewayRpcImplementation.of
to create RpcDelegate instances that adapt those interfaces to
the RpcRouter and RpcHandler interfaces.
-
ClassDescriptionA composite
RpcSerializerthat delegates to differentGatewayRpcSerializerimplementations based on the package ID of theRpcCall, falling back to a general serializer otherwise.This interface is used to provide the Gateway with the necessary information to handle RPC calls.Container for meta-information on an incoming RPC request.This class is a utility for creating anRpcRouterfrom object(s) that implement an RPC interface.Annotate a particular method on your RPC implementation withRequiredMutabilityModeto indicate that the client must have at least the givenMutabilityMode, or the call will be rejected.Annotate a particular method on your RPC implementation withRunsOnBackupto allow it to be invoked on a backup node.Annotate a particular method or your entire RPC implementation withRunsOnClientto allow it to be invoked by a client.Core interface representing the handling of an RPC call.Handles the indirection between an RpcCall (already guaranteed to be arriving at a given module) and a particular handler, as identified byRpcCall.packageId()andRpcCall.function().