Class DefaultRPCSender
java.lang.Object
eu.cloudnetservice.driver.impl.network.rpc.DefaultRPCProvider
eu.cloudnetservice.driver.impl.network.rpc.sender.DefaultRPCSender
- All Implemented Interfaces:
eu.cloudnetservice.driver.network.rpc.RPCProvider, eu.cloudnetservice.driver.network.rpc.RPCSender
public final class DefaultRPCSender
extends DefaultRPCProvider
implements eu.cloudnetservice.driver.network.rpc.RPCSender
The default implementation of an RPC sender.
- 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>Nested classes/interfaces inherited from interface eu.cloudnetservice.driver.network.rpc.RPCSender
eu.cloudnetservice.driver.network.rpc.RPCSender.Builder -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Supplier<eu.cloudnetservice.driver.network.NetworkChannel> private final RPCClassMetadataprivate static final StackWalkerFields inherited from class DefaultRPCProvider
dataBufFactory, objectMapper, sourceFactory, targetClass -
Constructor Summary
ConstructorsConstructorDescriptionDefaultRPCSender(@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 RPCClassMetadata rpcTargetMeta, @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier) Constructs a new default rpc sender instance. -
Method Summary
Modifier and TypeMethodDescription@NonNull eu.cloudnetservice.driver.network.rpc.RPCinvokeCaller(Object... args) @NonNull eu.cloudnetservice.driver.network.rpc.RPCinvokeCallerWithOffset(int callerStackOffset, Object... args) private @NonNull eu.cloudnetservice.driver.network.rpc.RPCinvokeMethod(@NonNull DefaultRPCMethodMetadata method, Object... args) Creates a new RPC to call the given target method with the given arguments.@NonNull eu.cloudnetservice.driver.network.rpc.RPCinvokeMethod(@NonNull String methodName, @NonNull TypeDescriptor methodDesc, Object... args) @NonNull eu.cloudnetservice.driver.network.rpc.RPCinvokeMethod(@NonNull String methodName, Object... args) 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
-
STACK_WALKER
-
rpcTargetMeta
-
channelSupplier
-
-
Constructor Details
-
DefaultRPCSender
public DefaultRPCSender(@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 RPCClassMetadata rpcTargetMeta, @NonNull @NonNull Supplier<eu.cloudnetservice.driver.network.NetworkChannel> channelSupplier) Constructs a new default rpc sender instance.- Parameters:
targetClass- the class in which this sender can call methods.sourceFactory- the rpc factory that constructed this object.objectMapper- the object mapper to use to write and read data from the buffers.dataBufFactory- the buffer factory used for buffer allocations.rpcTargetMeta- the metadata of the target class handled by this sender.channelSupplier- the channel supplier for RPCs without a specified target channel.- Throws:
NullPointerException- if one of the given parameters is null.
-
-
Method Details
-
invokeCaller
-
invokeCallerWithOffset
-
invokeMethod
-
invokeMethod
-
invokeMethod
@NonNull private @NonNull eu.cloudnetservice.driver.network.rpc.RPC invokeMethod(@NonNull @NonNull DefaultRPCMethodMetadata method, Object... args) Creates a new RPC to call the given target method with the given arguments.- Parameters:
method- the metadata of the method that should be called.args- the arguments of to supply to the target method.- Returns:
- a new RPC instance targeting the given methods with the given arguments.
- Throws:
NullPointerException- if the given method metadata or argument array is null.IllegalArgumentException- if the parameter count mismatches.
-