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.