You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/03/29 03:40:29 UTC
svn commit: r159340 - in directory/network/trunk/src/java/org/apache/mina:
common/ io/ io/datagram/ io/socket/
Author: trustin
Date: Mon Mar 28 17:40:25 2005
New Revision: 159340
URL: http://svn.apache.org/viewcvs?view=rev&rev=159340
Log:
Added more JavaDocs
Modified:
directory/network/trunk/src/java/org/apache/mina/common/ByteBuffer.java
directory/network/trunk/src/java/org/apache/mina/common/IdleStatus.java
directory/network/trunk/src/java/org/apache/mina/common/SessionConfig.java
directory/network/trunk/src/java/org/apache/mina/common/TransportType.java
directory/network/trunk/src/java/org/apache/mina/io/AbstractIoHandlerFilterChain.java
directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java
directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramConnector.java
directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramFilterChain.java
directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramProcessor.java
directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSession.java
directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSessionConfig.java
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketFilterChain.java
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSession.java
directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSessionConfig.java
Modified: directory/network/trunk/src/java/org/apache/mina/common/ByteBuffer.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/ByteBuffer.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/ByteBuffer.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/ByteBuffer.java Mon Mar 28 17:40:25 2005
@@ -48,42 +48,22 @@
*/
public final class ByteBuffer
{
- private static final Stack[] bufferStacks = new Stack[] { new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(),
- new Stack(), };
+ private static final Stack[] bufferStacks = new Stack[] {
+ new Stack(), new Stack(), new Stack(), new Stack(),
+ new Stack(), new Stack(), new Stack(), new Stack(),
+ new Stack(), new Stack(), new Stack(), new Stack(),
+ new Stack(), new Stack(), new Stack(), new Stack(),
+ new Stack(), new Stack(), new Stack(), new Stack(),
+ new Stack(), new Stack(), new Stack(), new Stack(),
+ new Stack(), new Stack(), new Stack(), new Stack(),
+ new Stack(), };
/**
* Returns the buffer which is capable of the specified size.
*/
- public static ByteBuffer allocate( int size )
+ public static ByteBuffer allocate( int capacity )
{
- int idx = getBufferStackIndex( size );
+ int idx = getBufferStackIndex( capacity );
Stack stack = bufferStacks[ idx ];
ByteBuffer buf;
Modified: directory/network/trunk/src/java/org/apache/mina/common/IdleStatus.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/IdleStatus.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/IdleStatus.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/IdleStatus.java Mon Mar 28 17:40:25 2005
@@ -30,8 +30,8 @@
* <li>{@link #BOTH_IDLE} - Both {@link #READER_IDLE} and {@link #WRITER_IDLE}.</li>
* </ul>
* <p>
- * Idle time settings are all disabled by default. You can enable them all or
- * partly using {@link SessionConfig#setIdleTime(IdleStatus,int)}.
+ * Idle time settings are all disabled by default. You can enable them
+ * using {@link SessionConfig#setIdleTime(IdleStatus,int)}.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
@@ -64,6 +64,14 @@
this.strValue = strValue;
}
+ /**
+ * Returns the string representation of this status.
+ * <ul>
+ * <li>{@link #READER_IDLE} - <tt>"reader idle"</tt></li>
+ * <li>{@link #WRITER_IDLE} - <tt>"writer idle"</tt></li>
+ * <li>{@link #BOTH_IDLE} - <tt>"both idle"</tt></li>
+ * </ul>
+ */
public String toString()
{
return strValue;
Modified: directory/network/trunk/src/java/org/apache/mina/common/SessionConfig.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/SessionConfig.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/SessionConfig.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/SessionConfig.java Mon Mar 28 17:40:25 2005
@@ -25,7 +25,7 @@
import org.apache.mina.protocol.ProtocolSession;
/**
- * Provides general or transport-specific configuration.
+ * Provides general or {@link TransportType}-specific configuration.
* <p>
* <ul>
* <li><code>idleTime</code> (secs) - <code>sessionIdle</code> event is
@@ -36,10 +36,17 @@
* </ul>
* <p>
* Please refer to {@link SocketSessionConfig} and {@link DatagramSessionConfig}
- * for transport-specific configurations.
+ * for {@link TransportType}-specific configurations.
* <p>
* {@link SessionConfig} can be obtained by {@link IoSession#getConfig()} and
- * by {@link ProtocolSession#getConfig()}.
+ * by {@link ProtocolSession#getConfig()}. To adjust
+ * {@link TransportType}-specific settings, please downcast it:
+ * <pre>
+ * public void sessionOpened( IoSession s )
+ * {
+ * ( ( SocketSessionConfig ) s.getConfig() ).setReuseAddress( true );
+ * }
+ * </pre>
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: directory/network/trunk/src/java/org/apache/mina/common/TransportType.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/TransportType.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/TransportType.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/TransportType.java Mon Mar 28 17:40:25 2005
@@ -23,7 +23,13 @@
import java.io.Serializable;
/**
- * Represents network transport types.
+ * Represents network transport types. MINA provides three transport types:
+ * <ul>
+ * <li>{@link #SOCKET} - TCP/IP</li>
+ * <li>{@link #DATAGRAM} - UDP/IP</li>
+ * <li>{@link #VM_PIPE} - in-VM pipe support (only available in protocol
+ * layer</li>
+ * </ul>
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
@@ -45,7 +51,10 @@
"DATAGRAM", true );
/**
- * Transport type: VM pipe (direct message exchange)
+ * Transport type: VM pipe (direct message exchange).
+ * Please refer to
+ * <a href="../protocol/vmpipe/package-summary.htm"><tt>org.apache.mina.protocol.vmpipe</tt></a>
+ * package.
*/
public static final TransportType VM_PIPE = new TransportType( "VM_PIPE",
false );
@@ -54,9 +63,9 @@
* Returns the transport type of the specified name. Here are the list
* of available names:
* <ul>
- * <li><code>"socket"</code> or <code>"tcp"</code> - {@link #SOCKET}</li>
- * <li><code>"datagram"</code> or <code>"udp"</code> - {@link #DATAGRAM}</li>
- * <li><code>"vm_pipe"</code> - {@link #VM_PIPE}</li>
+ * <li><code>"socket"</code> or <code>"tcp"</code> returns {@link #SOCKET}</li>
+ * <li><code>"datagram"</code> or <code>"udp"</code> returns {@link #DATAGRAM}</li>
+ * <li><code>"vm_pipe"</code> returns {@link #VM_PIPE}</li>
* </ul>
* All names are case-insensitive.
*
Modified: directory/network/trunk/src/java/org/apache/mina/io/AbstractIoHandlerFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/AbstractIoHandlerFilterChain.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/AbstractIoHandlerFilterChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/AbstractIoHandlerFilterChain.java Mon Mar 28 17:40:25 2005
@@ -11,6 +11,25 @@
import org.apache.mina.common.IdleStatus;
import org.apache.mina.io.IoHandlerFilter.NextFilter;
+/**
+ * An abstract implementation of {@link IoHandlerFilterChain} that provides
+ * common operations for developers to support specific transport types.
+ * <p>
+ * All methods has been implemented. The list of filters is maintained
+ * as a doublely linked list. You can fire any MINA events which is filtered
+ * by this chain using these public methods:
+ * <ul>
+ * <li></li>
+ * </ul>
+ *
+ * The only method a developer should implement is {@link #doWrite(IoSession, ByteBuffer, Object)}.
+ * This method is invoked when filter chain is evaluated for
+ * {@link IoHandlerFilter#filterWrite(NextFilter, IoSession, ByteBuffer, Object)} and
+ * finally to be written to the underlying transport layer (e.g. socket)
+ *
+ * @author The Apache Directory Project
+ * @version $Rev$, $Date$,
+ */
public abstract class AbstractIoHandlerFilterChain implements IoHandlerFilterChain
{
private final IoHandlerFilter HEAD_FILTER = new IoHandlerFilter()
Modified: directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java Mon Mar 28 17:40:25 2005
@@ -68,7 +68,7 @@
/**
* Creates a new instance.
*
- * @throws IOException
+ * @throws IOException if failed to open a selector.
*/
public DatagramAcceptor() throws IOException
{
@@ -182,13 +182,13 @@
}
}
- public void flushSession( DatagramSession session )
+ void flushSession( DatagramSession session )
{
scheduleFlush( session );
selector.wakeup();
}
- public void closeSession( DatagramSession session )
+ void closeSession( DatagramSession session )
{
}
Modified: directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramConnector.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramConnector.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramConnector.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramConnector.java Mon Mar 28 17:40:25 2005
@@ -67,7 +67,7 @@
/**
* Creates a new instance.
*
- * @throws IOException
+ * @throws IOException if failed to open a selector
*/
public DatagramConnector() throws IOException
{
@@ -134,7 +134,7 @@
return connect( address, handler );
}
- public void closeSession( DatagramSession session )
+ void closeSession( DatagramSession session )
{
synchronized( this )
{
@@ -149,7 +149,7 @@
selector.wakeup();
}
- public void flushSession( DatagramSession session )
+ void flushSession( DatagramSession session )
{
scheduleFlush( session );
selector.wakeup();
Modified: directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramFilterChain.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramFilterChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramFilterChain.java Mon Mar 28 17:40:25 2005
@@ -5,6 +5,11 @@
import org.apache.mina.io.IoSession;
import org.apache.mina.util.Queue;
+/**
+ * An {@link IoHandlerFilterChain} for datagram transport (UDP/IP).
+ *
+ * @author The Apache Directory Project
+ */
class DatagramFilterChain extends AbstractIoHandlerFilterChain {
private final DatagramProcessor processor;
Modified: directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramProcessor.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramProcessor.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramProcessor.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramProcessor.java Mon Mar 28 17:40:25 2005
@@ -29,11 +29,13 @@
abstract class DatagramProcessor
{
/**
- * This method is invoked by MINA internally.
+ * Requests this processor to flush the write buffer of the specified
+ * session. This method is invoked by MINA internally.
*/
abstract void flushSession( DatagramSession session );
/**
+ * Requests this processor to close the specified session.
* This method is invoked by MINA internally.
*/
abstract void closeSession( DatagramSession session );
Modified: directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSession.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSession.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSession.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSession.java Mon Mar 28 17:40:25 2005
@@ -31,7 +31,7 @@
import org.apache.mina.util.Queue;
/**
- * TODO Insert type comment.
+ * An {@link IoSession} for datagram transport (UDP/IP).
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSessionConfig.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSessionConfig.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSessionConfig.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/datagram/DatagramSessionConfig.java Mon Mar 28 17:40:25 2005
@@ -26,6 +26,10 @@
/**
* A {@link SessionConfig} for datagram transport (UDP/IP).
+ * You can downcast {@link SessionConfig} instance returned by
+ * {@link IoSession#getConfig()} or {@link ProtocolSession#getConfig()}
+ * if you've created datagram session using {@link DatagramAcceptor} or
+ * {@link DatagramConnector}.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
Modified: directory/network/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java Mon Mar 28 17:40:25 2005
@@ -18,7 +18,6 @@
*/
package org.apache.mina.io.socket;
-
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
@@ -37,7 +36,6 @@
import org.apache.mina.io.IoHandler;
import org.apache.mina.io.IoHandlerFilterChain;
import org.apache.mina.util.Queue;
-
/**
* {@link IoAcceptor} for socket transport (TCP/IP).
Modified: directory/network/trunk/src/java/org/apache/mina/io/socket/SocketFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/socket/SocketFilterChain.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/socket/SocketFilterChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/socket/SocketFilterChain.java Mon Mar 28 17:40:25 2005
@@ -5,6 +5,11 @@
import org.apache.mina.io.IoSession;
import org.apache.mina.util.Queue;
+/**
+ * An {@link IoHandlerFilterChain} for socket transport (TCP/IP).
+ *
+ * @author The Apache Directory Project
+ */
class SocketFilterChain extends AbstractIoHandlerFilterChain {
SocketFilterChain()
Modified: directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/socket/SocketIoProcessor.java Mon Mar 28 17:40:25 2005
@@ -32,8 +32,8 @@
import org.apache.mina.util.Queue;
/**
- * Performs core I/O operations for sockets. This class is used by MINA
- * internally.
+ * Performs all I/O operations for sockets which is connected or bound.
+ * This class is used by MINA internally.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,
Modified: directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSession.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSession.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSession.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSession.java Mon Mar 28 17:40:25 2005
@@ -31,7 +31,7 @@
import org.apache.mina.util.Queue;
/**
- * TODO Insert type comment.
+ * An {@link IoSession} for socket transport (TCP/IP).
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$
Modified: directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSessionConfig.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSessionConfig.java?view=diff&r1=159339&r2=159340
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSessionConfig.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/socket/SocketSessionConfig.java Mon Mar 28 17:40:25 2005
@@ -22,10 +22,16 @@
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.SessionConfig;
+import org.apache.mina.io.IoSession;
+import org.apache.mina.protocol.ProtocolSession;
import org.apache.mina.util.BasicSessionConfig;
/**
* A {@link SessionConfig} for socket transport (TCP/IP).
+ * You can downcast {@link SessionConfig} instance returned by
+ * {@link IoSession#getConfig()} or {@link ProtocolSession#getConfig()}
+ * if you've created datagram session using {@link SocketAcceptor} or
+ * {@link SocketConnector}.
*
* @author Trustin Lee (trustin@apache.org)
* @version $Rev$, $Date$,