The content controller maintains a state for each model
object. A model object can be in one of three states:
locked The
object content is loaded and in use.
loaded The
object content is loaded, but not locked. It is considered as cached
and will be unloaded when the cache is full.
unloaded The
object content is not loaded.
The state changes after events, such as a user request,
a zoom or a pan change (in fact visible area changes), have taken
place. The controller then sends a notification to explicitly load
or unload a set of objects.
Usually, the lifecycle of an object content is: unloaded, then locked,
then loaded, then potentially
back to unloaded.
The cache is virtual. The object content is held in the
SDM model. When the state changes to loaded,
this simply means that the content remains in the model. As a matter
of fact, the SDM model implements the cache for the object content,
and the controller manages this cache.
The controller contains the states of the objects as
well as a handler that processes the load and unload commands.