Anatomy of a MeshBase
MeshBases are the containers for MeshObjects. They have the following characteristics:
General
- Each MeshBase has a unique identifier, called the MeshBaseIdentifier.
- Any MeshBase provides methods to find contained MeshObjects by MeshObjectIdentifier and possibly by other criteria.
- Any MeshBase has a reference to the ModelBase that contains the Model governing the content of the MeshBase.
- Any MeshBase has an associated MeshObjectSetFactory object that knows how to construct MeshObjectSets appropriate for this MeshBase implementation.
- Any MeshBase has an associated MeshObjectIdentifierFactory object that knows how to construct instances of MeshObjectIdentifier appropriate for MeshObjects in this MeshBase.
HomeObject
- Each MeshBase contains at least one MeshObject, called the MeshBase's HomeObject.
- A MeshBase's HomeObject cannot be deleted; but it can participate in all other operations including blessing, relationships etc.
- The string form of the HomeObject's MeshObjectIdentifier is the same as the string form of the MeshBase's MeshBaseIdentifier.
Modifying the content of the MeshBase
- Life cycle operations on MeshObjects are performed by means of an associated object called the MeshBaseLifecycleManager. There is exactly one MeshBaseLifecycleManager per MeshBase.
- Read-only access to the content of a MeshBase does not require a Transaction. Listening to Events emitted by the MeshBase or a contained MeshObject does not require a Transaction either.
- Any modifying operation to one or more MeshObjects (e.g. Property update, relating, unrelating, blessing, unblessing, deleting etc.) in the MeshBase throws an exception unless it is performed within proper Transaction boundaries.
AccessManager
- A MeshBase may have an associated AccessManager. The same AccessManager may be shared by several MeshBases.
- The AccessManager encapsulates access control policies as they apply to the MeshObjects in the MeshBase.
Sweeper
- A MeshBase may have an associated Sweeper.
- The Sweeper's job is to periodically scan the content of the MeshBase and remove obsolete MeshObjects. For example, a Sweeper may remove all MeshObjects whose expiration time has passed. The Sweeper is in charge of its own policy.
See also:
![[Logo]](/trac/chrome/site/projectlogo.png)