|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface SelectionProvider
A provider of service selection. For example, a SelectionProvider can be installed in an always-running service-unbound xlet to provide the ability to reach services that do not have standarized SI signalling in an IPTV network.
The process for determining which Provider (if any) shall be used to present a transport independent service is defined by the following steps in the order given.
1) Consult the service list. If the service appears in the service list then make an selection between the available sources of that Service as defined by ServiceContext.select(Service).
2) If there one Provider registered to support the locator scheme of the locator for the Service, ask that Provider to present that service. The service selection operation shall fail if the provider cannot present it.
3) If more than one Provider has registed as supporting the locator scheme of the locator for the Service, offer the Service to each Provider in turn until either one of them does not fail or no more Providers are available in which case the service selection operation shall fail.
NOTE: If the performance penalty of polling multiple Providers for the same locator scheme is undesirable, service providers / operators using multiple Providers should ensure they use different Locator schemes.
Providers should select the transport dependent locators returned such that there is no collision the transport dependent locators returned by other Providers that may offer the same transport independent service. Where a GEM terminal is managed by a service provider / operator, the service provider / operator should enforce this if they permit more than one Provider to be installed.
Where there is a collision and a transport dependent locator can be accessed by more than one Provider, the selection of which to use is implementation dependent.
A SelectionProvider may inform the implementation of the actual location of a service by two mechanisms.
Provider.getServiceProviderInterfaces()
Method Summary | |
---|---|
ServiceDescription[] |
getServiceDescriptions(ServiceReference[] services)
Called by the terminal to request service description information from an SI source. |
ServiceReference[] |
getServiceList()
Give a list of the services provided by this provider. |
LocatorScheme[] |
getSupportedLocatorSchemes()
Returns the list of locator schemes handled by this provider. |
void |
init(SelectionProviderContext c)
Called by the platform to register its handler for events originating in the provider. |
SelectionSession |
newSession(ServiceReference service)
Called by the platform to create a session to manage the presentation of a service. |
Methods inherited from interface org.dvb.spi.Provider |
---|
getName, getServiceProviderInterfaces, getVersion, providerRegistered, providerUnregistered |
Method Detail |
---|
void init(SelectionProviderContext c)
c
- the handlerServiceReference[] getServiceList()
The list of services returned shall include both those where the actual location is returned in the ServiceReference and those where the actual location is to be returned from a later call to the select method.
SelectionProviderContext.serviceListChanged(ServiceReference[])
SelectionSession newSession(ServiceReference service)
service
- the service whose presentation is managed through this session
LocatorScheme[] getSupportedLocatorSchemes()
ServiceDescription[] getServiceDescriptions(ServiceReference[] services)
services
- References
identifying the services whose descriptions are requested
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |