[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mina-commits
Subject:    svn commit: r561368 - in
From:       jvermillard () apache ! org
Date:       2007-07-31 16:02:42
Message-ID: 20070731160243.16AA91A981C () eris ! apache ! org
[Download RAW message or body]

Author: jvermillard
Date: Tue Jul 31 09:02:41 2007
New Revision: 561368

URL: http://svn.apache.org/viewvc?view=rev&rev=561368
Log:
more APR to come

Modified:
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java
  mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java
  mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java
  mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java
  mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java


Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java
                
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java?view=diff&rev=561368&r1=561367&r2=561368
 ==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java \
                (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRConnector.java \
Tue Jul 31 09:02:41 2007 @@ -86,13 +86,11 @@
 			inetAddr = Address.info(sockAddr.getHostName(), Socket.APR_INET,
 					sockAddr.getPort(), 0, pool);
 
-			// FIXME : type of socket need to be configurable
-
+			// TODO : type of socket need to be configurable
 			long clientSock = Socket.create(Socket.APR_INET,
 					Socket.SOCK_STREAM, Socket.APR_PROTO_TCP, pool);
-			System.err.println("Socket.create(..) : "+clientSock);
 			
-			// TODO: error checking ???
+			// FIXME : error checking
 			int ret = Socket.connect(clientSock, inetAddr);
 			System.err.println("Socket.connect : " + ret);
 			if (localAddress != null) {
@@ -143,4 +141,9 @@
 		return ioProcessors[processorDistributor % processorCount];
 	}
 
+	@Override
+	protected void finalize() throws Throwable {
+//		 TODO : necessary I think, need to check APR doc
+		Pool.clear(pool);
+	}
 }

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java
                
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apach \
e/mina/transport/apr/APRIoProcessor.java?view=diff&rev=561368&r1=561367&r2=561368 \
                ==============================================================================
                
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java \
                (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java \
Tue Jul 31 09:02:41 2007 @@ -59,7 +59,7 @@
 		try {
 
 			// TODO : optimize/parametrize those values
-			pollset = Poll.create(32, pool, /* obviously doesn't work..*/ \
Poll.APR_POLLSET_THREADSAFE, 10000000);	 +			pollset = Poll.create(32, pool, \
Poll.APR_POLLSET_THREADSAFE /* enable poll thread safeness */, 10000000);	  
 		} catch (Error e) {
 			logger.error("APR Error : " + e.getDescription(), e);
@@ -109,8 +109,7 @@
 				break;
 			}
 
-			// polling the socket for write and read
-			// FIXME : perhaps we should oll write only if needed for save CPU, but actually \
it's too complex for me :) +			// polling the socket for read
 			System.err.println("pollset : "+pollset);
 			System.err.println("Socket : "+session.getAPRSocket());
 			int rv;
@@ -125,7 +124,7 @@
 			} else {
 				// FIXME: find a way to bring the real APR error from returned codes
 				session.getFilterChain().fireExceptionCaught(session,
-						new RuntimeException("APR Error"));
+						new RuntimeException("APR Error : "+Error.strerror(rv)));
 			}	
 		}
 	}
@@ -329,7 +328,6 @@
 					if (rv > 0) {
 						for (int n = 0; n < rv; n++) {
 							long clientSock = desc[n * 2 + 1];
-							//logger.debug("Poll flags " + desc[n * 2]);
 
 							APRSessionImpl session = managedSessions
 									.get(clientSock);
@@ -359,5 +357,11 @@
 				}
 			}
 		}
