Skip to content
  • Gregory Tucker's avatar
    [Refactor] replace da00 with new schema · 7e106a6e
    Gregory Tucker authored
    - The draft `da00` has been replaced in streaming-data-types to simplify
      the number of in-schema tables (two `Attribute` and `Variable` have
      been merged) and remove redundant information (the `da00_DataArray`
      fields `variables` and `constants` are now lists of tables instead
      of holding `dataset` entry _names_ as strings).
    - More information is _required_ at configure-time (provided via the
      NeXus Structure JSON), eliminating some logic and cases in the writer
      module. This is to support 'Single Writer Multiple Reader' (SWMR)
      access to the file during writing.
      - Specifically, it is neccessary to know the `data_type`, `shape`
        of a dataset (including if it holds time-dependent data) to create
        its storage space in the HDF file. Additionally, it will be
        necessary to know which attributes _will_ be filled in at
        configure-time but this is not fully implemented yet.
      - This eliminates the possibility of 'automatic' JSON configuration,
        where all buffered `Variable` datasets would be recorded.
      - Also elimitated is waiting to identify the data type and extent of
        datasets. It could be possible to support delayed extent
        determination, but only if the number of dimensions is known at
        configuration-time; this may lead to larger files however since all
        dimensions _must_ be allowed to grow infinitely.
    - A new `NeXusDataset` subclass of `MultiDimDatasetBase`,
      `GrowthDataset`, is added to handle the case where all but the
       'message/time' axis extents are known at configuration time.
    7e106a6e