static FunctionInvoker getFunctionInvoker(Type returnType) { if (returnType instanceof Type.Builtin) { return getFunctionInvoker(returnType.getNativeType()); } else if (returnType instanceof CallbackInfo) { return new ConvertingInvoker(getFunctionInvoker(NativeType.POINTER), DataConverters.getResultConverter(returnType)); } else if (returnType instanceof StructByValue) { return new StructByValueInvoker((StructByValue) returnType); } else if (returnType instanceof MappedType) { MappedType ctype = (MappedType) returnType; return new ConvertingInvoker(getFunctionInvoker(ctype.getRealType()), DataConverters.getResultConverter(ctype)); } throw returnType.getRuntime().newArgumentError("Cannot get FunctionInvoker for " + returnType); }
static FunctionInvoker getFunctionInvoker(Type returnType) { if (returnType instanceof Type.Builtin) { return getFunctionInvoker(returnType.getNativeType()); } else if (returnType instanceof CallbackInfo) { return new ConvertingInvoker(getFunctionInvoker(NativeType.POINTER), DataConverters.getResultConverter(returnType)); } else if (returnType instanceof StructByValue) { return new StructByValueInvoker((StructByValue) returnType); } else if (returnType instanceof MappedType) { MappedType ctype = (MappedType) returnType; return new ConvertingInvoker(getFunctionInvoker(ctype.getRealType()), DataConverters.getResultConverter(ctype)); } throw returnType.getRuntime().newArgumentError("Cannot get FunctionInvoker for " + returnType); }
static FunctionInvoker getFunctionInvoker(Type returnType) { if (returnType instanceof Type.Builtin) { return getFunctionInvoker(returnType.getNativeType()); } else if (returnType instanceof CallbackInfo) { return new ConvertingInvoker(getFunctionInvoker(NativeType.POINTER), DataConverters.getResultConverter(returnType)); } else if (returnType instanceof StructByValue) { return new StructByValueInvoker((StructByValue) returnType); } else if (returnType instanceof MappedType) { MappedType ctype = (MappedType) returnType; return new ConvertingInvoker(getFunctionInvoker(ctype.getRealType()), DataConverters.getResultConverter(ctype)); } throw returnType.getRuntime().newArgumentError("Cannot get FunctionInvoker for " + returnType); }
static FunctionInvoker getFunctionInvoker(Type returnType) { if (returnType instanceof Type.Builtin) { return getFunctionInvoker(returnType.getNativeType()); } else if (returnType instanceof CallbackInfo) { return new ConvertingInvoker(getFunctionInvoker(NativeType.POINTER), DataConverters.getResultConverter(returnType)); } else if (returnType instanceof StructByValue) { return new StructByValueInvoker((StructByValue) returnType); } else if (returnType instanceof MappedType) { MappedType ctype = (MappedType) returnType; return new ConvertingInvoker(getFunctionInvoker(ctype.getRealType()), DataConverters.getResultConverter(ctype)); } throw returnType.getRuntime().newArgumentError("Cannot get FunctionInvoker for " + returnType); }
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }