Name

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

jinvoke

Author

Calixte Denizet