-
Notifications
You must be signed in to change notification settings - Fork 1
Description
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_groupsto 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.