Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.mina.common
Interface IoSession

All Known Subinterfaces:
  BroadcastIoSession

    public interface IoSession

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

`IoSession` 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.

### Adjusting Transport Type Specific Properties

You can simply downcast the session to an appropriate subclass.

### Thread Safety

`IoSession` is thread-safe. But please note that performing more than one `write(Object)` calls at the same time will cause the `IoFilter.filterWrite(IoFilter.NextFilter, IoSession, IoFilter.WriteRequest)` is executed simnutaneously, and therefore you have to make sure the `IoFilter` implementations you're using are thread-safe, too.

Version:
  $Rev: 555855 $, $Date: 2007-07-13 05:19:00 +0200 (Fri, 13 Jul 2007) $
Author:
  The Apache Directory Project (mina-dev@directory.apache.org)

Method Summary
`CloseFuture` | `close()` Closes this session immediately.
`boolean` | `containsAttribute(String key)` Returns `true` if this session contains the attribute with the specified `key`.
`Object` | `getAttachment()` Returns an attachment of this session.
`Object` | `getAttribute(String key)` Returns the value of user-defined attribute of this session.
`Set<String>` | `getAttributeKeys()` Returns the set of keys of all user-defined attributes.
`CloseFuture` | `getCloseFuture()` Returns the `CloseFuture` of this session.
`IoSessionConfig` | `getConfig()` Returns the configuration of this session.
`long` | `getCreationTime()` Returns the time in millis when this session is created.
`IoFilterChain` | `getFilterChain()` Returns the filter chain that only affects this session.
`IoHandler` | `getHandler()` Returns the `IoHandler` which handles this session.
`int` | `getIdleCount(IdleStatus status)` Returns the number of the fired continuous `sessionIdle` events for the specified `IdleStatus`.
`int` | `getIdleTime(IdleStatus status)` Returns idle time for the specified type of idleness in seconds.
`long` | `getIdleTimeInMillis(IdleStatus status)` Returns idle time for the specified type of idleness in milliseconds.
`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.
`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.
`long` | `getReadMessages()` Returns the total number of messages which were read and decoded from this session.
`SocketAddress` | `getRemoteAddress()` Returns the socket address of remote peer.
`int` | `getScheduledWriteBytes()` Returns the number of bytes which are scheduled to be written to this session.
`int` | `getScheduledWriteRequests()` Returns the number of write requests which are scheduled to be written to this session.
`IoService` | `getService()` Returns the `IoService` which provides I/O service to this session.
`SocketAddress` | `getServiceAddress()` Returns the socket address of the `IoService` listens to to manage this session.
`IoServiceConfig` | `getServiceConfig()` Returns the `IoServiceConfig` of this session.
`TrafficMask` | `getTrafficMask()` Returns the current `TrafficMask` of this session.
`TransportType` | `getTransportType()` Returns transport type of this session.
`int` | `getWriteTimeout()` Returns write timeout in seconds.
`long` | `getWriteTimeoutInMillis()` Returns write timeout in milliseconds.
`long` | `getWrittenBytes()` Returns the total number of bytes which were written to this session.
`long` | `getWrittenMessages()` Returns the total number of messages which were written and encoded by this session.
`long` | `getWrittenWriteRequests()` Returns the total number of write requests which were written to this session.
`boolean` | `isClosing()` Returns `true if and only if this session is being closed (but not disconnected yet) or is closed.`
`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`.
`Object` | `removeAttribute(String key)` Removes a user-defined attribute with the specified key.
`void` | `resumeRead()` A shortcut method for `setTrafficMask(TrafficMask)` that resumes read operations for this session.
`void` | `resumeWrite()` A shortcut method for `setTrafficMask(TrafficMask)` that resumes write operations for this session.
`Object` | `setAttachment(Object attachment)` Sets an attachment of this session.
`Object` | `setAttribute(String key)` Sets a user defined attribute without a value.
`Object` | `setAttribute(String key, Object value)` Sets a user-defined attribute.
`void` | `setIdleTime(IdleStatus status, int idleTime)` Sets idle time for the specified type of idleness in seconds.
`void` | `setTrafficMask(TrafficMask trafficMask)` Sets the `TrafficMask` of this session which will result the parent `IoService` to start to control the traffic of this session immediately.
`void` | `setWriteTimeout(int writeTimeout)` Sets write timeout in seconds.
`void` | `suspendRead()` A shortcut method for `setTrafficMask(TrafficMask)` that suspends read operations for this session.
`void` | `suspendWrite()` A shortcut method for `setTrafficMask(TrafficMask)` that suspends write operations for this session.
`WriteFuture` | `write(Object message)` Writes the specified `message` to remote peer.

Method Detail

### getService

    IoService getService()

  Returns the `IoService` which provides I/O service to this session.

### getServiceConfig

    IoServiceConfig getServiceConfig()

  Returns the `IoServiceConfig` of this session.

### getHandler

    IoHandler getHandler()

  Returns the `IoHandler` which handles this session.

### getConfig

    IoSessionConfig getConfig()

  Returns the configuration of this session.

### getFilterChain

    IoFilterChain getFilterChain()

  Returns the filter chain that only affects this session.

### write

    WriteFuture write(Object message)

  Writes the specified `message` to remote peer. This operation is asynchronous; `IoHandler.messageSent(IoSession, Object)` will be invoked when the message is actually sent to remote peer. You can also wait for the returned `WriteFuture` if you want to wait for the message actually written.

