<< jinvoke JIMS jnewInstance >>

JIMS >> JIMS > jinvoke_db

jinvoke_db

Invoke a method of a Java object in using Java direct buffers

Calling Sequence

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

Author


<< jinvoke JIMS jnewInstance >>