# 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

## History

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.