3.5.5.2 Evaluate the License for Count and Expiration Criteria
The server MUST compare a MaxCount supplied by the caller and a count extracted from the aggregated license data. The server MUST perform processing, based on that comparison, as follows.
Check to see if the MaxCount policy is equal to IGNORE.
If so, then perform a sync. After the sync, no further processing is required.
Otherwise, check to see if the License Count is less than or equal to the MaxCount supplied by the caller.
If so, no sync is required. No further processing is required.
Otherwise, a sync is required. After the sync, no further processing is required.
The following diagram depicts the processing described in this section.
Figure 8: License play count validation
If both synchronization criteria are set to IGNORE then all KIDs for all licenses are returned, even for those KIDs that cannot expire. Otherwise the license is evaluated according to the following table.
License state |
Criteria for inclusion in synchronization list |
---|---|
WM_DRM_LICENSE_STATE_COUNT |
Count Test |
WM_DRM_LICENSE_STATE_UNTIL |
Hours Test on until-date |
WM_DRM_LICENSE_STATE_FROM_UNTIL |
Hours Test on from-date Hours Test on until-date |
WM_DRM_LICENSE_STATE_COUNT_FROM |
Hours Test on from-date Count Test |
WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL |
Hours Test on from-date Count Test Hours Test on until-date |
WM_DRM_LICENSE_STATE_COUNT_UNTIL |
Hours Test on until-date Count Test |
WM_DRM_LICENSE_STATE_EXPIRATION_AFTER_FIRSTUSE |
Count Test with 1 as MaxCount |
WM_DRM_LICENSE_STATE_NORIGHT |
Sync always |
WM_DRM_LICENSE_STATE_FROM |
Sync Never |
WM_DRM_LICENSE_STATE_UNLIM |
Sync Never |
The date is extracted from the aggregated license state data.
The threshold is expressed in hours.
The server MUST perform processing as follows:
Check to see if the MaxHours policy is set to IGNORE.
If so, a sync is required. After the sync, no further processing is required.
Otherwise:
Set the threshold time to the current time (Now) plus MaxHours.
Check if the license date is less than or equal to the threshold time.
If so, a sync is required. After the sync, no further processing is required.
Otherwise, no further processing is required.
The following diagram depicts the processing described in this section.
Figure 9: Evaluating the expiration characteristics of a license