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 2006/03/23 08:39:28 UTC

svn commit: r388086 - in /directory/trunks/mina/core/src: main/java/org/apache/mina/common/ main/java/org/apache/mina/transport/socket/nio/support/ main/java/org/apache/mina/transport/vmpipe/support/ main/java/org/apache/mina/util/ test/java/org/apache...

Author: trustin
Date: Wed Mar 22 23:39:27 2006
New Revision: 388086

URL: http://svn.apache.org/viewcvs?rev=388086&view=rev
Log:
Resolved issue: DIRMINA-191 (IoSession.getScheduledWriteBytes)
* Added Queue.byteSize()
* Added getScheduledWriteBytes() to all IoSession implementations.

Modified:
    directory/trunks/mina/core/src/main/java/org/apache/mina/common/IoSession.java
    directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
    directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/SocketSessionImpl.java
    directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java
    directory/trunks/mina/core/src/main/java/org/apache/mina/util/Queue.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/common/FutureTest.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/common/IoFilterChainTest.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java
    directory/trunks/mina/core/src/test/java/org/apache/mina/handler/chain/ChainedIoHandlerTest.java

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/common/IoSession.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/common/IoSession.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/common/IoSession.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/common/IoSession.java Wed Mar 22 23:39:27 2006
@@ -275,6 +275,12 @@
     int getScheduledWriteRequests();
 
     /**
+     * Returns the number of bytes which are scheduled to be written to this
+     * session.
+     */
+    int getScheduledWriteBytes();
+
+    /**
      * Returns the time in millis when this session is created.
      */
     long getCreationTime();

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java Wed Mar 22 23:39:27 2006
@@ -155,7 +155,15 @@
             return writeRequestQueue.size();
         }
     }
-
+    
+    public int getScheduledWriteBytes()
+    {
+        synchronized( writeRequestQueue )
+        {
+            return writeRequestQueue.byteSize();
+        }
+    }
+    
     public TransportType getTransportType()
     {
         return TransportType.DATAGRAM;

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/SocketSessionImpl.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/SocketSessionImpl.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/SocketSessionImpl.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/support/SocketSessionImpl.java Wed Mar 22 23:39:27 2006
@@ -162,6 +162,14 @@
         }
     }
 
+    public int getScheduledWriteBytes()
+    {
+        synchronized( writeRequestQueue )
+        {
+            return writeRequestQueue.byteSize();
+        }
+    }
+    
     protected void write0( WriteRequest writeRequest )
     {
         filterChain.filterWrite( this, writeRequest );

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java Wed Mar 22 23:39:27 2006
@@ -156,6 +156,11 @@
         return 0;
     }
 
+    public int getScheduledWriteBytes()
+    {
+        return 0;
+    }
+    
     public TransportType getTransportType()
     {
         return TransportType.VM_PIPE;

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/util/Queue.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/util/Queue.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/util/Queue.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/util/Queue.java Wed Mar 22 23:39:27 2006
@@ -24,6 +24,8 @@
 import java.util.List;
 import java.util.NoSuchElementException;
 
+import org.apache.mina.common.ByteBuffer;
+
 /**
  * A unbounded circular queue.
  * 
@@ -162,6 +164,43 @@
     public int size()
     {
         return size;
+    }
+    
+    /**
+     * Returns the sum of the '<tt>remaining</tt>' of all {@link ByteBuffer}s
+     * in this queue.
+     * 
+     * @throws ClassCastException if an element is not a {@link ByteBuffer}
+     */
+    public int byteSize()
+    {
+        if( isEmpty() )
+        {
+            return 0;
+        }
+        
+        int byteSize = 0;
+        
+        if( first < last )
+        {
+            for( int i = first; i < last; i++ )
+            {
+                byteSize += ( ( ByteBuffer ) items[ i ] ).remaining();
+            }
+        }
+        else
+        {
+            for( int i = first; i < items.length; i++ )
+            {
+                byteSize += ( ( ByteBuffer ) items[ i ] ).remaining();
+            }
+            for( int i = last - 1; i >= 0; i-- )
+            {
+                byteSize += ( ( ByteBuffer ) items[ i ] ).remaining();
+            }
+        }
+        
+        return byteSize;
     }
     
     public String toString()

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/common/FutureTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/common/FutureTest.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/common/FutureTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/common/FutureTest.java Wed Mar 22 23:39:27 2006
@@ -112,8 +112,14 @@
                 return null;
             }
 
