Space activations
Each object space has an activation associated with it. This can be any immutable object, and defaults to nil.
When the activation of a marshaled representation of a space (the incoming activation) is different from that of the local representation of the space (the current activation), the SstDifferentSpaceActivationCallback fires. The callback can choose to ignore the difference (the default action if there is no callback), cause the message to fail by returning a marshalling error, or take some other action.
For example, suppose the local context has space initiator with activation of 2. An incoming message is received which has initiator's activation as 3. The difference will be detected and the SstDifferentSpaceActivationCallback callback will fire.
The space-activation example provided in the SstExamples application uses the following algorithm in the callback:
If the current activation is not nil, and is either of a different class or is less than the incoming activation, then a marshalling error will be returned.
Otherwise the current representation is invalidated (which will invalidate any remote objects associated with that space), and then install a new representation of the space with the newer incoming activation.
The SstDifferentSpaceActivationCallback callback is registered against the local space's callbacks and is documented in Space configurations.
Last modified date: 01/29/2015