Class DefaultRPC
java.lang.Object
eu.cloudnetservice.driver.impl.network.rpc.DefaultRPCProvider
eu.cloudnetservice.driver.impl.network.rpc.rpc.DefaultRPC
- All Implemented Interfaces:
eu.cloudnetservice.driver.network.rpc.ChainableRPC, eu.cloudnetservice.driver.network.rpc.RPC, eu.cloudnetservice.driver.network.rpc.RPCExecutable, eu.cloudnetservice.driver.network.rpc.RPCProvider
public final class DefaultRPC
extends DefaultRPCProvider
implements eu.cloudnetservice.driver.network.rpc.RPC
The default implementation of a rpc.
- 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 Object[]private final Supplier<eu.cloudnetservice.driver.network.NetworkChannel> private booleanprivate Durationprivate final eu.cloudnetservice.driver.network.rpc.RPCSenderprivate final DefaultRPCMethodMetadataFields inherited from class DefaultRPCProvider
dataBufFactory, objectMapper, sourceFactory, targetClass -
Constructor Summary
ConstructorsConstructorDescriptionDefaultRPC(@NonNull Class<?> targetClass, @NonNull eu.cloudnetservice.driver.network.rpc.factory.RPCFactory sourceFactory, @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper objectMapper, @NonNull eu.cloudnetservice.driver.network.buffer.DataBufFactory dataBufFactory, @NonNull eu.cloudnetservice.driver.network.rpc.RPCSender sender, @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier, @Nullable Duration executionTimeout, @NonNull DefaultRPCMethodMetadata targetMethod, @NonNull Object[] arguments) Constructs a new default rpc instance. -
Method Summary
Modifier and TypeMethodDescription@NonNull eu.cloudnetservice.driver.network.rpc.RPC<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.RPCChainboolean@NonNull eu.cloudnetservice.driver.network.rpc.RPCSendersender()@NonNull eu.cloudnetservice.driver.network.rpc.introspec.RPCMethodMetadatatimeout()@NonNull eu.cloudnetservice.driver.network.rpc.RPCMethods 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
-
sender
private final eu.cloudnetservice.driver.network.rpc.RPCSender sender -
channelSupplier
-
arguments
-
targetMethod
-
dropResult
private boolean dropResult -
executionTimeout
-
-
Constructor Details
-
DefaultRPC
public DefaultRPC(@NonNull @NonNull Class<?> targetClass, @NonNull @NonNull eu.cloudnetservice.driver.network.rpc.factory.RPCFactory sourceFactory, @NonNull @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper objectMapper, @NonNull @NonNull eu.cloudnetservice.driver.network.buffer.DataBufFactory dataBufFactory, @NonNull @NonNull eu.cloudnetservice.driver.network.rpc.RPCSender sender, @NonNull @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier, @Nullable @Nullable Duration executionTimeout, @NonNull @NonNull DefaultRPCMethodMetadata targetMethod, @NonNull @NonNull Object[] arguments) Constructs a new default rpc instance.- Parameters:
targetClass- the class targeted by the RPC.sourceFactory- the rpc factory that constructed this object.objectMapper- the object mapper used for data serialization during rpc execution.dataBufFactory- the data buffer factory to use for buffer allocations during rpc execution.sender- the sender that constructed this rpc.channelSupplier- the default channel supplier to use during execution if none is provided.executionTimeout- the timeout for the execution of this rpc.targetMethod- the target method that should be invoked.arguments- the arguments to supply for execution.- Throws:
NullPointerException- if one of the given arguments, except the timeout, is null.
-
-
Method Details
-
join
-
sender
-
className
-
methodName
-
methodDescriptor
-
arguments
-
expectedResultType
-
targetMethod
-
timeout
-
timeout
-
dropResult
-
resultDropped
public boolean resultDropped()- Specified by:
resultDroppedin interfaceeu.cloudnetservice.driver.network.rpc.RPC
-
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
-