javax.media.protocol
Interface PushBufferStream


public interface PushBufferStream
extends SourceStream

Abstracts a read interface that pushes data in the form of Buffer objects This interface allows a source stream to transfer data in the form of an entire media chunk to the user of this source stream. The media object or chunk transferred is the Buffer object as defined in javax.media.Buffer. The user of the stream will allocate an empty Buffer object and pass this over to the source stream in the read() method. The source stream will allocate the Buffer object's data and header, set them on the Buffer and send them over to the user.

The structure of the data and header of the Buffer object is determined by the format attribute of the Buffer object or the content type of the source stream

It is possible for the user of the stream to indicate to the source stream to NOT allocate the data object, but to instead use the data passed in the read() method. In this case, the user must pass non null data object to the stream in the Buffer object. The type of data can be determined by the getDataType() method on the format object returned by calling getFormat() on this bufferstream. The getDataType method will return an object describing the Buffer's data and can be used by the stream user to allocate its own data and hand it over to the read method.

Since:
JMF 2.0
See Also:
Format, PushBufferDataSource

Fields inherited from interface javax.media.protocol.SourceStream
LENGTH_UNKNOWN
 
Method Summary
 Format getFormat()
          Get the format tupe of the data that this source stream provides.
 void read(Buffer buffer)
          Read from the stream without blocking.
 void setTransferHandler(BufferTransferHandler transferHandler)
          Register an object to service data transfers to this stream.
 
Methods inherited from interface javax.media.protocol.SourceStream
endOfStream, getContentDescriptor, getContentLength
 
Methods inherited from interface javax.media.Controls
getControl, getControls
 

Method Detail

getFormat

public Format getFormat()
Get the format tupe of the data that this source stream provides.
Returns:
A Format object that describes the data in this stream.

read

public void read(Buffer buffer)
          throws java.io.IOException
Read from the stream without blocking.
Throws:
java.io.IOException - Thrown if an error occurs while reading

setTransferHandler

public void setTransferHandler(BufferTransferHandler transferHandler)
Register an object to service data transfers to this stream.

If a handler is already registered when setTransferHandler is called, the handler is replaced; there can only be one handler at a time. This method should be invoked with a parameter value of null if the currently registered handler doesn't wish to be notified of available data anymore.

Parameters:
transferHandler - The handler to transfer data to.


Submit a bug or feature
Copyright 1999-2001 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved. See the Specification License for more details.
Sun, Sun Microsystems, and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.