org.apache.mina.common
Interface Session

All Known Subinterfaces:
IoSession, ProtocolSession
All Known Implementing Classes:
BaseSession, IoProtocolSession

public interface Session

A handle which represents connection between two endpoints regardless of transport types.

Session provides user-defined attributes. User-defined attributes are application-specific data which is associated with a session. It often contains objects that represents the state of a higher-level protocol and becomes a way to exchange data between filters and handlers.

Version:
$Rev: 326586 $, $Date: 2005-10-19 17:50:29 +0200 (Wed, 19 Oct 2005) $
Author:
The Apache Directory Project (dev@directory.apache.org)

Method Summary
 void close()
          Closes this session immediately.
 void close(boolean wait)
          Closes this session immediately.
 java.lang.Object getAttachment()
          Returns an attachment of this session.
 java.lang.Object getAttribute(java.lang.String key)
          Returns the value of user-defined attribute of this session.
 java.util.Set getAttributeKeys()
          Returns the set of keys of all user-defined attributes.
 SessionConfig getConfig()
          Returns the configuration of this session.
 long getCreationTime()
          Returns the time in millis when this session is created.
 int getIdleCount(IdleStatus status)
          Returns the number of the fired continuous sessionIdle events for the specified IdleStatus.
 long getLastIdleTime(IdleStatus status)
          Returns the time in millis when the last sessionIdle event is fired for the specified IdleStatus.
 long getLastIoTime()
          Returns the time in millis when I/O occurred lastly.
 long getLastReadTime()
          Returns the time in millis when read operation occurred lastly.
 long getLastWriteTime()
          Returns the time in millis when write operation occurred lastly.
 java.net.SocketAddress getLocalAddress()
          Returns the socket address of local machine which is associated with this session.
 long getReadBytes()
          Returns the total number of bytes which were read from this session.
 java.net.SocketAddress getRemoteAddress()
          Returns the socket address of remote peer.
 int getScheduledWriteRequests()
          Returns the number of write requests which are scheduled to be written to this session.
 TransportType getTransportType()
          Returns transport type of this session.
 long getWrittenBytes()
          Returns the total number of bytes which were written to this session.
 long getWrittenWriteRequests()
          Returns the total number of write requests which were written to this session.
 boolean isConnected()
          Returns true if this session is connected with remote peer.
 boolean isIdle(IdleStatus status)
          Returns true if this session is idle for the specified IdleStatus.
 java.lang.Object removeAttribute(java.lang.String key)
          Removes a user-defined attribute with the specified key.
 java.lang.Object setAttachment(java.lang.Object attachment)
          Sets an attachment of this session.
 java.lang.Object setAttribute(java.lang.String key, java.lang.Object value)
          Sets a user-defined attribute.
 

Method Detail

close

public void close()
Closes this session immediately. Calling method is identical with calling close( false ).


close

public void close(boolean wait)
Closes this session immediately.

Parameters:
wait - true if you want to wait until closing process is complete.

getAttachment

public java.lang.Object getAttachment()
Returns an attachment of this session. This method is identical with getAttribute( "" ).


setAttachment

public java.lang.Object setAttachment(java.lang.Object attachment)
Sets an attachment of this session. This method is identical with setAttribute( "", attachment ).

Returns:
Old attachment. null if it is new.

getAttribute

public java.lang.Object getAttribute(java.lang.String key)
Returns the value of user-defined attribute of this session.

Parameters:
key - the key of the attribute
Returns:
null if there is no attribute with the specified key

setAttribute

public java.lang.Object setAttribute(java.lang.String key,
                                     java.lang.Object value)
Sets a user-defined attribute.

Parameters:
key - the key of the attribute
value - the value of the attribute
Returns:
The old value of the attribute. null if it is new.

removeAttribute

public java.lang.Object removeAttribute(java.lang.String key)
Removes a user-defined attribute with the specified key.

Returns:
The old value of the attribute. null if not found.

getAttributeKeys

public java.util.Set getAttributeKeys()
Returns the set of keys of all user-defined attributes.


getTransportType

public TransportType getTransportType()
Returns transport type of this session.


isConnected

public boolean isConnected()
Returns true if this session is connected with remote peer.


getConfig

public SessionConfig getConfig()
Returns the configuration of this session.


getRemoteAddress

public java.net.SocketAddress getRemoteAddress()
Returns the socket address of remote peer.


getLocalAddress

public java.net.SocketAddress getLocalAddress()
Returns the socket address of local machine which is associated with this session.


getReadBytes

public long getReadBytes()
Returns the total number of bytes which were read from this session.


getWrittenBytes

public long getWrittenBytes()
Returns the total number of bytes which were written to this session.


getWrittenWriteRequests

public long getWrittenWriteRequests()
Returns the total number of write requests which were written to this session.


getScheduledWriteRequests

public int getScheduledWriteRequests()
Returns the number of write requests which are scheduled to be written to this session.


getCreationTime

public long getCreationTime()
Returns the time in millis when this session is created.


getLastIoTime

public long getLastIoTime()
Returns the time in millis when I/O occurred lastly.


getLastReadTime

public long getLastReadTime()
Returns the time in millis when read operation occurred lastly.


getLastWriteTime

public long getLastWriteTime()
Returns the time in millis when write operation occurred lastly.


isIdle

public boolean isIdle(IdleStatus status)
Returns true if this session is idle for the specified IdleStatus.


getIdleCount

public int getIdleCount(IdleStatus status)
Returns the number of the fired continuous sessionIdle events for the specified IdleStatus.

If sessionIdle event is fired first after some time after I/O, idleCount becomes 1. idleCount resets to 0 if any I/O occurs again, otherwise it increases to 2 and so on if sessionIdle event is fired again without any I/O between two (or more) sessionIdle events.


getLastIdleTime

public long getLastIdleTime(IdleStatus status)
Returns the time in millis when the last sessionIdle event is fired for the specified IdleStatus.