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
RpcSerializer
that delegates to differentGatewayRpcSerializer
implementations 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 anRpcRouter
from object(s) that implement an RPC interface.Annotate a particular method on your RPC implementation withRequiredMutabilityMode
to indicate that the client must have at least the givenMutabilityMode
, or the call will be rejected.Annotate a particular method on your RPC implementation withRunsOnBackup
to allow it to be invoked on a backup node.Annotate a particular method or your entire RPC implementation withRunsOnClient
to 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()
.