All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.tv.service.transport.TransportStreamCollection Maven / Gradle / Ivy

/*
 * @(#)TransportStreamCollection.java	1.37 00/09/27
 *
 * 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.*;
import javax.tv.locator.*;


/**
 * This interface represents a collection of transport streams on a
 * Transport.  TransportStreamCollection may
 * be optionally implemented by Transport objects,
 * depending on the SI data carried on that transport.
 *
 * @see Optionally implemented interfaces
 */
public interface TransportStreamCollection extends Transport {
	
  /**
   * Retrieves the specified TransportStream from the
   * collection.
   *
   * @param locator Locator referencing the
   * TransportStream of interest.
   *
   * @param requestor The SIRequestor to be notified
   * when this retrieval operation completes.
   * 
   * @return An SIRequest object identifying this
   * asynchronous retrieval request.  
   *
   * @throws InvalidLocatorException If locator does not
   * reference a valid transport stream.
   *
   * @throws SecurityException If the caller does not have
   * javax.tv.service.ReadPermission(locator).
   *
   * @see TransportStream
   * @see javax.tv.service.ReadPermission
   */
  public abstract SIRequest retrieveTransportStream(Locator locator,
						    SIRequestor requestor)
      throws InvalidLocatorException, SecurityException;
  
  /**
   * Retrieves an array of the TransportStream objects in
   * this TransportStreamCollection.  The array will only
   * contain TransportStream instances ts
   * for which the caller has
   * javax.tv.service.ReadPermission(ts.getLocator()). If
   * no TransportStream instances meet this criteria,
   * this method will result in an SIRequestFailureType
   * of DATA_UNAVAILABLE.

* * This method delivers its results asynchronously. * * @param requestor The SIRequestor to be notified * when this retrieval operation completes. * * @return An SIRequest object identifying this * asynchronous retrieval request. * * @see TransportStream * @see javax.tv.service.ReadPermission **/ public abstract SIRequest retrieveTransportStreams(SIRequestor requestor); /** * Registers a TransportStreamChangeListener to be * notified of changes to a TransportStream that is * part of this TransportStreamCollection. Subsequent * notification is made via TransportStreamChangeEvent * with this TransportStreamCollection as the event * source and an SIChangeType of ADD, * REMOVE or MODIFY. Only changes to * TransportStream instances ts for which * the caller has * javax.tv.service.ReadPermission(ts.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.

* * If the specified TransportStreamChangeListener is * already registered, no action is performed. * * @param listener A TransportStreamChangeListener to be * notified about changes related to TransportStream * carried on this Transport. * * @see TransportStreamChangeEvent * @see javax.tv.service.ReadPermission **/ public abstract void addTransportStreamChangeListener (TransportStreamChangeListener listener); /** * Called to unregister an * TransportStreamChangeListener. If the specified * TransportStreamChangeListener is not registered, no * action is performed. * * @param listener A previously registered listener. */ public abstract void removeTransportStreamChangeListener(TransportStreamChangeListener listener); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy