Class JsonInvocationImpl<T>
java.lang.Object
org.astonbitecode.j4rs.api.invocation.JsonInvocationImpl<T>
- All Implemented Interfaces:
Instance<T>, JsonValue, ObjectValue
-
Constructor Summary
ConstructorsConstructorDescriptionJsonInvocationImpl(Class<T> clazz) JsonInvocationImpl(T instance, Class<T> clazz) -
Method Summary
Modifier and TypeMethodDescriptionRetrieves the instance held under the Field fieldNamegetJson()Returns the json representationReturns the ObjectReturns theClassof the ObjectReturns the name of the Object ClassvoidinitializeCallbackChannel(long channelAddress) Initialize a callback channel for thisInstance.invoke(String methodName, InvocationArg... args) Invokes a method of the instance of the class that is set for thisInstancevoidinvokeAsyncToChannel(long channelAddress, String methodName, InvocationArg... args) Invokes asynchronously a method of the instance of the class that is set for thisInstance.invokeStatic(String methodName, InvocationArg... args) Invokes a static method of the class that is set for thisInstancevoidinvokeToChannel(long channelAddress, String methodName, InvocationArg... args) Invokes a method of the instance of the class that is set for thisInstance.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Instance
checkEquals, getOrDeserializeJavaObject
-
Constructor Details
-
JsonInvocationImpl
-
JsonInvocationImpl
-
JsonInvocationImpl
-
-
Method Details
-
invoke
-
invokeStatic
Description copied from interface:InstanceInvokes a static method of the class that is set for thisInstance- Specified by:
invokeStaticin interfaceInstance<T>- Parameters:
methodName- The static method nameargs- The arguments to use for invoking the static method- Returns:
- A
Instanceinstance containing the result of the invocation
-
invokeAsyncToChannel
Description copied from interface:InstanceInvokes asynchronously a method of the instance of the class that is set for thisInstance. The result of the invocation must be aFuture. When the Future returned from the invocation completes, j4rs will invoke native Rust code to either send a success value or a failure.Please note that it is best that this function returns a
CompletableFuture, as this improves performance. j4rs handles simpleFutures with polling using an internalScheduledExecutorServicewith one thread and this has apparent performance issues. You may have a look atJ4rsPolledFuturefor more details.- Specified by:
invokeAsyncToChannelin interfaceInstance<T>- Parameters:
channelAddress- The address of the function pointer that will be used when theFuturecompletes, in the native side, in order to actually perform the callback and complete a Future that is created in Rust and awaits for the Java Future to complete.methodName- The method nameargs- The arguments to use when invoking the callback method (the functionPointer)
-
invokeToChannel
Description copied from interface:InstanceInvokes a method of the instance of the class that is set for thisInstance. The result of the invocation should be provided later using the doCallback method of aNativeCallbackToRustChannelSupportclass. Any possible returned objects from the actual synchronous invocation of the defined method will be dropped.- Specified by:
invokeToChannelin interfaceInstance<T>- Parameters:
channelAddress- The memory address of the channelmethodName- The method nameargs- The arguments
-
initializeCallbackChannel
public void initializeCallbackChannel(long channelAddress) Description copied from interface:InstanceInitialize a callback channel for thisInstance. The channel can be used by Java to send values to Rust using the doCallback method of aNativeCallbackToRustChannelSupportclass.- Specified by:
initializeCallbackChannelin interfaceInstance<T>- Parameters:
channelAddress- The memory address of the channel
-
field
-
getObject
Description copied from interface:ObjectValueReturns the Object- Specified by:
getObjectin interfaceObjectValue- Returns:
- An object instance
-
getObjectClass
Description copied from interface:ObjectValueReturns theClassof the Object- Specified by:
getObjectClassin interfaceObjectValue- Returns:
- A
Class
-
getObjectClassName
Description copied from interface:ObjectValueReturns the name of the Object Class- Specified by:
getObjectClassNamein interfaceObjectValue- Returns:
- A String representing the name of the Object Class
-
getJson
-