Store map as repository for Swizzles and associated stream IDs

This document describes using a store map as a repository for Swizzles and associated stream IDs.

A store map is a table of entries where each entry consists of a Swizzle and a stream ID.

When the in-memory object represented by a Swizzle is externalised, the resulting stream ID and the associated Swizzle can be added to a store map. The effect is to create an entry in the store map table containing the stream ID and the associated Swizzle; the Swizzle is said to be bound to the stream ID. Creating this entry in the store map is done using CStoreMap::BindL().

For a container type class CCompound, the diagram below shows the result of:

  • streaming out the in-memory objects represented by the Swizzles iA, iB and iC.

  • binding the swizzles with the resulting stream IDs

The other characteristics of a store map follow from this.

Figure:

Entries in the store map can be deleted. An entry can be identified either by Swizzle or by stream ID. CStoreMap::Unbind() deletes an entry identified by Swizzle; CStoreMap::Forget() deletes an entry identified by stream ID.