Class Type

  • Direct Known Subclasses:
    Aggregate, Type.Builtin

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

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  Type.Builtin
      Types that are built-in to libffi.
      (package private) static class  Type.TypeInfo
      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 alignment  
      static Type DOUBLE
      The native double type
      static Type FLOAT
      The native float type
      private long handle  
      static Type LONGDOUBLE
      The native long double type
      static Type POINTER
      The native memory address type
      static Type SCHAR
      The native signed char type
      static Type SINT
      The native signed integer type
      static Type SINT16
      The native signed 16 bit integer type
      static Type SINT32
      The native signed 32 bit integer type
      static Type SINT64
      The native signed 64 bit integer type
      static Type SINT8
      The native signed 8 bit integer type
      private int size  
      static Type SLONG
      The native signed long integer type
      static Type SLONG_LONG
      The native signed long long integer type
      static Type SSHORT
      The native signed short integer type
      private int type  
      static Type UCHAR
      The native unsigned char type
      static Type UINT
      The native unsigned integer type
      static Type UINT16
      The native unsigned 16 bit integer type
      static Type UINT32
      The native unsigned 32 bit integer type
      static Type UINT64
      The native unsigned 64 bit integer type
      static Type UINT8
      The native unsigned 8 bit integer type
      static Type ULONG
      The native unsigned long integer type
      static Type ULONG_LONG
      The native unsigned long long integer type
      static Type USHORT
      The native unsigned short integer type
      static Type VOID
      The native void type
    • Constructor Summary

      Constructors 
      Constructor Description
      Type()  
    • Field Detail

      • 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 Detail

      • Type

        public Type()
    • Method Detail

      • 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()
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.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​(java.util.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.