org.dvb.si
Class SIDatabase

java.lang.Object
  extended byorg.dvb.si.SIDatabase

public class SIDatabase
extends java.lang.Object

This class represents the root of the SI information hierarchy. There is one SIDatabase per network interface. In a system with a single network interface there is only one SIDatabase object.

When adding a listener to monitor for changes in an SI table (or data carried in an SI table), an event shall not be generated for the current version of that table (or data) found in the network at the time the listener is added. Events shall only be generated for changes following the detection of that current version.


Constructor Summary
protected SIDatabase()
          This constructor is provided for the use of implementations and specifications which extend the present document.
 
Method Summary
 void addBouquetMonitoringListener(SIMonitoringListener listener, int bouquetId)
          Initiate monitoring of the bouquet information.
 void addEventPresentFollowingMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId, int serviceId)
          Initiate monitoring of information in the EIT related to present and following events.
 void addEventScheduleMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId, int serviceId, java.util.Date startTime, java.util.Date endTime)
          Initiate monitoring of information in the EIT related to scheduled events.
 void addNetworkMonitoringListener(SIMonitoringListener listener, int networkId)
          Initiate monitoring of the network information.
 void addPMTServiceMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId, int serviceId)
          Initiate monitoring of information in the PMT related to a service.
 void addServiceMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId)
          Initiate monitoring of information in the SDT related to services.
static SIDatabase[] getSIDatabase()
          Return an array of SIDatabase objects (one object per network interface).
 void removeBouquetMonitoringListener(SIMonitoringListener listener, int bouquetId)
          Removes the registration of an event listener for bouquet information monitoring.
 void removeEventPresentFollowingMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId, int serviceId)
          Removes the registration of an event listener for monitoring information related to present and following events If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameters, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.
 void removeEventScheduleMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId, int serviceId)
          Removes the registration of an event listener for monitoring information related to scheduled events for all periods If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameters, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.
 void removeNetworkMonitoringListener(SIMonitoringListener listener, int networkId)
          Removes the registration of an event listener for network information monitoring.
 void removePMTServiceMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId, int serviceId)
          Removes the registration of an event listener for monitoring information in the PMT related to a service.
 void removeServiceMonitoringListener(SIMonitoringListener listener, int originalNetworkId, int transportStreamId)
          Removes the registration of an event listener for monitoring information related to services.
 SIRequest retrieveActualSINetwork(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, short[] someDescriptorTags)
          Retrieve information associated with the actual network.
 SIRequest retrieveActualSIServices(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, short[] someDescriptorTags)
          Retrieve information associated with the actual services.
 SIRequest retrieveActualSITransportStream(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, short[] someDescriptorTags)
          Retrieve information associated with the actual transport stream.
 SIRequest retrievePMTElementaryStreams(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, DvbLocator dvbLocator, short[] someDescriptorTags)
          Retrieve PMT elementary stream information associated with components of a service.
 SIRequest retrievePMTElementaryStreams(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, int serviceId, int componentTag, short[] someDescriptorTags)
          Retrieve PMT elementary stream information associated with components of a service from the actual transport stream of this SIDatabase object.
 SIRequest retrievePMTService(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, DvbLocator dvbLocator, short[] someDescriptorTags)
          Retrieve PMT information associated with a service.
 SIRequest retrievePMTServices(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, int serviceId, short[] someDescriptorTags)
          Retrieve PMT information associated with services from the actual transport stream of this SIDatabase object.
 SIRequest retrieveSIBouquets(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, int bouquetId, short[] someDescriptorTags)
          Retrieve information associated with bouquets.
 SIRequest retrieveSINetworks(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, int networkId, short[] someDescriptorTags)
          Retrieve information associated with networks.
 SIRequest retrieveSIService(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, DvbLocator dvbLocator, short[] someDescriptorTags)
          Retrieve information associated with a service.
 SIRequest retrieveSIServices(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, int originalNetworkId, int transportStreamId, int serviceId, short[] someDescriptorTags)
          Retrieve information associated with services.
 SIRequest retrieveSITimeFromTDT(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener)
          Retrieve information associated with time from the Time and Date Table (TDT) from the actual transport stream.
 SIRequest retrieveSITimeFromTOT(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, short[] someDescriptorTags)
          Retrieve information associated with time from the Time Offset Table (TOT) from the actual transport stream.
 SIRequest retrieveSITransportStreamDescription(short retrieveMode, java.lang.Object appData, SIRetrievalListener listener, short[] someDescriptorTags)
          Retrieve the SITransportStreamDescription object representing the information of the TSDT table in the actual transport stream of this SIDatabase object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SIDatabase

protected SIDatabase()
This constructor is provided for the use of implementations and specifications which extend the present document. Applications shall not define sub-classes of this class. Implementations are not required to behave correctly if any such application defined sub-classes are used.

Method Detail

getSIDatabase

public static SIDatabase[] getSIDatabase()
Return an array of SIDatabase objects (one object per network interface). In a system with one network interface, the length of this array will be one. The network interface of each SIDatabase is used as data source for all new data accessed by this SIDatabase or SIInformation instances obtained from it.

This is the first method to be called to access the DVB-SI API. The returned SIDatabase objects provide the access point to the DVB-SI information.

Returns:
An array of SIDatabase objects, one per network interface.

retrieveSIBouquets

public SIRequest retrieveSIBouquets(short retrieveMode,
                                    java.lang.Object appData,
                                    SIRetrievalListener listener,
                                    int bouquetId,
                                    short[] someDescriptorTags)
                             throws SIIllegalArgumentException
Retrieve information associated with bouquets. A bouquet can be specified by its identification. When bouquetId is set to -1, all bouquets signalled in the BAT of the currently received transport stream on that network interface are retrieved.

The SIIterator that is returned with the event when the request completes successfully will contain one or more objects that implement the SIBouquet interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent, SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
bouquetId - Identifier of the bouquet to be retrieved or -1 for all bouquets signalled on the currently received transport stream.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or the numeric identifiers are out of range
See Also:
SIRequest, SIRetrievalListener, SIBouquet, DescriptorTag

retrieveActualSINetwork

public SIRequest retrieveActualSINetwork(short retrieveMode,
                                         java.lang.Object appData,
                                         SIRetrievalListener listener,
                                         short[] someDescriptorTags)
                                  throws SIIllegalArgumentException
Retrieve information associated with the actual network. The actual network is the network carrying the transport stream currently selected by the network interface connected to this SIDatabase.

The SIIterator that is returned with the event when the request completes successfully will contain an object that implements the SINetwork interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent or SITableNotFoundEvent

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid
See Also:
SIRequest, SIRetrievalListener, SINetwork, DescriptorTag

retrieveSINetworks

public SIRequest retrieveSINetworks(short retrieveMode,
                                    java.lang.Object appData,
                                    SIRetrievalListener listener,
                                    int networkId,
                                    short[] someDescriptorTags)
                             throws SIIllegalArgumentException
Retrieve information associated with networks. A network can be specified by its identification. When networkId is set to -1, all networks signalled in NIT Actual and Other of the currently received TransportStream on that network interface shall be retrieved.

The SIIterator that is returned with the event when the request completes successfully will contain one or more objects that implement the SINetwork interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent, SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
networkId - Identification of the network to be retrieved or -1 for all networks currently signalled.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or the numeric identifiers are out of range
See Also:
SIRequest, SIRetrievalListener, SINetwork, DescriptorTag

retrieveActualSITransportStream

public SIRequest retrieveActualSITransportStream(short retrieveMode,
                                                 java.lang.Object appData,
                                                 SIRetrievalListener listener,
                                                 short[] someDescriptorTags)
                                          throws SIIllegalArgumentException
Retrieve information associated with the actual transport stream. The actual transport stream is the transport stream currently selected by the network interface connected to this SIDatabase.

The SIIterator that is returned with the event when the request completes successfully will contain an object that implements the SITransportStreamNIT interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid
See Also:
SIRequest, SIRetrievalListener, SITransportStream, DescriptorTag

retrieveActualSIServices

public SIRequest retrieveActualSIServices(short retrieveMode,
                                          java.lang.Object appData,
                                          SIRetrievalListener listener,
                                          short[] someDescriptorTags)
                                   throws SIIllegalArgumentException
Retrieve information associated with the actual services. The actual services are the services in the transport stream currently selected by the network interface connected to this SIDatabase.

The SIIterator that is returned with the event when the request completes successfully will contain one or more objects that implement the SIService interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent, SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid
See Also:
SIRequest, SIRetrievalListener, SIService, DescriptorTag

retrieveSIServices

public SIRequest retrieveSIServices(short retrieveMode,
                                    java.lang.Object appData,
                                    SIRetrievalListener listener,
                                    int originalNetworkId,
                                    int transportStreamId,
                                    int serviceId,
                                    short[] someDescriptorTags)
                             throws SIIllegalArgumentException
Retrieve information associated with services. The required services can be specified by their identification. When -1 is specified for transportStreamId then services shall be retrieved regardless of their transport stream id. When -1 is specified for serviceId then services shall be retrieved regardless of their service id.

The SIIterator that is returned with the event when the request completes successfully will contain one or more objects that implement the SIService interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent, SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
originalNetworkId - Identification of the services to be retrieved: original network identifier
transportStreamId - Identification of the services to be retrieved: transport stream identifier (-1 means return services regardless of their transport stream id)
serviceId - Identification of the services to be retrieved: service identifier (-1 means return services regardless of their service id)
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or the numeric identifiers are out of range
See Also:
SIRequest, SIRetrievalListener, SIService, DescriptorTag

retrieveSIService

public SIRequest retrieveSIService(short retrieveMode,
                                   java.lang.Object appData,
                                   SIRetrievalListener listener,
                                   DvbLocator dvbLocator,
                                   short[] someDescriptorTags)
                            throws SIIllegalArgumentException
Retrieve information associated with a service. The required service can be specified by its DVB locator.

The SIIterator that is returned with the event when the request completes successfully will contain an object that implements the SIService interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent SIObjectNotInTableEvent or SITableNotFoundEvent"

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
dvbLocator - DVB locator identifying the service.The locator may be more specific than identifying a service, but this method will only use the parts starting from the beginning up to the service id.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or the locator is invalid and does not identify a service
See Also:
SIRequest, SIRetrievalListener, SIService, DescriptorTag

retrievePMTServices

public SIRequest retrievePMTServices(short retrieveMode,
                                     java.lang.Object appData,
                                     SIRetrievalListener listener,
                                     int serviceId,
                                     short[] someDescriptorTags)
                              throws SIIllegalArgumentException
Retrieve PMT information associated with services from the actual transport stream of this SIDatabase object. The required services can be specified by their identification. When -1 is specified as serviceId then services shall be retrieved regardless of their service id.

The SIIterator that is returned with the event when the request completes successfully will contain one or more objects that implement the PMTService interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent, SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
serviceId - Identification of the services to be retrieved: service identifier (-1 means return services regardless of their service id)
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or the numeric identifiers are out of range
See Also:
SIRequest, SIRetrievalListener, SIService, DescriptorTag

retrievePMTService

public SIRequest retrievePMTService(short retrieveMode,
                                    java.lang.Object appData,
                                    SIRetrievalListener listener,
                                    DvbLocator dvbLocator,
                                    short[] someDescriptorTags)
                             throws SIIllegalArgumentException
Retrieve PMT information associated with a service. The required service can be specified by its DVB locator.

The SIIterator that is returned with the event when the request completes successfully will contain an object that implements the PMTService interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
dvbLocator - DVB Locator identifying the service. The locator may be more specific than identifying a service, but this method will only use the parts starting from the beginning up to the service id.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or the locator is invalid and does not identify a service
See Also:
SIRequest, SIRetrievalListener, SIService, DescriptorTag

