Skip to content

Add a typed symbolic tag catalog and read_tag/write_tag API #837

Description

@gijzelaerr

Problem

The current symbolic API requires callers to supply raw access-area IDs, LID paths, SymbolCRC values and byte payloads. Browsing can discover symbols, but there is no stable public path from a symbol name to a typed read or write.

Other active implementations provide cached symbol resolution, typed values, batch access and automatic SymbolCRC recovery.

Scope

  • Introduce a public symbolic tag descriptor preserving name, access path, datatype, array metadata and SymbolCRC.
  • Build a catalog from the existing browse/type-info machinery.
  • Add resolve_tag, read_tag, write_tag, read_tags and write_tags.
  • Encode writes according to the resolved PValue datatype instead of always using raw BLOB semantics.
  • Detect SymbolCRC mismatch, invalidate the affected catalog and re-resolve once for safe read operations.
  • Preserve the existing low-level symbolic methods.

Acceptance criteria

  • A caller can read and write an optimized DB tag by name without manually handling LIDs.
  • Scalar and array metadata survive browsing and resolution.
  • Batched results retain per-item success/error information.
  • Writes are never automatically retried after an ambiguous transport failure.
  • Program-layout change tests demonstrate deterministic CRC invalidation and re-resolution.

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions