Class MessageUncompressedDataReader


  • public class MessageUncompressedDataReader
    extends Object
    Read data for uncompressed messages. Within one message there are n obs (datasets) and s fields in each dataset. For uncompressed datasets, storage order is data(obs, fld) (fld varying fastest) : R11, R12, R13, . . . R1s R21, R22, R23, . . . R2s .... Rn1, Rn2, Rn3, . . . Rns where Rij is the jth value of the ith data subset. the datasets each occupy an identical number of bits, unless delayed replication is used, and are not necessarily aligned on octet boundaries. A replicated field (structure) takes a group of fields and replicates them: Ri1, (Ri2, Ri3)*r, . . . Ris where r is set in the data descriptor, and is the same for all datasets. A delayed replicated field (sequence) takes a group of fields and replicates them, and adds the number of replications in the data : Ri1, dri, (Ri2, Ri3)*dri, . . . Ris where the width (nbits) of dr is set in the data descriptor. This dr can be different for each dataset in the message. It can be 0. When it has a bit width of 1, it indicates an optional set of fields. -------------------------- We use an ArrayStructureBB to hold the data, and fill it sequentially as we scan the message. Fixed length nested Structures are kept in the ArrayStructureBB. Variable length objects (Strings, Sequences) are added to the heap.
    • Constructor Detail

      • MessageUncompressedDataReader

        public MessageUncompressedDataReader()
    • Method Detail

      • readData

        public int readData​(ArrayStructureBB abb,
                            Message m,
                            RandomAccessFile raf,
                            Range r,
                            boolean addTime,
                            Formatter f)
                     throws IOException
        Read some or all datasets from a single message
        Parameters:
        abb - place data into here in order (may be null)
        m - read this message
        raf - from this file
        r - which datasets, relative to this message. null == all.
        addTime - add the time coordinate
        f - output bit count debugging info (may be null)
        Returns:
        number of datasets read
        Throws:
        IOException - on read error