jinvoke_db
Invoke a method of a Java object in using Java direct buffers
Syntax
ret = jinvoke_db(object, methodName [, varName_1 [, varName_2...]])
Parameters
- object
A mlist typed _JObj or _JClass or a Scilab variable
- methodName
A string giving the method name
- varName_i
A string giving a Scilab variable name as argument
Description
Invoke the Java method (static or not) called methodName of the given object. A pointer on the Scilab variable named varNamei is got and a direct buffer is created. Take care: you should not keep any reference on a direct buffer. You have a direct access to the Scilab memory so if for one reason a Scilab variable is moved or destroyed, you risk to read or to write where you would not do it ! To avoid any problems, the limit of each buffer is set to 0.
Examples
c = jcompile("TestDirectBuffer",["import java.nio.DoubleBuffer;"; "public class TestDirectBuffer {"; "public static void increment(DoubleBuffer x) {"; "for (int i = 0; i < x.capacity(); i++) x.put(i, x.get(i) + 1);"; "}"; "}"]) a = 1:10000; b = a + 1; // only used to compare with the following... jinvoke_db(c, "increment", "a"); and(a==b) jremove c;
See also
- jinvoke — Invoke a method of a Java object
History
Version | Description |
5.5.0 | Function introduced. Based on the 'JIMS' module. The main difference in the behavior compared to the JIMS module is that jautoUnwrap is enabled by default. |
Report an issue | ||
<< jinvoke | Java from Scilab | jnewInstance >> |