+	}
+	
+	@Override
+	protected void finalize() throws Throwable {
+		// TODO : necessary I think, need to check APR doc
+		Pool.clear(pool);
 	}
 }

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java
                
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apach \
e/mina/transport/apr/APRSessionConfig.java?view=diff&rev=561368&r1=561367&r2=561368 \
                ==============================================================================
                
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java \
                (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionConfig.java \
Tue Jul 31 09:02:41 2007 @@ -1,7 +1,99 @@
 package org.apache.mina.transport.apr;
 
+import java.net.Socket;
+
 import org.apache.mina.common.IoSessionConfig;
 
 public interface APRSessionConfig extends IoSessionConfig {
+	
+    /**
+     * @see Socket#getReuseAddress()
+     */
+    boolean isReuseAddress();
+
+    /**
+     * @see Socket#setReuseAddress(boolean)
+     */
+    void setReuseAddress(boolean reuseAddress);
+
+    /**
+     * @see Socket#getReceiveBufferSize()
+     */
+    int getReceiveBufferSize();
+
+    /**
+     * @see Socket#setReceiveBufferSize(int)
+     */
+    void setReceiveBufferSize(int receiveBufferSize);
+
+    /**
+     * @see Socket#getSendBufferSize()
+     */
+    int getSendBufferSize();
+
+    /**
+     * @see Socket#setSendBufferSize(int)
+     */
+    void setSendBufferSize(int sendBufferSize);
+
+    /**
+     * @see Socket#getTrafficClass()
+     */
+    int getTrafficClass();
+
+    /**
+     * @see Socket#setTrafficClass(int)
+     */
+    void setTrafficClass(int trafficClass);
+
+    /**
+     * @see Socket#getKeepAlive()
+     */
+    boolean isKeepAlive();
+
+    /**
+     * @see Socket#setKeepAlive(boolean)
+     */
+    void setKeepAlive(boolean keepAlive);
+
+    /**
+     * @see Socket#getOOBInline()
+     */
+    boolean isOobInline();
+
+    /**
+     * @see Socket#setOOBInline(boolean)
+     */
+    void setOobInline(boolean oobInline);
+
+    /**
+     * Please note that enabling <tt>SO_LINGER</tt> in Java NIO can result
+     * in platform-dependent behavior and unexpected blocking of I/O thread.
+     * 
+     * @see Socket#getSoLinger()
+     * @see <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6179351">Sun \
Bug Database</a> +     */
+    int getSoLinger();
+
+    /**
+     * Please note that enabling <tt>SO_LINGER</tt> in Java NIO can result
+     * in platform-dependent behavior and unexpected blocking of I/O thread.
+     * 
+     * @param soLinger Please specify a negative value to disable \
<tt>SO_LINGER</tt>. +     * 
+     * @see Socket#setSoLinger(boolean, int)
+     * @see <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6179351">Sun \
Bug Database</a> +     */
+    void setSoLinger(int soLinger);
+
+    /**
+     * @see Socket#getTcpNoDelay()
+     */
+    boolean isTcpNoDelay();
+
+    /**
+     * @see Socket#setTcpNoDelay(boolean)
+     */
+    void setTcpNoDelay(boolean tcpNoDelay);
 
 }

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java
                
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apach \
e/mina/transport/apr/APRSessionImpl.java?view=diff&rev=561368&r1=561367&r2=561368 \
                ==============================================================================
                
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java \
                (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRSessionImpl.java \
Tue Jul 31 09:02:41 2007 @@ -1,7 +1,6 @@
 package org.apache.mina.transport.apr;
 
 import java.net.InetSocketAddress;
-import java.net.SocketAddress;
 import java.util.LinkedList;
 import java.util.Queue;
 
@@ -12,14 +11,13 @@
 import org.apache.mina.common.TransportType;
 import org.apache.mina.common.WriteRequest;
 import org.apache.mina.common.support.BaseIoSession;
-import org.apache.mina.common.support.BaseIoSessionConfig;
 
 public class APRSessionImpl extends BaseIoSession implements APRSession {
 	private long socket;
 
 	private final IoService service;
 
-	private final APRSessionConfig config = new APRSessionConfigImpl();
+	private final APRSessionConfig config = new DefaultAPRSessionConfig();
 
 	private final APRIoProcessor ioProcessor;
 
@@ -31,8 +29,6 @@
 
 	private byte[] readBuffer=new byte[1024]; //FIXME : fixed rcvd buffer, need to \
change that to a config value  
-	private int readBufferSize;
-
 	private final InetSocketAddress remoteAddress;
 
 	private final InetSocketAddress localAddress;
@@ -124,14 +120,5 @@
 	@Override
 	public InetSocketAddress getServiceAddress() {
 		return (InetSocketAddress) super.getServiceAddress();
-	}
-
-	private class APRSessionConfigImpl extends BaseIoSessionConfig implements
-			APRSessionConfig {
-
-	}
-	@Override
-	protected void write0(WriteRequest writeRequest) {
-		filterChain.fireFilterWrite(this, writeRequest);
 	}
 }

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java
                
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apach \
e/mina/transport/apr/DefaultAPRSessionConfig.java?view=diff&rev=561368&r1=561367&r2=561368
 ==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java \
                (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/DefaultAPRSessionConfig.java \
Tue Jul 31 09:02:41 2007 @@ -3,5 +3,85 @@
 import org.apache.mina.common.support.BaseIoSessionConfig;
 
 public class DefaultAPRSessionConfig extends BaseIoSessionConfig implements \
APRSessionConfig { +
+	public int getReceiveBufferSize() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public int getSendBufferSize() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public int getSoLinger() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public int getTrafficClass() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public boolean isKeepAlive() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean isOobInline() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean isReuseAddress() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean isTcpNoDelay() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public void setKeepAlive(boolean keepAlive) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setOobInline(boolean oobInline) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setReceiveBufferSize(int receiveBufferSize) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setReuseAddress(boolean reuseAddress) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setSendBufferSize(int sendBufferSize) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setSoLinger(int soLinger) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setTcpNoDelay(boolean tcpNoDelay) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void setTrafficClass(int trafficClass) {
+		// TODO Auto-generated method stub
+		
+	}
 	
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic