com.sun.jna.Function.invoke()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(5.6k)|赞(0)|评价(0)|浏览(343)

本文整理了Java中com.sun.jna.Function.invoke()方法的一些代码示例,展示了Function.invoke()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Function.invoke()方法的具体详情如下:
包路径:com.sun.jna.Function
类名称:Function
方法名:invoke

Function.invoke介绍

[英]Invoke the native function with the given arguments, returning the native result as an Object.
[中]使用给定参数调用本机函数,并将本机结果作为对象返回。

代码示例

代码示例来源:origin: net.java.dev.jna/jna

  1. /**
  2. * Call the native function being represented by this object
  3. *
  4. * @param args
  5. * Arguments to pass to the native function
  6. */
  7. public void invoke(Object[] args) {
  8. invoke(Void.class, args);
  9. }

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Invoke the native function with the given arguments, returning the
  2. * native result as an Object.
  3. */
  4. public Object invoke(Class<?> returnType, Object[] inArgs) {
  5. return invoke(returnType, inArgs, this.options);
  6. }

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invokeObject(Object.class, args)}.
  3. */
  4. public Object invokeObject(Object[] args) {
  5. return invoke(Object.class, args);
  6. }

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(Pointer.class, args)}.
  3. */
  4. public Pointer invokePointer(Object[] args) {
  5. return (Pointer)invoke(Pointer.class, args);
  6. }

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(Void.class, args)}.
  3. */
  4. public void invokeVoid(Object[] args) {
  5. invoke(Void.class, args);
  6. }

代码示例来源:origin: net.java.dev.jna/jna

  1. Object invoke(Object[] args, Class<?> returnType, boolean allowObjects) {
  2. return invoke(args, returnType, allowObjects, 0);
  3. }

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(Float.class, args)}.
  3. */
  4. public float invokeFloat(Object[] args) {
  5. return ((Float)invoke(Float.class, args)).floatValue();
  6. }
  7. /** Convenience method for

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(Double.class, args)}.
  3. */
  4. public double invokeDouble(Object[] args) {
  5. return ((Double)invoke(Double.class, args)).doubleValue();
  6. }
  7. /** Convenience method for

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(String.class, args)}
  3. * or {@link #invoke(Class,Object[]) invoke(WString.class, args)}
  4. * @param args Arguments passed to native function
  5. * @param wide Whether the return value is of type <code>wchar_t*</code>;
  6. * if false, the return value is of type <code>char*</code>.
  7. */
  8. public String invokeString(Object[] args, boolean wide) {
  9. Object o = invoke(wide ? WString.class : String.class, args);
  10. return o != null ? o.toString() : null;
  11. }

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(Integer.class, args)}.
  3. */
  4. public int invokeInt(Object[] args) {
  5. return ((Integer)invoke(Integer.class, args)).intValue();
  6. }
  7. /** Convenience method for

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(Long.class, args)}.
  3. */
  4. public long invokeLong(Object[] args) {
  5. return ((Long)invoke(Long.class, args)).longValue();
  6. }
  7. /** Convenience method for

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Invoke the native function with the given arguments, returning the
  2. * native result as an Object.
  3. */
  4. public Object invoke(Class<?> returnType, Object[] inArgs, Map<String, ?> options) {
  5. Method invokingMethod = (Method)options.get(OPTION_INVOKING_METHOD);
  6. Class<?>[] paramTypes = invokingMethod != null ? invokingMethod.getParameterTypes() : null;
  7. return invoke(invokingMethod, paramTypes, returnType, inArgs, options);
  8. }

代码示例来源:origin: net.java.dev.jna/jna

  1. /** Chain invocation to the native function. */
  2. @Override
  3. public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
  4. if (Library.Handler.OBJECT_TOSTRING.equals(method)) {
  5. String str = "Proxy interface to " + function;
  6. Method m = (Method)options.get(Function.OPTION_INVOKING_METHOD);
  7. Class<?> cls = findCallbackClass(m.getDeclaringClass());
  8. str += " (" + cls.getName() + ")";
  9. return str;
  10. } else if (Library.Handler.OBJECT_HASHCODE.equals(method)) {
  11. return Integer.valueOf(hashCode());
  12. } else if (Library.Handler.OBJECT_EQUALS.equals(method)) {
  13. Object o = args[0];
  14. if (o != null && Proxy.isProxyClass(o.getClass())) {
  15. return Function.valueOf(Proxy.getInvocationHandler(o) == this);
  16. }
  17. return Boolean.FALSE;
  18. }
  19. if (Function.isVarArgs(method)) {
  20. args = Function.concatenateVarArgs(args);
  21. }
  22. return function.invoke(method.getReturnType(), args, options);
  23. }

代码示例来源:origin: net.java.dev.jna/jna

  1. return f.handler.invoke(proxy, method, inArgs);
  2. return f.function.invoke(method, f.parameterTypes, method.getReturnType(), inArgs, f.options);

代码示例来源:origin: net.java.dev.jna/jna

  1. Object result = invoke(args, nativeReturnType, allowObjects, fixedArgs);

代码示例来源:origin: org.elasticsearch/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invokeObject(Object.class, args)}.
  3. */
  4. public Object invokeObject(Object[] args) {
  5. return invoke(Object.class, args);
  6. }

代码示例来源:origin: org.elasticsearch/jna

  1. /**
  2. * Call the native function being represented by this object
  3. *
  4. * @param args
  5. * Arguments to pass to the native function
  6. */
  7. public void invoke(Object[] args) {
  8. invoke(Void.class, args);
  9. }

代码示例来源:origin: org.elasticsearch/jna

  1. /** Convenience method for
  2. * {@link #invoke(Class,Object[]) invoke(Long.class, args)}.
  3. */
  4. public long invokeLong(Object[] args) {
  5. return ((Long)invoke(Long.class, args)).longValue();
  6. }
  7. /** Convenience method for

代码示例来源:origin: org.netbeans.api/org-jruby

  1. public final IRubyObject invoke(Ruby runtime, Function function, Object[] args) {
  2. function.invoke(args);
  3. return runtime.getNil();
  4. }
  5. public static final FunctionInvoker INSTANCE = new VoidInvoker();

代码示例来源:origin: net.java.dev.jna/jna-platform

  1. protected Object _invokeNativeObject(int vtableId, Object[] args, Class<?> returnType) {
  2. Pointer vptr = this.getPointer().getPointer(0);
  3. // we take the vtable id and multiply with the pointer size (4 bytes on
  4. // 32bit OS)
  5. Function func = Function.getFunction(vptr.getPointer(vtableId
  6. * Native.POINTER_SIZE));
  7. return func.invoke(returnType, args);
  8. }

相关文章