Skip to content

How extension mechanism is supposed to work when dimension type is unknown? #147

Open
@OleksandrKvl

Description

@OleksandrKvl

Extension mechanism is based on required blockLength and optional numGroups and numVarDataFields. The latter two tell how many groups/var-data fields we have but they tell nothing about their dimension types so I don't understand how such extension can be handled. Consider the first version of the message:

<field name="field1" id="1" type="uint32"/>
<group name="group1" id="10" dimensionType="groupSizeEncoding">
    <field name="field1" id="11" type="uint32"/>
</group>

And the second version which adds another group:

<field name="field1" id="1" type="uint32"/>
<group name="group1" id="2" dimensionType="groupSizeEncoding">
    <field name="field1" id="3" type="uint32"/>
</group>
<!-- new group with different dimensionType -->
<group name="group2" id="4" dimensionType="groupSizeEncoding2">
    <field name="field1" id="5" type="uint32"/>
</group>

The reader of the new version will see numGroups set to 2 but that group has different dimension type and it's not possible to correctly handle it without its definition.
The same happens with var-data fields. New ones can have different type which means different length type so it's not possible to correctly handle them.

For groups I can imagine potential "fix" in form of saying that since group dimension is unknown it should be treated as default groupSizeEncoding so only groups with this dimensionType can be safely added to the message. But the standard says nothing about default type for var-data encoding. Can you please clarify how it's supposed to work?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions