
javax.tv.service.transport.Transport Maven / Gradle / Ivy
/*
* @(#)Transport.java 1.37 00/09/22
*
* Copyright 1998-2000 by Sun Microsystems, Inc.,
* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
* All rights reserved.
*
* This software is the confidential and proprietary information
* of Sun Microsystems, Inc. ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with Sun.
*/
package javax.tv.service.transport;
import javax.tv.service.navigation.DeliverySystemType;
/**
* This interface represents an individual content delivery mechanism.
* A Transport
serves as an access point for acquiring
* information about services and their groupings.
*
* A Transport
may expose various types of
* entities (e.g. bouquets, networks and/or transport streams) by
* optionally implementing additional interfaces
* (i.e. BouquetCollection
,
* NetworkCollection
, and/or
* TransportStreamCollection
), depending on the particular
* SI format used and the presence of optional elements and tables in
* the SI data being broadcast.
*
* @see BouquetCollection
* @see NetworkCollection
* @see TransportStreamCollection
*
* @see Optionally implemented interfaces
*/
public interface Transport {
/**
* Registers a ServiceDetailsChangeListener
to be
* notified of changes to ServiceDetails
that are
* carried on this Transport
. Subsequent notification
* is made via ServiceDetailsChangeEvent
with this
* Transport
instance as the event source and an
* SIChangeType
of ADD
,
* REMOVE
or MODIFY
. Only changes to
* ServiceDetails
sd
for which the caller
* has javax.tv.service.ReadPermission(sd.getLocator())
* will be reported.
*
* This method is only a request for notification. No guarantee is
* provided that the SI database will detect all, or even any, SI
* changes or whether such changes will be detected in a timely
* fashion. Applications may indicate ServiceDetails
* of particular interest via the method {@link
* javax.tv.service.SIManager#registerInterest}.
*
* If the specified ServiceDetailsChangeListener
is
* already registered, no action is performed.
*
* @param listener An ServiceDetailsChangeListener
to be
* notified about changes related to ServiceDetails
* carried on this Transport
.
*
* @see ServiceDetailsChangeEvent
* @see javax.tv.service.SIManager#registerInterest
* @see javax.tv.service.ReadPermission
*/
public void addServiceDetailsChangeListener(ServiceDetailsChangeListener
listener);
/**
* Called to unregister an
* ServiceDetailsChangeListener
. If the specified
* ServiceDetailsChangeListener
is not registered, no
* action is performed.
*
* @param listener A previously registered listener. */
public void removeServiceDetailsChangeListener(ServiceDetailsChangeListener listener);
/**
* Reports the type of mechanism by which this
* Transport
delivers content.
*
* @return The delivery system type of this transport.
*/
public DeliverySystemType getDeliverySystemType();
}