Dynamic Behavior

This topic describes the dynamic behavior of the domain manager for state transitions.

This topic describes the dynamic behavior of the domain manager for state transitions.

Internally, the power state of a domain is a property that the domain manager manages through the publish & subscribe mechanism. Applications associated with a domain subscribe to this property, in effect listening for any changes that may be made; the domain manager publishes changes to the property.

Applications don't use the publish & subscribe APIs directly; instead they call RDmDomain::RequestTransitionNotification() to request notification of changes to the domain's power state; this is, in effect, a request to subscribe to the property.

When the domain manager publishes a change to the domain's power state, applications are notified of the new value through completion of the notification request, and can then get the new value by calling RDmDomain::GetPowerState().

Internally, a domain's power state property is identified by the KUidDmPropertyCategory UID, and a key which is the value of the domain Id.

The property value itself is an integer made up of an [update number, domain state] pair where domain state is one of the three values: EPwActive, EPwStandby, EPwOff, and the update number is a 16-bit value that is incremented by 1 each time the property is changed by the domain manager.

Once this property, i.e. the domain's power state, has changed, the domain manager expects all registered applications to make appropriate changes to their internal state, and then to acknowledge the change by calling RDmDomain::AcknowledgeLastState(). The domain manager imposes a time limit on each domain, and expects all applications within a domain to acknowledge the change within that period. The time value itself is part of a domain definition, and may vary between domains. Once the time limit has been reached, the domain manager considers the power state transition to be complete, whether or not all expected acknowledgements have been received. Any acknowledgement received after the time limit are ignored.