Class FFIByteVector

  • All Implemented Interfaces:
    com.alibaba.fastffi.CXXPointer, com.alibaba.fastffi.FFIPointer, com.alibaba.fastffi.FFISettablePointer, FFIType, StdVector<Byte>, Serializable

    public class FFIByteVector
    extends FFIPointerImpl
    implements StdVector<Byte>
    This is a FFIWrapper for std::vector. The code origins from the generated code via FFI and llvm4jni, with hands-on optimization.
    See Also:
    Serialized Form
    • Field Detail

      • SIZE

        public static final int SIZE
      • objAddress

        public long objAddress
      • HASH_SHIFT

        public static final int HASH_SHIFT
      • size

        public long size
    • Constructor Detail

      • FFIByteVector

        public FFIByteVector​(long address)
    • Method Detail

      • touch

        public void touch()
        update the cached objAddress.
      • hashCode

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

        public static long nativeCapacity​(long var0)
      • nativeClear

        public static void nativeClear​(long var0)
      • nativeData

        public static long nativeData​(long var0)
      • delete

        public void delete()
        Specified by:
        delete in interface com.alibaba.fastffi.CXXPointer
      • nativeDelete

        public static void nativeDelete​(long var0)
      • getRaw

        public byte getRaw​(long arg0)
      • getRawChar

        public char getRawChar​(long arg0)
      • getRawShort

        public short getRawShort​(long arg0)
      • getRawInt

        public int getRawInt​(long arg0)
      • getRawFloat

        public float getRawFloat​(long arg0)
      • getRawDouble

        public double getRawDouble​(long arg0)
      • getRawLong

        public long getRawLong​(long arg0)
      • getRawBytes

        public void getRawBytes​(byte[] b,
                                int bOff,
                                long offset,
                                int size)
        Read several bytes to a byte array.
        Parameters:
        b - Receive data
        bOff - first place to put
        offset - offset in this buffer, from where we read now.
        size - how many to read
      • appendVector

        public void appendVector​(long readAbleLimit,
                                 FFIByteVector vector)
        This function copy another vector's memory after this vector. Shall be used in InputStream.

        Check whether there are enough spaces, and then copy [vector.data(), vector.data() + vector.size()] to [readableLimit, readableLimit + vector.size()].

        Parameters:
        readAbleLimit - The start pos of this copy action.
        vector - vector to be appended.
      • nativeGet

        public static @com.alibaba.fastffi.CXXReference byte nativeGet​(long var0,
                                                                       long var2)
      • nativePush_back

        public static void nativePush_back​(long var0,
                                           byte var2)
      • nativeReserve

        public static void nativeReserve​(long var0,
                                         long var2)
      • resize

        public void resize​(long arg0)
        Specified by:
        resize in interface StdVector<Byte>
      • resizeWithMoreSpace

        public void resizeWithMoreSpace​(long addSpace)
        Resize with additional space.
        Parameters:
        addSpace - more space need.
      • nativeResize

        public static void nativeResize​(long var0,
                                        long var2)
      • ensure

        public void ensure​(long offset,
                           int requiredSize)
        Ensure there at at least requiredSize after offset.
        Parameters:
        offset - offset to check
        requiredSize - additional spaced needed.
      • setRawByte

        public void setRawByte​(long arg0,
                               byte arg1)
      • setRawShort

        public void setRawShort​(long arg0,
                                short arg1)
      • setRawChar

        public void setRawChar​(long arg0,
                               char arg1)
      • setRawInt

        public void setRawInt​(long arg0,
                              int arg1)
      • setRawLong

        public void setRawLong​(long arg0,
                               long arg1)
      • setRawFloat

        public void setRawFloat​(long arg0,
                                float arg1)
      • setRawDouble

        public void setRawDouble​(long arg0,
                                 double arg1)
      • finishSetting

        public void finishSetting​(long offset)
      • nativeSet

        public static void nativeSet​(long var0,
                                     long var2,
                                     byte var4)
      • setAddress

        public void setAddress​(long arg0)
        Specified by:
        setAddress in interface com.alibaba.fastffi.FFISettablePointer
      • nativeSize

        public static long nativeSize​(long var0)
      • nativeCreateFactory0

        public static long nativeCreateFactory0()