The server also notifies the component of any other events that are registered for notification and/or authorization by using the INSSEventNotification::GetHandledEvents method. The notification specifies the type of event requested and the results of the authorization, when applicable. You can choose to implement different responses to the notification in the INSSEventNotification::OnEvent method. For example, you can gather the viewing statistics of the client when the user connects to the server. Alternatively, you can tally the charge incurred by the viewer when the title is stopped.
Suppose that a user chooses to play a title, and that one component has been registered for event notification and authorization. The server asks the event notification and authorization component to check on the user. When the user is authorized to play the title, the server then opens the title for the user to play. If the authorization fails, the server does not open the requested title. In either case, the server calls the INSSEventNotification::OnEvent method to notify the component whether the event occurs (in this case, whether the title is being played). If authorization is not required, the server opens the title for the user, and then notifies the component that the title is being played.
When multiple components are registered and enabled, the server queries the components, one by one, to authorize the user. If all the components grant permission to the request, the server allows the event to take place, and then notifies each component that it has. If, however, any component denies the request, the server stops the query process at the first denial. The authorization fails, and the server does not enable the event. The server notifies all the consulted components through event notification that the event did not occur. However, the server does not notify any components that have not been consulted.
[Previous][Next]