Author: apaliwal
Date: Thu Aug 19 12:45:23 2010
New Revision: 987151

URL: http://svn.apache.org/viewvc?rev=987151&view=rev
Log:
Completed the listener add/remove code, moving to appropriate classes

Modified:
    
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
    
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
    
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java

Modified: 
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
URL: 
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java?rev=987151&r1=987150&r2=987151&view=diff
==============================================================================
--- 
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
 (original)
+++ 
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
 Thu Aug 19 12:45:23 2010
@@ -19,23 +19,60 @@
  */
 package org.apache.mina.service;
 
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
 import org.apache.mina.IoService;
+import org.apache.mina.IoServiceListener;
 import org.apache.mina.IoSession;
 
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Base implementation for {...@link IoService}s.
  *
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public abstract class AbstractIoService implements IoService {
+
+    static final Logger LOG = LoggerFactory.getLogger(AbstractIoService.class);
     
-   private final Map<Long, IoSession> managedSessions = new 
ConcurrentHashMap<Long, IoSession>();
+    private final Map<Long, IoSession> managedSessions = new 
ConcurrentHashMap<Long, IoSession>();
+
+    /**
+     * Placeholder for storing all the listeners added
+     */
+    private final List<IoServiceListener> listeners = new 
CopyOnWriteArrayList<IoServiceListener>(); 
 
     @Override
     public Map<Long, IoSession> getManagedSessions() {
         return managedSessions;
     }
-}
+
+    /**
+     *
+     * {...@inheritdoc}
+     */
+    @Override
+    public void addListener(IoServiceListener listener) {
+        if(listener != null) {
+            listeners.add(listener);
+            return;
+        }
+
+        LOG.warn("Trying to add Null Listener");
+    }
+
+    /**
+     *
+     * {...@inheritdoc}
+     */
+    @Override
+    public void removeListener(IoServiceListener listener) {
+        if(listener != null) {
+            listeners.remove(listener);    
+        }
+    }
+}
\ No newline at end of file

Modified: 
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
URL: 
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java?rev=987151&r1=987150&r2=987151&view=diff
==============================================================================
--- 
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
 (original)
+++ 
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
 Thu Aug 19 12:45:23 2010
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.mina.IoServiceListener;
 import org.apache.mina.service.AbstractIoAcceptor;
 import org.apache.mina.service.SelectorStrategy;
 import org.slf4j.Logger;
@@ -92,4 +93,6 @@ public class NioSocketAcceptor extends A
             unbind(socketAddress);
         }
     }
+
+    
 }
\ No newline at end of file

Modified: 
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java
URL: 
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java?rev=987151&r1=987150&r2=987151&view=diff
==============================================================================
--- 
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java
 (original)
+++ 
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java
 Thu Aug 19 12:45:23 2010
@@ -54,6 +54,7 @@ public class NioAcceptorTest {
             LOG.debug("Unbinding");
             
             acceptor.unbind(new InetSocketAddress(9999));
+            
             LOG.debug("Trying to rebind the freed port");            
             acceptor.bind(new InetSocketAddress(9999));
             LOG.debug("Bound");


Reply via email to