-            public SocketAddress getServiceAddress() {
+            public SocketAddress getServiceAddress()
+            {
                 return null;
+            }
+
+            public int getScheduledWriteBytes()
+            {
+                return 0;
             }
         };
         

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/common/IoFilterChainTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/common/IoFilterChainTest.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/common/IoFilterChainTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/common/IoFilterChainTest.java Wed Mar 22 23:39:27 2006
@@ -308,6 +308,10 @@
         public SocketAddress getServiceAddress() {
             return null;
         }
+
+        public int getScheduledWriteBytes() {
+            return 0;
+        }
     }
 
     private class EventOrderTestFilter extends IoFilterAdapter
@@ -430,8 +434,14 @@
                     return null;
                 }
 
-                public SocketAddress getServiceAddress() {
+                public SocketAddress getServiceAddress()
+                {
                     return null;
+                }
+
+                public int getScheduledWriteBytes()
+                {
+                    return 0;
                 }
             } );
         }

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java Wed Mar 22 23:39:27 2006
@@ -197,9 +197,15 @@
             return null;
         }
 
-        public SocketAddress getServiceAddress() {
+        public SocketAddress getServiceAddress()
+        {
             return null;
         }
+
+        public int getScheduledWriteBytes()
+        {
+            return 0;
+        }
     }
     
     private static class EventOrderChecker implements NextFilter
@@ -310,8 +316,14 @@
             return null;
         }
 
-        public SocketAddress getServiceAddress() {
+        public SocketAddress getServiceAddress()
+        {
             return null;
+        }
+
+        public int getScheduledWriteBytes()
+        {
+            return 0;
         }
     }
     

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java Wed Mar 22 23:39:27 2006
@@ -239,8 +239,14 @@
             return null;
         }
 
-        public SocketAddress getServiceAddress() {
+        public SocketAddress getServiceAddress()
+        {
             return null;
+        }
+
+        public int getScheduledWriteBytes()
+        {
+            return 0;
         }
     }
 }

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java Wed Mar 22 23:39:27 2006
@@ -225,8 +225,14 @@
             return null;
         }
 
-        public SocketAddress getServiceAddress() {
+        public SocketAddress getServiceAddress()
+        {
             return null;
+        }
+
+        public int getScheduledWriteBytes()
+        {
+            return 0;
         }
     }
 }

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java Wed Mar 22 23:39:27 2006
@@ -119,8 +119,14 @@
             return null;
         }
 
-        public SocketAddress getServiceAddress() {
+        public SocketAddress getServiceAddress()
+        {
             return null;
+        }
+
+        public int getScheduledWriteBytes()
+        {
+            return 0;
         }
     }
 }

Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/handler/chain/ChainedIoHandlerTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/test/java/org/apache/mina/handler/chain/ChainedIoHandlerTest.java?rev=388086&r1=388085&r2=388086&view=diff
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/handler/chain/ChainedIoHandlerTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/handler/chain/ChainedIoHandlerTest.java Wed Mar 22 23:39:27 2006
@@ -99,8 +99,14 @@
                         return null;
                     }
 
-                    public SocketAddress getServiceAddress() {
+                    public SocketAddress getServiceAddress()
+                    {
                         return null;
+                    }
+
+                    public int getScheduledWriteBytes()
+                    {
+                        return 0;
                     }
                 }, null );