Package org.astonbitecode.j4rs.api
Interface Instance<T>
-
- All Superinterfaces:
JsonValue
,ObjectValue
- All Known Implementing Classes:
EagerJsonInvocationImpl
,InvocationArg
,JavaFxInvocation
,JsonInvocationImpl
public interface Instance<T> extends ObjectValue, JsonValue
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description static <T> Instance
cast(Instance from, String toClass)
Casts a the object that is contained in a Instance to an object of class clazz.static <T> Instance
cloneInstance(Instance from)
Clones a InstanceInstance
field(String fieldName)
Retrieves the instance held under the Field fieldNamedefault T
getOrDeserializeJavaObject()
void
initializeCallbackChannel(long channelAddress)
Initialize a callback channel for thisInstance
.Instance
invoke(String methodName, InvocationArg... args)
Invokes a method of the instance of the class that is set for thisInstance
void
invokeAsyncToChannel(long functionPointerAddress, String methodName, InvocationArg... args)
Invokes asynchronously a method of the instance of the class that is set for thisInstance
.Instance
invokeStatic(String methodName, InvocationArg... args)
Invokes a static method of the class that is set for thisInstance
void
invokeToChannel(long channelAddress, String methodName, InvocationArg... args)
Invokes a method of the instance of the class that is set for thisInstance
.-
Methods inherited from interface org.astonbitecode.j4rs.api.ObjectValue
getObject, getObjectClass, getObjectClassName
-
-
-
-
Method Detail
-
invoke
Instance invoke(String methodName, InvocationArg... args)
Invokes a method of the instance of the class that is set for thisInstance
- Parameters:
methodName
- The method nameargs
- The arguments to use for invoking the method- Returns:
- A
Instance
instance containing the result of the invocation
-
invokeStatic
Instance invokeStatic(String methodName, InvocationArg... args)
Invokes a static method of the class that is set for thisInstance
- Parameters:
methodName
- The static method nameargs
- The arguments to use for invoking the static method- Returns:
- A
Instance
instance containing the result of the invocation
-
invokeAsyncToChannel
void invokeAsyncToChannel(long functionPointerAddress, String methodName, InvocationArg... args)
Invokes 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 simpleFuture
s with polling using an internalScheduledExecutorService
with one thread and this has apparent performance issues. You may have a look atJ4rsPolledFuture
for more details.- Parameters:
functionPointerAddress
- The address of the function pointer that will be used when theFuture
completes, 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
void invokeToChannel(long channelAddress, String methodName, InvocationArg... args)
Invokes 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 aNativeCallbackToRustChannelSupport
class. Any possible returned objects from the actual synchronous invocation of the defined method will be dropped.- Parameters:
channelAddress
- The memory address of the channelmethodName
- The method nameargs
- The arguments
-
initializeCallbackChannel
void initializeCallbackChannel(long channelAddress)
Initialize a callback channel for thisInstance
. The channel can be used by Java to send values to Rust using the doCallback method of aNativeCallbackToRustChannelSupport
class.- Parameters:
channelAddress
- The memory address of the channel
-
field
Instance field(String fieldName)
Retrieves the instance held under the Field fieldName- Parameters:
fieldName
- The name of the field to retrieve- Returns:
- A
Instance
instance containing the defined field.
-
cast
static <T> Instance cast(Instance from, String toClass)
Casts a the object that is contained in a Instance to an object of class clazz.
-
cloneInstance
static <T> Instance cloneInstance(Instance from)
Clones a Instance- Type Parameters:
T
- Generically defined return type- Parameters:
from
- The object to clone.- Returns:
- a
Instance
instance.
-
getOrDeserializeJavaObject
default T getOrDeserializeJavaObject()
-
-