Class DefaultRPCChain
java.lang.Object
eu.cloudnetservice.driver.impl.network.rpc.DefaultRPCProvider
eu.cloudnetservice.driver.impl.network.rpc.rpc.DefaultRPCChain
- All Implemented Interfaces:
eu.cloudnetservice.driver.network.rpc.ChainableRPC, eu.cloudnetservice.driver.network.rpc.RPCChain, eu.cloudnetservice.driver.network.rpc.RPCExecutable, eu.cloudnetservice.driver.network.rpc.RPCProvider
public final class DefaultRPCChain
extends DefaultRPCProvider
implements eu.cloudnetservice.driver.network.rpc.RPCChain
Represents the default implementation of a rpc chain.
- Since:
- 4.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface eu.cloudnetservice.driver.network.rpc.RPCProvider
eu.cloudnetservice.driver.network.rpc.RPCProvider.Builder<B> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final eu.cloudnetservice.driver.network.rpc.RPCprivate final eu.cloudnetservice.driver.network.rpc.RPCprivate final Supplier<eu.cloudnetservice.driver.network.NetworkChannel> private final List<eu.cloudnetservice.driver.network.rpc.RPC> Fields inherited from class DefaultRPCProvider
dataBufFactory, objectMapper, sourceFactory, targetClass -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateDefaultRPCChain(@NonNull eu.cloudnetservice.driver.network.rpc.RPC chainHead, @NonNull eu.cloudnetservice.driver.network.rpc.RPC chainTail, @NonNull List<eu.cloudnetservice.driver.network.rpc.RPC> fullChain, @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier) Constructs a new rpc chain instance. -
Method Summary
Modifier and TypeMethodDescription<T> @NonNull CompletableFuture<T> fire()<T> @NonNull CompletableFuture<T> voidvoidfireAndForget(@NonNull eu.cloudnetservice.driver.network.NetworkChannel component) <T> @UnknownNullability TfireSync()<T> T@NonNull eu.cloudnetservice.driver.network.rpc.RPCChain@NonNull Collection<eu.cloudnetservice.driver.network.rpc.RPC> joins()static @NonNull DefaultRPCChainof(@NonNull eu.cloudnetservice.driver.network.rpc.RPC root, @NonNull eu.cloudnetservice.driver.network.rpc.RPC next, @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier) Constructs a new rpc chain using the given root and tail rpc.@NonNull eu.cloudnetservice.driver.network.rpc.RPCtail()Methods inherited from class DefaultRPCProvider
dataBufFactory, objectMapper, sourceFactory, targetClassMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface eu.cloudnetservice.driver.network.rpc.RPCProvider
dataBufFactory, objectMapper, sourceFactory, targetClass
-
Field Details
-
chainHead
private final eu.cloudnetservice.driver.network.rpc.RPC chainHead -
chainTail
private final eu.cloudnetservice.driver.network.rpc.RPC chainTail -
fullChain
-
channelSupplier
-
-
Constructor Details
-
DefaultRPCChain
private DefaultRPCChain(@NonNull @NonNull eu.cloudnetservice.driver.network.rpc.RPC chainHead, @NonNull @NonNull eu.cloudnetservice.driver.network.rpc.RPC chainTail, @NonNull @NonNull List<eu.cloudnetservice.driver.network.rpc.RPC> fullChain, @NonNull @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier) Constructs a new rpc chain instance.- Parameters:
chainHead- the first rpc in the execution chain.chainTail- the last rpc in the execution chain.fullChain- the full chain of rpc to invoke.channelSupplier- the target channel supplier to use for method invocation if no channel is provided.- Throws:
NullPointerException- if one of the given parameters is null.
-
-
Method Details
-
of
@NonNull public static @NonNull DefaultRPCChain of(@NonNull @NonNull eu.cloudnetservice.driver.network.rpc.RPC root, @NonNull @NonNull eu.cloudnetservice.driver.network.rpc.RPC next, @NonNull @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier) Constructs a new rpc chain using the given root and tail rpc.- Parameters:
root- the root rpc for the chain.next- the tail rpc for the chain.channelSupplier- the target channel supplier to use for method invocation if no channel is provided.- Returns:
- the constructed rpc chain.
- Throws:
NullPointerException- if the given root rpc, tail rpc or channel supplier is null.
-
join
-
tail
-
joins
- Specified by:
joinsin interfaceeu.cloudnetservice.driver.network.rpc.RPCChain
-
fireAndForget
public void fireAndForget()- Specified by:
fireAndForgetin interfaceeu.cloudnetservice.driver.network.rpc.RPCExecutable
-
fireSync
- Specified by:
fireSyncin interfaceeu.cloudnetservice.driver.network.rpc.RPCExecutable
-
fire
- Specified by:
firein interfaceeu.cloudnetservice.driver.network.rpc.RPCExecutable
-
fireAndForget
-
fireSync
-
fire
@NonNull public <T> @NonNull CompletableFuture<T> fire(@NonNull @NonNull eu.cloudnetservice.driver.network.NetworkChannel component) - Specified by:
firein interfaceeu.cloudnetservice.driver.network.rpc.RPCExecutable
-