net.sf.fmj.media.rtp
Class SimpleSocketInputStream

java.lang.Object
  extended by java.lang.Thread
      extended by com.lti.utils.synchronization.CloseableThread
          extended by net.sf.fmj.media.rtp.SimpleSocketInputStream
All Implemented Interfaces:
java.lang.Runnable, Controls, PushSourceStream, SourceStream

public class SimpleSocketInputStream
extends CloseableThread
implements PushSourceStream

A DatagramSocket Input Stream Adapter

Version:
1-1-alpha3 TODO: changes to this class by kenlars99 basically make it similar to SocketInputStream, which is not currently used. Perhaps it is better to put SimpleSocketInputStream back the way it was, move this code to SocketInputStream, and use SocketInputStream instead of SimpleSocketInputStream.
Author:
Andrew G D Rowley, Ken Larson

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class com.lti.utils.synchronization.CloseableThread
closing
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Fields inherited from interface javax.media.protocol.SourceStream
LENGTH_UNKNOWN
 
Constructor Summary
SimpleSocketInputStream(java.net.DatagramSocket socket)
          Creates a new SocketInputStream
 
Method Summary
 boolean endOfStream()
           
 ContentDescriptor getContentDescriptor()
           
 long getContentLength()
           
 java.lang.Object getControl(java.lang.String controlType)
           
 java.lang.Object[] getControls()
           
 int getMinimumTransferSize()
           
 void kill()
          Stops the socket
 void notifyTransferHandlerAsync()
           
 int read(byte[] buffer, int offset, int length)
          According to API: Read from the stream without blocking.
 void run()
           
 void setTransferHandler(SourceTransferHandler transferHandler)
           
 
Methods inherited from class com.lti.utils.synchronization.CloseableThread
close, isClosed, isClosing, setClosed, setClosing, waitUntilClosed
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimpleSocketInputStream

public SimpleSocketInputStream(java.net.DatagramSocket socket)
Creates a new SocketInputStream

Parameters:
socket - The socket to handle
Method Detail

read

public int read(byte[] buffer,
                int offset,
                int length)
         throws java.io.IOException
Description copied from interface: PushSourceStream
According to API: Read from the stream without blocking. Returns -1 when the end of the media is reached. This implies that it can return zero if there is no data available.

Specified by:
read in interface PushSourceStream
Throws:
java.io.IOException

getMinimumTransferSize

public int getMinimumTransferSize()
Specified by:
getMinimumTransferSize in interface PushSourceStream

setTransferHandler

public void setTransferHandler(SourceTransferHandler transferHandler)
Specified by:
setTransferHandler in interface PushSourceStream

notifyTransferHandlerAsync

public void notifyTransferHandlerAsync()
                                throws java.lang.InterruptedException
Throws:
java.lang.InterruptedException

getContentDescriptor

public ContentDescriptor getContentDescriptor()
Specified by:
getContentDescriptor in interface SourceStream

getContentLength

public long getContentLength()
Specified by:
getContentLength in interface SourceStream

endOfStream

public boolean endOfStream()
Specified by:
endOfStream in interface SourceStream

getControls

public java.lang.Object[] getControls()
Specified by:
getControls in interface Controls

getControl

public java.lang.Object getControl(java.lang.String controlType)
Specified by:
getControl in interface Controls

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

kill

public void kill()
Stops the socket