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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions