Routes the streaming parse's per-record events (M2) to consumers that subscribe by type set. A subscription's type set is the subtype closure of the entity constructors it names — the same query closure the type index and expressIDsOfTypes use (conway #383) — so on([IfcRoot], …) matches every product, relationship, property set and quantity, and any future IfcRoot subtype, with no whitelist to maintain.

Feed dispatcher.onRecordIndexed to buildIndexStreaming / parseDataBlockStreamed. Handlers run synchronously in the parse path, so they must be cheap (copy ids into a compact structure); anything expensive belongs on a demand queue, not here.

Because subscriptions match on the raw parse typeID, external-mapping / complex records (typeID 0) are only delivered via onAnyRecord — resolving their concrete type is the incremental-type-index consumer's job (it reads multiMapping), a follow-on. For the overwhelming majority of records (simple, one type each) type-set delivery is exact.

Type Parameters

  • TypeIDType extends number

Constructors

Properties

Methods

Constructors

Properties

onRecordIndexed: RecordHandler<TypeIDType> = ...

The per-record callback to hand to the streaming parse. Dispatches each record to the matching subscribers. Bound so it can be passed directly.

The record's dense local ID.

The record's express ID.

The record's type ID (0 for external-mapping records).

Methods

  • Subscribe to every record regardless of type (the firehose — including external-mapping records).

    Parameters

    Returns void