Package ucar.nc2.iosp

Class LayoutSegmented

java.lang.Object
ucar.nc2.iosp.LayoutSegmented
All Implemented Interfaces:
Layout

public class LayoutSegmented extends Object implements Layout
LayoutSegmented has data stored in segments. Assume that each segment size is a multiple of elemSize.
Since:
Dec 31, 2007
  • Constructor Details

    • LayoutSegmented

      public LayoutSegmented(long[] segPos, int[] segSize, int elemSize, int[] srcShape, Section wantSection) throws InvalidRangeException
      Constructor.
      Parameters:
      segPos - starting address of each segment.
      segSize - number of bytes in each segment. Assume multiple of elemSize
      elemSize - size of an element in bytes.
      srcShape - shape of the entire data array.
      wantSection - the wanted section of data
      Throws:
      InvalidRangeException - if ranges are misformed
  • Method Details

    • getTotalNelems

      public long getTotalNelems()
      Description copied from interface: Layout
      Get total number of elements in the wanted subset.
      Specified by:
      getTotalNelems in interface Layout
      Returns:
      total number of elements in the wanted subset.
    • getElemSize

      public int getElemSize()
      Description copied from interface: Layout
      Get size of each element in bytes.
      Specified by:
      getElemSize in interface Layout
      Returns:
      size of each element in bytes.
    • hasNext

      public boolean hasNext()
      Description copied from interface: Layout
      Is there more to do
      Specified by:
      hasNext in interface Layout
      Returns:
      true if theres more to do
    • next

      public Layout.Chunk next()
      Description copied from interface: Layout
      Get the next chunk
      Specified by:
      next in interface Layout
      Returns:
      next chunk, or null if !hasNext()
    • nextOuter

      public Layout.Chunk nextOuter()