org.mortbay.io.bio
Class StreamEndPoint

java.lang.Object
  extended by org.mortbay.io.bio.StreamEndPoint
All Implemented Interfaces:
EndPoint
Direct Known Subclasses:
SocketEndPoint, StringEndPoint

public class StreamEndPoint
extends Object
implements EndPoint

Author:
gregw To change the template for this generated type comment go to Window - Preferences - Java - Code Generation - Code and Comments

Constructor Summary
StreamEndPoint(InputStream in, OutputStream out)
           
 
Method Summary
 boolean blockReadable(long millisecs)
           
 boolean blockWritable(long millisecs)
           
 void close()
          Close any backing stream associated with the buffer
 int fill(Buffer buffer)
          Fill the buffer from the current putIndex to it's capacity from whatever byte source is backing the buffer.
 void flush()
          Flush any buffered output.
 int flush(Buffer buffer)
          Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer.
 int flush(Buffer header, Buffer buffer, Buffer trailer)
          Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer.
 InputStream getInputStream()
           
 String getLocalAddr()
           
 String getLocalHost()
           
 int getLocalPort()
           
 OutputStream getOutputStream()
           
 String getRemoteAddr()
           
 String getRemoteHost()
           
 int getRemotePort()
           
 Object getTransport()
           
 boolean isBlocking()
           
 boolean isBufferingInput()
           
 boolean isBufferingOutput()
           
 boolean isBufferred()
           
 boolean isOpen()
           
 void setInputStream(InputStream in)
           
 void setOutputStream(OutputStream out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StreamEndPoint

public StreamEndPoint(InputStream in,
                      OutputStream out)
Method Detail

isBlocking

public boolean isBlocking()
Specified by:
isBlocking in interface EndPoint

blockReadable

public boolean blockReadable(long millisecs)
                      throws IOException
Specified by:
blockReadable in interface EndPoint
Throws:
IOException

blockWritable

public boolean blockWritable(long millisecs)
                      throws IOException
Specified by:
blockWritable in interface EndPoint
Throws:
IOException

isOpen

public boolean isOpen()
Specified by:
isOpen in interface EndPoint

close

public void close()
           throws IOException
Description copied from interface: EndPoint
Close any backing stream associated with the buffer

Specified by:
close in interface EndPoint
Throws:
IOException

fill

public int fill(Buffer buffer)
         throws IOException
Description copied from interface: EndPoint
Fill the buffer from the current putIndex to it's capacity from whatever byte source is backing the buffer. The putIndex is increased if bytes filled. The buffer may chose to do a compact before filling.

Specified by:
fill in interface EndPoint
Returns:
an int value indicating the number of bytes filled or -1 if EOF is reached.
Throws:
IOException

flush

public int flush(Buffer buffer)
          throws IOException
Description copied from interface: EndPoint
Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer. The getIndex is updated with the number of bytes flushed. Any mark set is cleared. If the entire contents of the buffer are flushed, then an implicit empty() is done.

Specified by:
flush in interface EndPoint
Parameters:
buffer - The buffer to flush. This buffers getIndex is updated.
Returns:
the number of bytes written
Throws:
IOException

flush

public int flush(Buffer header,
                 Buffer buffer,
                 Buffer trailer)
          throws IOException
Description copied from interface: EndPoint
Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer. The getIndex is updated with the number of bytes flushed. Any mark set is cleared. If the entire contents of the buffer are flushed, then an implicit empty() is done. The passed header/trailer buffers are written before/after the contents of this buffer. This may be done either as gather writes, as a poke into this buffer or as several writes. The implementation is free to select the optimal mechanism.

Specified by:
flush in interface EndPoint
Parameters:
header - A buffer to write before flushing this buffer. This buffers getIndex is updated.
buffer - The buffer to flush. This buffers getIndex is updated.
trailer - A buffer to write after flushing this buffer. This buffers getIndex is updated.
Returns:
the total number of bytes written.
Throws:
IOException

getLocalAddr

public String getLocalAddr()
Specified by:
getLocalAddr in interface EndPoint
Returns:
The local IP address to which this EndPoint is bound, or null if this EndPoint does not represent a network connection.

getLocalHost

public String getLocalHost()
Specified by:
getLocalHost in interface EndPoint
Returns:
The local host name to which this EndPoint is bound, or null if this EndPoint does not represent a network connection.

getLocalPort

public int getLocalPort()
Specified by:
getLocalPort in interface EndPoint
Returns:
The local port number on which this EndPoint is listening, or 0 if this EndPoint does not represent a network connection.

getRemoteAddr

public String getRemoteAddr()
Specified by:
getRemoteAddr in interface EndPoint
Returns:
The remote IP address to which this EndPoint is connected, or null if this EndPoint does not represent a network connection.

getRemoteHost

public String getRemoteHost()
Specified by:
getRemoteHost in interface EndPoint
Returns:
The host name of the remote machine to which this EndPoint is connected, or null if this EndPoint does not represent a network connection.

getRemotePort

public int getRemotePort()
Specified by:
getRemotePort in interface EndPoint
Returns:
The remote port number to which this EndPoint is connected, or 0 if this EndPoint does not represent a network connection.

getTransport

public Object getTransport()
Specified by:
getTransport in interface EndPoint
Returns:
The underlying transport object (socket, channel, etc.)

getInputStream

public InputStream getInputStream()

setInputStream

public void setInputStream(InputStream in)

getOutputStream

public OutputStream getOutputStream()

setOutputStream

public void setOutputStream(OutputStream out)

flush

public void flush()
           throws IOException
Description copied from interface: EndPoint
Flush any buffered output. May fail to write all data if endpoint is non-blocking

Specified by:
flush in interface EndPoint
Throws:
IOException

isBufferingInput

public boolean isBufferingInput()
Specified by:
isBufferingInput in interface EndPoint
Returns:
True if the endpoint has some buffered input data

isBufferingOutput

public boolean isBufferingOutput()
Specified by:
isBufferingOutput in interface EndPoint
Returns:
True if the endpoint has some buffered output data

isBufferred

public boolean isBufferred()
Specified by:
isBufferred in interface EndPoint