retrievePMTElementaryStreams

public SIRequest retrievePMTElementaryStreams(short retrieveMode,
                                              java.lang.Object appData,
                                              SIRetrievalListener listener,
                                              int serviceId,
                                              int componentTag,
                                              short[] someDescriptorTags)
                                       throws SIIllegalArgumentException
Retrieve PMT elementary stream information associated with components of a service from the actual transport stream of this SIDatabase object. The elementary streams can be specified by their identification. When -1 is specified for componentTag then elementary streams shall be retrieved regardless of their component tag.

The SIIterator that is returned with the event when the request completes successfully will contain one or more objects that implement the PMTElementaryStream interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent, SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
serviceId - Identification of the elementary streams to be retrieved: service identifier
componentTag - Identification of the elementary streams to be retrieved: component tag (-1 means return elementary streams regardless of their component tag)
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or the numeric identifiers are out of range
See Also:
SIRequest, SIRetrievalListener, SIService, DescriptorTag

retrievePMTElementaryStreams

public SIRequest retrievePMTElementaryStreams(short retrieveMode,
                                              java.lang.Object appData,
                                              SIRetrievalListener listener,
                                              DvbLocator dvbLocator,
                                              short[] someDescriptorTags)
                                       throws SIIllegalArgumentException
Retrieve PMT elementary stream information associated with components of a service. The required component(s) can be specified by its DVB locator.

The SIIterator that is returned with the event when the request completes successfully will contain one or more objects that implement the PMTElementaryStream interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent, SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
dvbLocator - DVB Locator identifying the component(s) of a service. The locator may be more specific than identifying one or more service components, but this method will only use the parts starting from the beginning up to the component tags.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid or if the locator is invalid and does not identify one or more service components
See Also:
SIRequest, SIRetrievalListener, SIService, DescriptorTag

retrieveSITimeFromTDT

public SIRequest retrieveSITimeFromTDT(short retrieveMode,
                                       java.lang.Object appData,
                                       SIRetrievalListener listener)
                                throws SIIllegalArgumentException
Retrieve information associated with time from the Time and Date Table (TDT) from the actual transport stream.

The SIIterator that is returned with the event when the request completes successfully will contain an object that implements the SITime interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid
See Also:
SIRequest, SIRetrievalListener, SITime

retrieveSITimeFromTOT

public SIRequest retrieveSITimeFromTOT(short retrieveMode,
                                       java.lang.Object appData,
                                       SIRetrievalListener listener,
                                       short[] someDescriptorTags)
                                throws SIIllegalArgumentException
Retrieve information associated with time from the Time Offset Table (TOT) from the actual transport stream. The time information will be accompanied with offset information

The SIIterator that is returned with the event when the request completes successfully will contain an object that implements the SITime interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid
See Also:
SIRequest, SIRetrievalListener, SITime

retrieveSITransportStreamDescription

public SIRequest retrieveSITransportStreamDescription(short retrieveMode,
                                                      java.lang.Object appData,
                                                      SIRetrievalListener listener,
                                                      short[] someDescriptorTags)
                                               throws SIIllegalArgumentException
Retrieve the SITransportStreamDescription object representing the information of the TSDT table in the actual transport stream of this SIDatabase object.

The SIIterator that is returned with the event when the request completes successfully will contain an object that implements the SITransportStreamDescription interface. If no matching object was found, the appropriate one of the following events is sent: SINotInCacheEvent SIObjectNotInTableEvent or SITableNotFoundEvent.

Parameters:
retrieveMode - Mode of retrieval indicating whether the data should be retrieved only from the cache (FROM_CACHE_ONLY), from the cache if available and if not from the stream (FROM_CACHE_OR_STREAM), or always from the stream (FROM_STREAM_ONLY).
appData - An object supplied by the application. This object will be delivered to the listener when the request completes. The application can use this objects for internal communication purposes. If the application does not need any application data, the parameter can be null.
listener - SIRetrievalListener that will receive the event informing about the completion of the request.
someDescriptorTags - A list of hints for descriptors (identified by their tags) the application is interested in. If the array contains -1 as its one and only element, the application is interested in all descriptors. If someDescriptorTags is null, the application is not interested in descriptors. All values that are out of the valid range for descriptor tags (i.e. 0...255) are ignored, except for the special meaning of -1 as the only element in the array.
Returns:
An SIRequest object
Throws:
SIIllegalArgumentException - thrown if the retrieveMode is invalid
See Also:
SIRequest, SIRetrievalListener, SITransportStreamDescription, DescriptorTag

addNetworkMonitoringListener

public void addNetworkMonitoringListener(SIMonitoringListener listener,
                                         int networkId)
                                  throws SIIllegalArgumentException
Initiate monitoring of the network information. When the network information changes, an event will be delivered to the registered listener object.

How the monitoring is performed is implementation dependent and especially does not necessarily need to be continuous. The event will be delivered as soon as the implementation notices the change which might have some delay relative to when the change was actually made in the stream due to resources for the monitoring being scheduled between the monitoring activities of different tables. The present document does not set any minimum requirements for monitoring of the SI tables. This is to be done at a best effort basis by the implementation and is entirely implementation dependent. The only requirement is that when an implementation detects a change, e.g. because a resident Navigator or an MHP application has retrieved some SI information from the stream, then these listeners are notified of the change.

The monitoring stops silently and permanently when the network interface with which this SIDatabase object is associated starts tuning to another transport stream.

Parameters:
listener - listener object that will receive events when a change in the information is detected.
networkId - network identifier of the network whose information will be monitored.
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

removeNetworkMonitoringListener

public void removeNetworkMonitoringListener(SIMonitoringListener listener,
                                            int networkId)
                                     throws SIIllegalArgumentException
Removes the registration of an event listener for network information monitoring. If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameter, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.

Parameters:
listener - listener object that has previously been registered
networkId - network identifier of the network which is no longer to be monitored by the listener
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

addBouquetMonitoringListener

public void addBouquetMonitoringListener(SIMonitoringListener listener,
                                         int bouquetId)
                                  throws SIIllegalArgumentException
Initiate monitoring of the bouquet information. When the bouquet information changes, an event will be delivered to the registered listener object.

How the monitoring is performed is implementation dependent and especially does not necessarily need to be continuous. The event will be delivered as soon as the implementation notices the change which might have some delay relative to when the change was actually made in the stream due to resources for the monitoring being scheduled between the monitoring activities of different tables. The present document does not set any minimum requirements for monitoring of the SI tables. This is to be done at a best effort basis by the implementation and is entirely implementation dependent. The only requirement is that when an implementation detects a change, e.g. because a resident Navigator or an MHP application has retrieved some SI information from the stream, then these listeners are notified of the change.

The monitoring stops silently and permanently when the network interface with which this SIDatabase object is associated starts tuning to another transport stream.

Parameters:
listener - listener object that will receive events when a change in the information is detected.
bouquetId - bouquet identifier of the bouquet whose information will be monitored.
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

removeBouquetMonitoringListener

public void removeBouquetMonitoringListener(SIMonitoringListener listener,
                                            int bouquetId)
                                     throws SIIllegalArgumentException
Removes the registration of an event listener for bouquet information monitoring. If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameters, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.

Parameters:
listener - listener object that has previously been registered
bouquetId - bouquet identifier of the bouquet whose information has been requested to be monitored
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

addServiceMonitoringListener

public void addServiceMonitoringListener(SIMonitoringListener listener,
                                         int originalNetworkId,
                                         int transportStreamId)
                                  throws SIIllegalArgumentException
Initiate monitoring of information in the SDT related to services. When the information related to services changes, an event will be delivered to the registered listener object.

The scope of the monitoring is determined by the original network identifier and transport stream identifier. The listener will be notified about the change of the information in any service within that scope.

How the monitoring is performed is implementation dependent and especially does not necessarily need to be continuous. The event will be delivered as soon as the implementation notices the change which might have some delay relative to when the change was actually made in the stream due to resources for the monitoring being scheduled between the monitoring activities of different tables. The present document does not set any minimum requirements for monitoring of the SI tables. This is to be done at a best effort basis by the implementation and is entirely implementation dependent. The only requirement is that when an implementation detects a change, e.g. because a resident Navigator or an MHP application has retrieved some SI information from the stream, then these listeners are notified of the change.

The monitoring stops silently and permanently when the network interface with which this SIDatabase object is associated starts tuning to another transport stream.

Parameters:
listener - listener object that will receive events when a change in the information is detected.
originalNetworkId - original network identifier specifying the scope of the monitoring.
transportStreamId - transport stream identifier specifying the scope of the monitoring.
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

removeServiceMonitoringListener

public void removeServiceMonitoringListener(SIMonitoringListener listener,
                                            int originalNetworkId,
                                            int transportStreamId)
                                     throws SIIllegalArgumentException
Removes the registration of an event listener for monitoring information related to services. If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameters, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.

Parameters:
listener - listener object that has previously been registered
originalNetworkId - original network identifier specifying the scope of the monitoring.
transportStreamId - transport stream identifier specifying the scope of the monitoring.
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

addPMTServiceMonitoringListener

public void addPMTServiceMonitoringListener(SIMonitoringListener listener,
                                            int originalNetworkId,
                                            int transportStreamId,
                                            int serviceId)
                                     throws SIIllegalArgumentException
Initiate monitoring of information in the PMT related to a service. When the information related to a service changes, an event will be delivered to the registered listener object.

How the monitoring is performed is implementation dependent and especially does not necessarily need to be continuous. The event will be delivered as soon as the implementation notices the change which might have some delay relative to when the change was actually made in the stream due to resources for the monitoring being scheduled between the monitoring activities of different tables. Except as specified below, the present document does not set any minimum requirements for monitoring of the SI tables. This is to be done at a best effort basis by the implementation and is entirely implementation dependent. The only requirement is that when an implementation detects a change, e.g. because a resident Navigator or an MHP application has retrieved some SI information from the stream, then these listeners are notified of the change. When the referenced service is the currently selected service within a service context, the terminal shall monitor this PMT and report the changes to any registered listener(s).

The monitoring stops silently and permanently when the network interface with which this SIDatabase object is associated starts tuning to another transport stream.

Parameters:
listener - listener object that will receive events when a change in the information is detected.
originalNetworkId - original network identifier of the service
transportStreamId - transport stream identifier of the service
serviceId - service identifier specifying the service whose information will be monitored
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

removePMTServiceMonitoringListener

public void removePMTServiceMonitoringListener(SIMonitoringListener listener,
                                               int originalNetworkId,
                                               int transportStreamId,
                                               int serviceId)
                                        throws SIIllegalArgumentException
Removes the registration of an event listener for monitoring information in the PMT related to a service. If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameters, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.

Parameters:
listener - listener object that has previously been registered
originalNetworkId - original network identifier of the service
transportStreamId - transport stream identifier of the service
serviceId - service identifier specifying the service whose information has been requested to be monitored
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

addEventPresentFollowingMonitoringListener

public void addEventPresentFollowingMonitoringListener(SIMonitoringListener listener,
                                                       int originalNetworkId,
                                                       int transportStreamId,
                                                       int serviceId)
                                                throws SIIllegalArgumentException
Initiate monitoring of information in the EIT related to present and following events. When the information related to those events changes, an event will be delivered to the registered listener object.

The scope of the monitoring is determined by the original network identifier, transport stream identifier and service identifier. The listener will be notified about the change of the information in any present and following event within that scope.

How the monitoring is performed is implementation dependent and especially does not necessarily need to be continuous. The event will be delivered as soon as the implementation notices the change which might have some delay relative to when the change was actually made in the stream due to resources for the monitoring being scheduled between the monitoring activities of different tables. The present document does not set any minimum requirements for monitoring of the SI tables. This is to be done at a best effort basis by the implementation and is entirely implementation dependent. The only requirement is that when an implementation detects a change, e.g. because a resident Navigator or an MHP application has retrieved some SI information from the stream, then these listeners are notified of the change.

The monitoring stops silently and permanently when the network interface with which this SIDatabase object is associated starts tuning to another transport stream. When the referenced service is carried in the currently tuned transport stream, the terminal shall monitor this EITp/f actual and report the changes to any registered listener(s).

Parameters:
listener - listener object that will receive events when a change in the information is detected.
originalNetworkId - original network identifier specifying the scope of the monitoring.
transportStreamId - transport stream identifier specifying the scope of the monitoring.
serviceId - service identifier specifying the scope of the monitoring
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

removeEventPresentFollowingMonitoringListener

public void removeEventPresentFollowingMonitoringListener(SIMonitoringListener listener,
                                                          int originalNetworkId,
                                                          int transportStreamId,
                                                          int serviceId)
                                                   throws SIIllegalArgumentException
Removes the registration of an event listener for monitoring information related to present and following events If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameters, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.

Parameters:
listener - listener object that has previously been registered
originalNetworkId - original network identifier specifying the scope of the monitoring.
transportStreamId - transport stream identifier specifying the scope of the monitoring.
serviceId - service identifier specifying the scope of the monitoring
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent

addEventScheduleMonitoringListener

public void addEventScheduleMonitoringListener(SIMonitoringListener listener,
                                               int originalNetworkId,
                                               int transportStreamId,
                                               int serviceId,
                                               java.util.Date startTime,
                                               java.util.Date endTime)
                                        throws SIIllegalArgumentException,
                                               SIInvalidPeriodException
Initiate monitoring of information in the EIT related to scheduled events. When the information related to those events changes, an event will be delivered to the registered listener object.

The scope of the monitoring is determined by the original network identifier, transport stream identifier, service identifier, start time and end time of the schedule period. The listener will be notified about the change of the information in any scheduled event within that scope. The scope of the start time and end time shall be as specified for the parameters of the same name in SIService.retrieveScheduledSIEvents.

How the monitoring is performed is implementation dependent and especially does not necessarily need to be continuous. The event will be delivered as soon as the implementation notices the change which might have some delay relative to when the change was actually made in the stream due to resources for the monitoring being scheduled between the monitoring activities of different tables. The present document does not set any minimum requirements for monitoring of the SI tables. This is to be done at a best effort basis by the implementation and is entirely implementation dependent. The only requirement is that when an implementation detects a change, e.g. because a resident Navigator or an MHP application has retrieved some SI information from the stream, then these listeners are notified of the change.

The monitoring stops silently and permanently when the network interface with which this SIDatabase object is associated starts tuning to another transport stream.

Parameters:
listener - listener object that will receive events when a change in the information is detected.
originalNetworkId - original network identifier specifying the scope of the monitoring.
transportStreamId - transport stream identifier specifying the scope of the monitoring.
serviceId - service identifier specifying the scope of the monitoring
startTime - start time of the schedule period
endTime - end time of the schedule period
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
SIInvalidPeriodException - thrown if end time is before start time
See Also:
SIMonitoringListener, SIMonitoringEvent

removeEventScheduleMonitoringListener

public void removeEventScheduleMonitoringListener(SIMonitoringListener listener,
                                                  int originalNetworkId,
                                                  int transportStreamId,
                                                  int serviceId)
                                           throws SIIllegalArgumentException
Removes the registration of an event listener for monitoring information related to scheduled events for all periods If this method is called with a listener that is registered but not with the same identifiers of the SI objects as given in the parameters, the method shall fail silently and the listeners stays registered with those identifiers that it has been added.

Parameters:
listener - listener object that has previously been registered
originalNetworkId - original network identifier specifying the scope of the monitoring.
transportStreamId - transport stream identifier specifying the scope of the monitoring.
serviceId - service identifier specifying the scope of the monitoring
Throws:
SIIllegalArgumentException - thrown if the identifiers are invalid (e.g. out of range)
See Also:
SIMonitoringListener, SIMonitoringEvent