Author: furfari
Date: Tue Sep 23 09:51:36 2008
New Revision: 698239

URL: http://svn.apache.org/viewvc?rev=698239&view=rev
Log:
Added subscription removal

Modified:
    
felix/sandbox/furfari/Bug-642/tester/src/main/java/org/apache/felix/upnp/tester/Activator.java

Modified: 
felix/sandbox/furfari/Bug-642/tester/src/main/java/org/apache/felix/upnp/tester/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/furfari/Bug-642/tester/src/main/java/org/apache/felix/upnp/tester/Activator.java?rev=698239&r1=698238&r2=698239&view=diff
==============================================================================
--- 
felix/sandbox/furfari/Bug-642/tester/src/main/java/org/apache/felix/upnp/tester/Activator.java
 (original)
+++ 
felix/sandbox/furfari/Bug-642/tester/src/main/java/org/apache/felix/upnp/tester/Activator.java
 Tue Sep 23 09:51:36 2008
@@ -22,6 +22,7 @@
 
 import java.util.Dictionary;
 import java.util.HashMap;
+import java.util.Iterator;
 
 import org.apache.felix.upnp.basedriver.importer.core.event.thread.SubScriber;
 import org.apache.felix.upnp.tester.discovery.DeviceNode;
@@ -56,18 +57,28 @@
 
        }
 
-       public void doTest(){
+       private DeviceNodeListener deviceListener;
+       private HashMap map = new HashMap();
+
+//     private long discoveryStart;
+//     private long discoveryStop;
+//     private long notifyStop;
+       public void doTest(){
                System.out.println("starting test");
-               listener = new RootDeviceListener();
-               listener.setDeviceNodeListener(new DeviceNodeListener(){
-                       HashMap map = new HashMap();
+               deviceListener =  new DeviceNodeListener(){
                    int countNotify = 1;
                    int countDevices = 1;
+                   
+                   
                        public void deviceDetected(DeviceNode d) {
+//                             if (countDevices == 1) discoveryStart = 
System.currentTimeMillis();
+//                             discoveryStop = System.currentTimeMillis();
                                String udn = d.toString();
                                System.out.println("device DETECTED " + udn + " 
### " + countDevices++);
                           UPnPSubscriber subscriber = new 
UPnPSubscriber(context, new UPnPEventListener(){
+
                                        public void notifyUPnPEvent(String 
arg0, String arg1, Dictionary arg2) {
+//                                             notifyStop = 
System.currentTimeMillis();
                                                System.out.println(arg0 + " " + 
arg1 + arg2.toString() + "  " + countNotify++);
                                        }                                       
                            });
@@ -80,17 +91,32 @@
                                UPnPSubscriber subscriber = 
(UPnPSubscriber)map.remove(udn);
                                subscriber.unsubscribeAllServicesOF(udn);
                                if (countDevices==1) countNotify =1;
-                       }
-                       
-               });
+                       }                       
+               };
+               
+               
+               listener = new RootDeviceListener();
+               listener.setDeviceNodeListener(deviceListener);
                listener.activate();
                
        }
        /**
         * @see 
org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
         */
+       public void clearSubscriptions(){
+               System.out.println("removing subscripions ...");
+               Iterator i = map.keySet().iterator();
+               while (i.hasNext()){
+                       String udn = (String) i.next();
+                       UPnPSubscriber subscriber = 
(UPnPSubscriber)map.get(udn);
+                       subscriber.unsubscribeAllServicesOF(udn);
+               }
+               map.clear();
+       }
        public void stop(BundleContext context) throws Exception {
+//             System.out.println("Device discovery time : " +(discoveryStop - 
discoveryStart) /*+ "\nNotify time: " + (notifyStop - discoveryStart )*/);
                cp.close();
+               clearSubscriptions();
                Activator.context=null;
        }
 }


Reply via email to