org.eclipse.jetty.io.nio
类 ChannelEndPoint

java.lang.Object
  继承者 org.eclipse.jetty.io.nio.ChannelEndPoint
所有已实现的接口:
EndPoint
直接已知子类:
SelectChannelEndPoint

public class ChannelEndPoint
extends Object
implements EndPoint

Channel End Point.

Holds the channel and socket for an NIO endpoint.


字段摘要
protected  ByteChannel _channel
           
protected  ByteBuffer[] _gather2
           
protected  InetSocketAddress _local
           
protected  int _maxIdleTime
           
protected  InetSocketAddress _remote
           
protected  Socket _socket
           
 
构造方法摘要
  ChannelEndPoint(ByteChannel channel)
           
protected ChannelEndPoint(ByteChannel channel, int maxIdleTime)
           
 
方法摘要
 boolean blockReadable(long millisecs)
           
 boolean blockWritable(long millisecs)
           
 void close()
          Close any backing stream associated with the endpoint
 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.
protected  int gatheringFlush(Buffer header, ByteBuffer bbuf0, Buffer buffer, ByteBuffer bbuf1)
           
 ByteChannel getChannel()
           
 String getLocalAddr()
           
 String getLocalHost()
           
 int getLocalPort()
           
 int getMaxIdleTime()
          Get the max idle time in ms.
 String getRemoteAddr()
           
 String getRemoteHost()
           
 int getRemotePort()
           
 Object getTransport()
           
 boolean isBlocking()
           
 boolean isInputShutdown()
           
 boolean isOpen()
           
 boolean isOutputShutdown()
           
 void setMaxIdleTime(int timeMs)
          Set the max idle time.
protected  void shutdownChannelInput()
          Shutdown the channel Input.
protected  void shutdownChannelOutput()
           
 void shutdownInput()
          Shutdown any backing input stream associated with the endpoint
 void shutdownOutput()
          Shutdown any backing output stream associated with the endpoint
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

_channel

protected final ByteChannel _channel

_gather2

protected final ByteBuffer[] _gather2

_socket

protected final Socket _socket

_local

protected final InetSocketAddress _local

_remote

protected final InetSocketAddress _remote

_maxIdleTime

protected volatile int _maxIdleTime
构造方法详细信息

ChannelEndPoint

public ChannelEndPoint(ByteChannel channel)
                throws IOException
抛出:
IOException

ChannelEndPoint

protected ChannelEndPoint(ByteChannel channel,
                          int maxIdleTime)
                   throws IOException
抛出:
IOException
方法详细信息

isBlocking

public boolean isBlocking()
指定者:
接口 EndPoint 中的 isBlocking

blockReadable

public boolean blockReadable(long millisecs)
                      throws IOException
指定者:
接口 EndPoint 中的 blockReadable
抛出:
IOException

blockWritable

public boolean blockWritable(long millisecs)
                      throws IOException
指定者:
接口 EndPoint 中的 blockWritable
抛出:
IOException

isOpen

public boolean isOpen()
指定者:
接口 EndPoint 中的 isOpen

shutdownChannelInput

protected final void shutdownChannelInput()
                                   throws IOException
Shutdown the channel Input. Cannot be overridden. To override, see shutdownInput()

抛出:
IOException

shutdownInput

public void shutdownInput()
                   throws IOException
从接口 EndPoint 复制的描述
Shutdown any backing input stream associated with the endpoint

指定者:
接口 EndPoint 中的 shutdownInput
抛出:
IOException

shutdownChannelOutput

protected final void shutdownChannelOutput()
                                    throws IOException
抛出:
IOException

shutdownOutput

public void shutdownOutput()
                    throws IOException
从接口 EndPoint 复制的描述
Shutdown any backing output stream associated with the endpoint

指定者:
接口 EndPoint 中的 shutdownOutput
抛出:
IOException

isOutputShutdown

public boolean isOutputShutdown()
指定者:
接口 EndPoint 中的 isOutputShutdown

isInputShutdown

public boolean isInputShutdown()
指定者:
接口 EndPoint 中的 isInputShutdown

close

public void close()
           throws IOException
从接口 EndPoint 复制的描述
Close any backing stream associated with the endpoint

指定者:
接口 EndPoint 中的 close
抛出:
IOException

fill

public int fill(Buffer buffer)
         throws IOException
从接口 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.

指定者:
接口 EndPoint 中的 fill
返回:
an int value indicating the number of bytes filled or -1 if EOF is reached.
抛出:
EofException - If input is shutdown or the endpoint is closed.
IOException

flush

public int flush(Buffer buffer)
          throws IOException
从接口 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.

指定者:
接口 EndPoint 中的 flush
参数:
buffer - The buffer to flush. This buffers getIndex is updated.
返回:
the number of bytes written
抛出:
EofException - If the endpoint is closed or output is shutdown.
IOException

flush

public int flush(Buffer header,
                 Buffer buffer,
                 Buffer trailer)
          throws IOException
从接口 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.

指定者:
接口 EndPoint 中的 flush
参数:
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.
返回:
the total number of bytes written.
抛出:
IOException

gatheringFlush

protected int gatheringFlush(Buffer header,
                             ByteBuffer bbuf0,
                             Buffer buffer,
                             ByteBuffer bbuf1)
                      throws IOException
抛出:
IOException

getChannel

public ByteChannel getChannel()
返回:
Returns the channel.

getLocalAddr

public String getLocalAddr()
指定者:
接口 EndPoint 中的 getLocalAddr
返回:
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()
指定者:
接口 EndPoint 中的 getLocalHost
返回:
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()
指定者:
接口 EndPoint 中的 getLocalPort
返回:
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()
指定者:
接口 EndPoint 中的 getRemoteAddr
返回:
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()
指定者:
接口 EndPoint 中的 getRemoteHost
返回:
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()
指定者:
接口 EndPoint 中的 getRemotePort
返回:
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()
指定者:
接口 EndPoint 中的 getTransport
返回:
The underlying transport object (socket, channel, etc.)

flush

public void flush()
           throws IOException
从接口 EndPoint 复制的描述
Flush any buffered output. May fail to write all data if endpoint is non-blocking

指定者:
接口 EndPoint 中的 flush
抛出:
EofException - If the endpoint is closed or output is shutdown.
IOException

getMaxIdleTime

public int getMaxIdleTime()
从接口 EndPoint 复制的描述
Get the max idle time in ms.

The max idle time is the time the endpoint can be idle before extraordinary handling takes place. This loosely corresponds to the Socket.getSoTimeout() for blocking connections, but AsyncEndPoint implementations must use other mechanisms to implement the max idle time.

指定者:
接口 EndPoint 中的 getMaxIdleTime
返回:
the max idle time in ms or if ms <= 0 implies an infinite timeout

setMaxIdleTime

public void setMaxIdleTime(int timeMs)
                    throws IOException
从接口 EndPoint 复制的描述
Set the max idle time.

指定者:
接口 EndPoint 中的 setMaxIdleTime
参数:
timeMs - the max idle time in MS. Timeout <= 0 implies an infinite timeout
抛出:
IOException - if the timeout cannot be set.
另请参见:
StreamEndPoint.setMaxIdleTime(int)


Copyright © 2013. All Rights Reserved.