Class Type

java.lang.Object
com.kenai.jffi.Type
Direct Known Subclasses:
Aggregate, Type.Builtin

public abstract class Type extends Object
Native parameter and return types.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    (package private) static final class 
    Types that are built-in to libffi.
    (package private) static final class 
    This is a lazy loaded cache of builtin type info, so we can still have Type.VOID as a public static variable without it causing the native library to load.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
     
    static final Type
    The native double type
    static final Type
    The native float type
    private long
     
    static final Type
    The native long double type
    static final Type
    The native memory address type
    static final Type
    The native signed char type
    static final Type
    The native signed integer type
    static final Type
    The native signed 16 bit integer type
    static final Type
    The native signed 32 bit integer type
    static final Type
    The native signed 64 bit integer type
    static final Type
    The native signed 8 bit integer type
    private int
     
    static final Type
    The native signed long integer type
    static final Type
    The native signed long long integer type
    static final Type
    The native signed short integer type
    private int
     
    static final Type
    The native unsigned char type
    static final Type
    The native unsigned integer type
    static final Type
    The native unsigned 16 bit integer type
    static final Type
    The native unsigned 32 bit integer type
    static final Type
    The native unsigned 64 bit integer type
    static final Type
    The native unsigned 8 bit integer type
    static final Type
    The native unsigned long integer type
    static final Type
    The native unsigned long long integer type
    static final Type
    The native unsigned short integer type
    static final Type
    The native void type
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final int
    Gets the alignment of this type.
    private static Type
    builtin(NativeType nativeType)
    Creates a Type instance for builtin types.
    boolean
     
    (package private) abstract Type.TypeInfo
     
    (package private) final long
    Gets the native address of the ffi_type struct for this Type
    int
     
    (package private) static long[]
    Converts an array of Type objects into an array of pointers to ffi_type structures.
    (package private) static long[]
    Converts a list of Type objects into an array of pointers to ffi_type structures.
    private int
     
    private long
     
    private int
     
    private int
     
    final int
    Gets the size of this type.
    final int
    Gets the FFI type enum value for this Type

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • VOID

      public static final Type VOID
      The native void type
    • FLOAT

      public static final Type FLOAT
      The native float type
    • DOUBLE

      public static final Type DOUBLE
      The native double type
    • LONGDOUBLE

      public static final Type LONGDOUBLE
      The native long double type
    • UINT8

      public static final Type UINT8
      The native unsigned 8 bit integer type
    • SINT8

      public static final Type SINT8
      The native signed 8 bit integer type
    • UINT16

      public static final Type UINT16
      The native unsigned 16 bit integer type
    • SINT16

      public static final Type SINT16
      The native signed 16 bit integer type
    • UINT32

      public static final Type UINT32
      The native unsigned 32 bit integer type
    • SINT32

      public static final Type SINT32
      The native signed 32 bit integer type
    • UINT64

      public static final Type UINT64
      The native unsigned 64 bit integer type
    • SINT64

      public static final Type SINT64
      The native signed 64 bit integer type
    • POINTER

      public static final Type POINTER
      The native memory address type
    • UCHAR

      public static final Type UCHAR
      The native unsigned char type
    • SCHAR

      public static final Type SCHAR
      The native signed char type
    • USHORT

      public static final Type USHORT
      The native unsigned short integer type
    • SSHORT

      public static final Type SSHORT
      The native signed short integer type
    • UINT

      public static final Type UINT
      The native unsigned integer type
    • SINT

      public static final Type SINT
      The native signed integer type
    • ULONG

      public static final Type ULONG
      The native unsigned long integer type
    • SLONG

      public static final Type SLONG
      The native signed long integer type
    • ULONG_LONG

      public static final Type ULONG_LONG
      The native unsigned long long integer type
    • SLONG_LONG

      public static final Type SLONG_LONG
      The native signed long long integer type
    • type

      private int type
    • size

      private int size
    • alignment

      private int alignment
    • handle

      private volatile long handle
  • Constructor Details

    • Type

      public Type()
  • Method Details

    • type

      public final int type()
      Gets the FFI type enum value for this Type
      Returns:
      An integer representing the FFI type.
    • handle

      final long handle()
      Gets the native address of the ffi_type struct for this Type
      Returns:
      The address of the ffi_type structure
    • size

      public final int size()
      Gets the size of this type.
      Returns:
      The size of this type, in bytes.
    • alignment

      public final int alignment()
      Gets the alignment of this type.
      Returns:
      The alignment of this type, in bytes.
    • resolveType

      private int resolveType()
    • resolveSize

      private int resolveSize()
    • resolveAlignment

      private int resolveAlignment()
    • resolveHandle

      private long resolveHandle()
    • getTypeInfo

      abstract Type.TypeInfo getTypeInfo()
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • nativeHandles

      static long[] nativeHandles(Type[] types)
      Converts an array of Type objects into an array of pointers to ffi_type structures.
      Parameters:
      types - An array of Type objects
      Returns:
      An array of native ffi_type handles.
    • nativeHandles

      static long[] nativeHandles(List<Type> types)
      Converts a list of Type objects into an array of pointers to ffi_type structures.
      Parameters:
      types - A list of Type objects
      Returns:
      An array of native ffi_type handles.
    • builtin

      private static Type builtin(NativeType nativeType)
      Creates a Type instance for builtin types.
      Parameters:
      nativeType - The builtin type enum.
      Returns:
      A Type instance.