### close

    CloseFuture close()

  Closes this session immediately. This operation is asynthronous. Wait for the returned `CloseFuture` if you want to wait for the session actually closed.

### getAttachment

    Object getAttachment()

  Returns an attachment of this session. This method is identical with `getAttribute( "" )`.

### setAttachment

    Object setAttachment(Object attachment)

  Sets an attachment of this session. This method is identical with `setAttribute( "", attachment )`.

  Returns:
    Old attachment. `null` if it is new.

### getAttribute

    Object getAttribute(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

    Object setAttribute(String key,
                        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.

### setAttribute

    Object setAttribute(String key)

  Sets a user defined attribute without a value. This is useful when you just want to put a 'mark' attribute. Its value is set to `Boolean.TRUE`.

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

### removeAttribute

    Object removeAttribute(String key)

  Removes a user-defined attribute with the specified key.

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

### containsAttribute

    boolean containsAttribute(String key)

  Returns `true` if this session contains the attribute with the specified `key`.

### getAttributeKeys

    Set<String> getAttributeKeys()

  Returns the set of keys of all user-defined attributes.

### getTransportType

    TransportType getTransportType()

  Returns transport type of this session.

### isConnected

    boolean isConnected()

  Returns `true` if this session is connected with remote peer.

### isClosing

    boolean isClosing()

  Returns `true if and only if this session is being closed (but not disconnected yet) or is closed.

  `

### getCloseFuture

    CloseFuture getCloseFuture()

  Returns the `CloseFuture` of this session. This method returns the same instance whenever user calls it.

### getRemoteAddress

    SocketAddress getRemoteAddress()

  Returns the socket address of remote peer.

### getLocalAddress

    SocketAddress getLocalAddress()

  Returns the socket address of local machine which is associated with this session.

### getServiceAddress

    SocketAddress getServiceAddress()

  Returns the socket address of the `IoService` listens to to manage this session. If this session is managed by `IoAcceptor`, it returns the `SocketAddress` which is specified as a parameter of `IoAcceptor.bind(SocketAddress, IoHandler)`. If this session is managed by `IoConnector`, this method returns the same address with that of `getRemoteAddress()`.

### getIdleTime

    int getIdleTime(IdleStatus status)

  Returns idle time for the specified type of idleness in seconds.

### getIdleTimeInMillis

    long getIdleTimeInMillis(IdleStatus status)

  Returns idle time for the specified type of idleness in milliseconds.

### setIdleTime

    void setIdleTime(IdleStatus status,
                     int idleTime)

  Sets idle time for the specified type of idleness in seconds.

### getWriteTimeout

    int getWriteTimeout()

  Returns write timeout in seconds.

### getWriteTimeoutInMillis

    long getWriteTimeoutInMillis()

  Returns write timeout in milliseconds.

### setWriteTimeout

    void setWriteTimeout(int writeTimeout)

  Sets write timeout in seconds.

### getTrafficMask

    TrafficMask getTrafficMask()

  Returns the current `TrafficMask` of this session.

### setTrafficMask

    void setTrafficMask(TrafficMask trafficMask)

  Sets the `TrafficMask` of this session which will result the parent `IoService` to start to control the traffic of this session immediately.

### suspendRead

    void suspendRead()

  A shortcut method for `setTrafficMask(TrafficMask)` that suspends read operations for this session.

### suspendWrite

    void suspendWrite()

  A shortcut method for `setTrafficMask(TrafficMask)` that suspends write operations for this session.

### resumeRead

    void resumeRead()

  A shortcut method for `setTrafficMask(TrafficMask)` that resumes read operations for this session.

### resumeWrite

    void resumeWrite()

  A shortcut method for `setTrafficMask(TrafficMask)` that resumes write operations for this session.

### getReadBytes

    long getReadBytes()

  Returns the total number of bytes which were read from this session.

### getWrittenBytes

    long getWrittenBytes()

  Returns the total number of bytes which were written to this session.

### getReadMessages

    long getReadMessages()

  Returns the total number of messages which were read and decoded from this session.

### getWrittenMessages

    long getWrittenMessages()

  Returns the total number of messages which were written and encoded by this session.

### getWrittenWriteRequests

    long getWrittenWriteRequests()

  Returns the total number of write requests which were written to this session.

### getScheduledWriteRequests

    int getScheduledWriteRequests()

  Returns the number of write requests which are scheduled to be written to this session.

### getScheduledWriteBytes

    int getScheduledWriteBytes()

  Returns the number of bytes which are scheduled to be written to this session.

### getCreationTime

    long getCreationTime()

  Returns the time in millis when this session is created.

### getLastIoTime

    long getLastIoTime()

  Returns the time in millis when I/O occurred lastly.

### getLastReadTime

    long getLastReadTime()

  Returns the time in millis when read operation occurred lastly.

### getLastWriteTime

    long getLastWriteTime()

  Returns the time in millis when write operation occurred lastly.

### isIdle

    boolean isIdle(IdleStatus status)

  Returns `true` if this session is idle for the specified `IdleStatus`.

### getIdleCount

    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

    long getLastIdleTime(IdleStatus status)

  Returns the time in millis when the last `sessionIdle` event is fired for the specified `IdleStatus`.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004-2008 Apache MINA Project. All Rights Reserved.