com.jniwrapper
Class Function

java.lang.Object
  |
  +--com.jniwrapper.Function

public class Function
extends java.lang.Object

The Function class allows to call specified function from a native code library.


Field Summary
static byte CDECL_CALLING_CONVENTION
          Constant for cdecl calling convention.
static byte DEFAULT_CALLING_CONVENTION
          Default calling convention for native platform.
static byte STDCALL_CALLING_CONVENTION
          Constant for stdcall calling convention.
 
Method Summary
static void call(java.lang.String libraryName, java.lang.String functionName, Parameter returnValue)
          Convenience method that invokes a native code function, which has no parameters.
static void call(java.lang.String libraryName, java.lang.String functionName, Parameter returnValue, Parameter parameter)
          Convenience method that invokes a native code function with single parameter.
static void call(java.lang.String libraryName, java.lang.String functionName, Parameter returnValue, Parameter[] parameters)
          Invokes the specified function from specified native library.
static void call(java.lang.String libraryName, java.lang.String functionName, Parameter returnValue, Parameter param1, Parameter param2)
          Convenience method that invokes a native code function, which has two parameters.
static void call(java.lang.String libraryName, java.lang.String functionName, Parameter returnValue, Parameter param1, Parameter param2, Parameter param3)
          Convenience method that invokes a native function with three parameters.
static void call(java.lang.String libraryName, java.lang.String functionName, Parameter returnValue, Parameter param1, Parameter param2, Parameter param3, Parameter param4)
          Convenience method that invokes a native function with four parameters.
 byte getCallingConvention()
          Returns calling convention used for calling this function.
 java.lang.String getName()
          Returns function name.
 void invoke(Parameter returnValue)
          Convenience method for calling a native function without parameters.
 void invoke(Parameter returnValue, Parameter parameter)
          Convenience method for calling a native function with a single parameter.
 void invoke(Parameter returnValue, Parameter[] parameters)
          Invokes the function with the passed parameters.
 void invoke(Parameter returnValue, Parameter param1, Parameter param2)
          Convenience method for calling native function with two parameters.
 void invoke(Parameter returnValue, Parameter param1, Parameter param2, Parameter param3)
          Convenience method for calling a native function with three parameters.
 void invoke(Parameter returnValue, Parameter param1, Parameter param2, Parameter param3, Parameter param4)
          Convenience method for calling native function with four parameters.
 void setCallingConvention(byte callingConvention)
          Sets calling convention for this function.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CALLING_CONVENTION

public static final byte DEFAULT_CALLING_CONVENTION
Default calling convention for native platform.

See Also:
Constant Field Values

CDECL_CALLING_CONVENTION

public static final byte CDECL_CALLING_CONVENTION
Constant for cdecl calling convention. Caller cleans stack in this convention.

See Also:
Constant Field Values

STDCALL_CALLING_CONVENTION

public static final byte STDCALL_CALLING_CONVENTION
Constant for stdcall calling convention. Callee cleans stack in this convention.

See Also:
Constant Field Values
Method Detail

setCallingConvention

public void setCallingConvention(byte callingConvention)
Sets calling convention for this function. This setting is remembered in the current Function object only - it is not mapped to the function name. Most of the time users do not need to use this method.


getCallingConvention

public byte getCallingConvention()
Returns calling convention used for calling this function. This method does not return DEFAULT_CALLING_CONVENTION value.


getName

public java.lang.String getName()
Returns function name.


invoke

public void invoke(Parameter returnValue,
                   Parameter[] parameters)
            throws FunctionExecutionException
Invokes the function with the passed parameters. A type of the return value and parameter types should correspond to types of the native code function.

Parameters:
returnValue - reference to return value
parameters - array of parameters of called function
FunctionExecutionException

invoke

public final void invoke(Parameter returnValue)
                  throws FunctionExecutionException
Convenience method for calling a native function without parameters.

FunctionExecutionException
See Also:
invoke(Parameter, Parameter[])

invoke

public final void invoke(Parameter returnValue,
                         Parameter parameter)
                  throws FunctionExecutionException
Convenience method for calling a native function with a single parameter.

FunctionExecutionException
See Also:
invoke(Parameter, Parameter[])

invoke

public final void invoke(Parameter returnValue,
                         Parameter param1,
                         Parameter param2)
                  throws FunctionExecutionException
Convenience method for calling native function with two parameters.

FunctionExecutionException
See Also:
invoke(Parameter, Parameter[])

invoke

public final void invoke(Parameter returnValue,
                         Parameter param1,
                         Parameter param2,
                         Parameter param3)
                  throws FunctionExecutionException
Convenience method for calling a native function with three parameters.

FunctionExecutionException
See Also:
invoke(Parameter, Parameter[])

invoke

public final void invoke(Parameter returnValue,
                         Parameter param1,
                         Parameter param2,
                         Parameter param3,
                         Parameter param4)
                  throws FunctionExecutionException
Convenience method for calling native function with four parameters.

FunctionExecutionException
See Also:
invoke(Parameter, Parameter[])

call

public static void call(java.lang.String libraryName,
                        java.lang.String functionName,
                        Parameter returnValue,
                        Parameter[] parameters)
                 throws FunctionExecutionException
Invokes the specified function from specified native library. A type of the return value and parameter types should correspond to types of the native code function.

Since this method creates instances of Library and Function, it should be used when the number of calls is minimal.

Parameters:
libraryName - filename of the library containing a called function
functionName - name of the called function
returnValue - reference to a return value
parameters - array of parameters of the called function
FunctionExecutionException

call

public static final void call(java.lang.String libraryName,
                              java.lang.String functionName,
                              Parameter returnValue)
                       throws FunctionExecutionException
Convenience method that invokes a native code function, which has no parameters.

FunctionExecutionException
See Also:
call(String, String, Parameter, Parameter[])

call

public static final void call(java.lang.String libraryName,
                              java.lang.String functionName,
                              Parameter returnValue,
                              Parameter parameter)
                       throws FunctionExecutionException
Convenience method that invokes a native code function with single parameter.

FunctionExecutionException
See Also:
call(String, String, Parameter, Parameter[])

call

public static final void call(java.lang.String libraryName,
                              java.lang.String functionName,
                              Parameter returnValue,
                              Parameter param1,
                              Parameter param2)
                       throws FunctionExecutionException
Convenience method that invokes a native code function, which has two parameters.

FunctionExecutionException
See Also:
call(String, String, Parameter, Parameter[])

call

public static final void call(java.lang.String libraryName,
                              java.lang.String functionName,
                              Parameter returnValue,
                              Parameter param1,
                              Parameter param2,
                              Parameter param3)
                       throws FunctionExecutionException
Convenience method that invokes a native function with three parameters.

FunctionExecutionException
See Also:
call(String, String, Parameter, Parameter[])

call

public static final void call(java.lang.String libraryName,
                              java.lang.String functionName,
                              Parameter returnValue,
                              Parameter param1,
                              Parameter param2,
                              Parameter param3,
                              Parameter param4)
                       throws FunctionExecutionException
Convenience method that invokes a native function with four parameters.

FunctionExecutionException
See Also:
call(String, String, Parameter, Parameter[])