Class NativeObject

    • Field Detail

      • SIZE_LONG

        public static final int SIZE_LONG
      • SHIFT_LONG

        public static final int SHIFT_LONG
      • SIZE_PTR

        public static final int SIZE_PTR
      • DEBUG

        public static boolean DEBUG
        DEBUG flag
      • handle

        protected INativeHandle handle
        The handle to the memory chunk used by this object. While in fact this is final, Java language semantics does not allow to declare so!

        The handle should only be assigned in the constructor, via parameter or "allocate".

    • Constructor Detail

      • NativeObject

        protected NativeObject()
      • NativeObject

        protected NativeObject​(INativeHandle handle)
        Create a new NativeObject in C-Memory at pointer "handle". The bytes belonging to this object may already have been copied from C-Memory and made available in bytes at location offset.
        Parameters:
        handle - The pointer in C-memory
    • Method Detail

      • allocate

        protected void allocate()
        Manage the objects memory in Java. C memory will be valid at least as long as we hold a reference to the buffer. C memory is undefined (but not a memory leak) and may be reclaimed at any time after dropping our pointer to the buffer.
      • cast

        public INativeObject cast​(INativeType declaration)
        This is a special form of the "createNative" signature, implementing a "type cast" on the same memory location.
        Parameters:
        declaration - The new base declaration type.
        Returns:
        The INativeObject at the same memory location as this, but of a different type.
      • getByte

        public byte getByte​(int index)
        The byte at index as a native byte.
        Parameters:
        index - The index of the element to be reported.
        Returns:
        The element at index as a native byte.
      • getByteArray

        public byte[] getByteArray​(int index,
                                   int count)
        The element at index as an array of native byte with dimension count. This is a lightweight optimization.
        Parameters:
        index - The index of the element to be reported.
        Returns:
        The element at index as an array of native byte with dimension count.
      • getByteCount

        public abstract int getByteCount()
        The number of bytes occupied by this.
        Returns:
        The number of bytes occupied by this.
      • getBytes

        public byte[] getBytes()
        The bytes copied from C-memory that represent this.
        Specified by:
        getBytes in interface INativeObject
        Returns:
        The bytes copied from C-memory that represent this.
      • getCLong

        public long getCLong​(int index)
        The element at index as a native long. Only the "platform" number of bytes are read.
        Parameters:
        index - The index of the element to be reported.
        Returns:
        The element at index as a native long.
      • getInt

        public int getInt​(int index)
        The element at index as a native int.
        Parameters:
        index - The index of the element to be reported.
        Returns:
        The element at index as a native int.
      • getNativeHandle

        public INativeHandle getNativeHandle()
        The C-Pointer where the associated memory is found.
        Specified by:
        getNativeHandle in interface INativeObject
        Returns:
        The C-Pointer where the associated memory is found.
      • getNativeHandle

        public INativeHandle getNativeHandle​(int index)
      • getNativeType

        public abstract INativeType getNativeType()
        The meta information and behavior for the NativeObject.

        There is exactly one meta instance for all NativeObject instances of a certain type.

        Specified by:
        getNativeType in interface INativeObject
        Returns:
        The meta information and behavior for the NativeObject.
      • getShort

        public short getShort​(int index)
        The element at index as a native short. This is a lightweight optimization.
        Parameters:
        index - The index of the element to be reported.
        Returns:
        The element at index as a native short.
      • getString

        public java.lang.String getString​(int index)
      • getWideString

        public java.lang.String getWideString​(int index)
      • isNull

        public boolean isNull()
        Answer true if this is "null". This means the associated C-pointer is pointing to 0.
        Returns:
        Answer true if this is "null".
      • setByte

        public void setByte​(int index,
                            byte value)
      • setByteArray

        public void setByteArray​(int index,
                                 byte[] value,
                                 int valueOffset,
                                 int valueCount)
      • setCLong

        public void setCLong​(int index,
                             long value)
      • setInt

        public void setInt​(int index,
                           int value)
      • setNativeHandle

        public void setNativeHandle​(int index,
                                    INativeHandle value)
      • setShort

        public void setShort​(int index,
                             short value)
      • setString

        public void setString​(int index,
                              java.lang.String value)
      • setWideString

        public void setWideString​(int index,
                                  java.lang.String value)
      • toNestedString

        public java.lang.String toNestedString()
        A string for debugging purposes.
        Returns:
        A string for debugging purposes.