Package ucar.array

Class StructureDataStorageBB

  • All Implemented Interfaces:
    Iterable<StructureData>, Storage<StructureData>

    public final class StructureDataStorageBB
    extends Object
    implements Storage<StructureData>
    Storage for StructureDataArray with all data in a single ByteBuffer, using member's offsets and ByteOrder, and a heap for vlen data such as Strings, Vlens, and Sequences. The StructureData are manufactured on the fly, referencing the ByteBuffer and heap for data.
    • Method Detail

      • putOnHeap

        public int putOnHeap​(Object s)
        Put the object on the heap, return heap index.
      • arraycopy

        public void arraycopy​(int srcPos,
                              Object dest,
                              int destPos,
                              long length)
        Copies internal data to dest. The parameters are different from the normal case.
        Specified by:
        arraycopy in interface Storage<StructureData>
        Parameters:
        srcPos - the starting byte offset into dest.
        dest - must be a ByteBuffer
        destPos - the starting byte offset into dest.
        length - number of bytes to copy.
      • getStructureSize

        public int getStructureSize()
        Get the total size of one Structure in bytes.
      • setMemberDataNested

        public void setMemberDataNested​(int recordOffset,
                                        StructureMembers.Member member,
                                        Array<?> data)
        Copy Array data into ByteBuffer at recordOffset + member.getOffset().
      • setMemberData

        public void setMemberData​(int recordOffset,
                                  StructureMembers.Member member,
                                  Array<?> data)
        Copy Array data into ByteBuffer at recordOffset + member.getOffset().