public class MessageUncompressedDataReader
extends java.lang.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.