Class HeapInvocationBuffer


  • public final class HeapInvocationBuffer
    extends InvocationBuffer
    An implementation of InvocationBuffer that packs its parameters onto a java heap allocated buffer.
    • Field Detail

      • buffer

        private final byte[] buffer
      • paramOffset

        private int paramOffset
      • paramIndex

        private int paramIndex
    • Constructor Detail

      • HeapInvocationBuffer

        public HeapInvocationBuffer​(Function function)
        Creates a new instance of HeapInvocationBuffer.
        Parameters:
        function - The function that this buffer is going to be used with.
      • HeapInvocationBuffer

        public HeapInvocationBuffer​(CallContext callContext)
        Creates a new instance of HeapInvocationBuffer.
        Parameters:
        callContext - The CallContext describing how the function should be invoked
      • HeapInvocationBuffer

        public HeapInvocationBuffer​(CallContext context,
                                    int objectCount)
        Creates a new instance of HeapInvocationBuffer.
        Parameters:
        context - The CallContext describing how the function should be invoked
    • Method Detail

      • array

        byte[] array()
        Gets the backing array of this InvocationBuffer
        Returns:
        The backing array for this buffer.
      • objectBuffer

        ObjectBuffer objectBuffer()
        Gets the object buffer used to store java heap array parameters
        Returns:
        An ObjectBuffer
      • putByte

        public final void putByte​(int value)
        Description copied from class: InvocationBuffer
        Adds an 8 bit integer parameter.
        Specified by:
        putByte in class InvocationBuffer
        Parameters:
        value - An 8 bit integer value to use as the parameter.
      • putShort

        public final void putShort​(int value)
        Description copied from class: InvocationBuffer
        Adds a 16 bit integer parameter.
        Specified by:
        putShort in class InvocationBuffer
        Parameters:
        value - A 16 bit integer value to use as the parameter.
      • putInt

        public final void putInt​(int value)
        Description copied from class: InvocationBuffer
        Adds a 32 bit integer parameter.
        Specified by:
        putInt in class InvocationBuffer
        Parameters:
        value - A 32 bit integer value to use as the parameter.
      • putLong

        public final void putLong​(long value)
        Description copied from class: InvocationBuffer
        Adds a 64 bit integer parameter.
        Specified by:
        putLong in class InvocationBuffer
        Parameters:
        value - A 64 bit integer value to use as the parameter.
      • putFloat

        public final void putFloat​(float value)
        Description copied from class: InvocationBuffer
        Adds a 32 bit floating point parameter.
        Specified by:
        putFloat in class InvocationBuffer
        Parameters:
        value - A 32 bit floating point value to use as the parameter.
      • putDouble

        public final void putDouble​(double value)
        Description copied from class: InvocationBuffer
        Adds a 64 bit floating point parameter.
        Specified by:
        putDouble in class InvocationBuffer
        Parameters:
        value - A 64 bit floating point value to use as the parameter.
      • putLongDouble

        public final void putLongDouble​(double value)
      • putLongDouble

        public final void putLongDouble​(java.math.BigDecimal value)
      • putAddress

        public final void putAddress​(long value)
        Description copied from class: InvocationBuffer
        Adds a native address parameter.
        Specified by:
        putAddress in class InvocationBuffer
        Parameters:
        value - A native address value to use as the parameter.
      • getObjectBuffer

        private final ObjectBuffer getObjectBuffer()
      • putArray

        public final void putArray​(byte[] array,
                                   int offset,
                                   int length,
                                   int flags)
        Description copied from class: InvocationBuffer
        Adds a java byte array as a pointer parameter.
        Specified by:
        putArray in class InvocationBuffer
        Parameters:
        array - The java array to use as the pointer parameter.
        offset - The offset from the start of the array.
        length - The length of the array to use.
        flags - The flags to use (IN, OUT)
      • putArray

        public final void putArray​(short[] array,
                                   int offset,
                                   int length,
                                   int flags)
        Description copied from class: InvocationBuffer
        Adds a java short array as a pointer parameter.
        Specified by:
        putArray in class InvocationBuffer
        Parameters:
        array - The java array to use as the pointer parameter.
        offset - The offset from the start of the array.
        length - The length of the array to use.
        flags - The flags to use (IN, OUT)
      • putArray

        public final void putArray​(int[] array,
                                   int offset,
                                   int length,
                                   int flags)
        Description copied from class: InvocationBuffer
        Adds a java int array as a pointer parameter.
        Specified by:
        putArray in class InvocationBuffer
        Parameters:
        array - The java array to use as the pointer parameter.
        offset - The offset from the start of the array.
        length - The length of the array to use.
        flags - The flags to use (IN, OUT)
      • putArray

        public final void putArray​(long[] array,
                                   int offset,
                                   int length,
                                   int flags)
        Description copied from class: InvocationBuffer
        Adds a java long array as a pointer parameter.
        Specified by:
        putArray in class InvocationBuffer
        Parameters:
        array - The java array to use as the pointer parameter.
        offset - The offset from the start of the array.
        length - The length of the array to use.
        flags - The flags to use (IN, OUT)
      • putArray

        public final void putArray​(float[] array,
                                   int offset,
                                   int length,
                                   int flags)
        Description copied from class: InvocationBuffer
        Adds a java float array as a pointer parameter.
        Specified by:
        putArray in class InvocationBuffer
        Parameters:
        array - The java array to use as the pointer parameter.
        offset - The offset from the start of the array.
        length - The length of the array to use.
        flags - The flags to use (IN, OUT)
      • putArray

        public final void putArray​(double[] array,
                                   int offset,
                                   int length,
                                   int flags)
        Description copied from class: InvocationBuffer
        Adds a java double array as a pointer parameter.
        Specified by:
        putArray in class InvocationBuffer
        Parameters:
        array - The java array to use as the pointer parameter.
        offset - The offset from the start of the array.
        length - The length of the array to use.
        flags - The flags to use (IN, OUT)
      • putDirectBuffer

        public final void putDirectBuffer​(java.nio.Buffer value,
                                          int offset,
                                          int length)
        Description copied from class: InvocationBuffer
        Adds a java direct buffer as a pointer parameter.
        Specified by:
        putDirectBuffer in class InvocationBuffer
        Parameters:
        value - The buffer to use as a pointer argument.
        offset - An offset to add to the buffer native address.
        length - The length of the buffer to use.
      • putStruct

        public final void putStruct​(byte[] struct,
                                    int offset)
        Description copied from class: InvocationBuffer
        Adds a struct or union as a parameter. This passes the struct or union by value, not by reference.
        Specified by:
        putStruct in class InvocationBuffer
        Parameters:
        struct - A java byte array with the struct contents.
        offset - The offset from the start of the array.
      • putStruct

        public final void putStruct​(long struct)
        Description copied from class: InvocationBuffer
        Adds a struct or union as a parameter. This passes the struct or union by value, not by reference.
        Specified by:
        putStruct in class InvocationBuffer
        Parameters:
        struct - The native address to use as the struct contents.
      • putJNIEnvironment

        public final void putJNIEnvironment()
      • putJNIObject

        public final void putJNIObject​(java.lang.Object obj)