Skip to content

Confirm Standard for Requiring Explicit Objects for Structure #37

@JamesWiresmith

Description

@JamesWiresmith

At an informal reading, even if no properties are written you can imagine that implicitly:

  • A file object exists in all files.
  • A group object exists if a channel object exists for it.

This assumption saves us from creating them on write but complicates the reads. For example listing all groups and reference an implicit group (not handled).

But from the description:

In order for all TDMS client applications to work properly, every TDMS file must contain a file object. A file object must contain a group object for each group name used in a channel path. In addition, a file object can contain an arbitrary number of group objects with no channels.

So does this mean logically or we need to write them to disk.

If we must always write it explicitly then:

  • Make sure we create an empty file object on file creation.
  • When we write channels we must check if they are new and if they are new we need to create their groups
  • We can then simplify list_groups to not require the BTreeSet and instead just return everything that is a group.

If we do not we must assume other clients would not write them and handle the case they are missing. This means:

  • Keeping the list_groups the same.
  • Considering whether we need to act as if a group or file exists in property reads even if it doesnt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions