Author: fhanik
Date: Mon May 28 08:16:13 2007
New Revision: 542247

URL: http://svn.apache.org/viewvc?view=rev&rev=542247
Log:
implement method callbacks

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java?view=diff&rev=542247&r1=542246&r2=542247
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java Mon May 
28 08:16:13 2007
@@ -74,6 +74,11 @@
      */
     protected HashSet<CometOperation> cometOperations = new 
HashSet<CometOperation>(3);
     
+    /**
+     * Current set of configurations
+     */
+    protected HashSet<CometConfiguration> cometConfigurations = new 
HashSet<CometConfiguration>(3);
+
     protected WorkerThreadCheck threadCheck = new WorkerThreadCheck();
 
     private static final Object threadCheckHolder = new Object();
@@ -139,31 +144,47 @@
     public void configure(CometEvent.CometConfiguration... options)
         throws IOException, IllegalStateException {
         checkWorkerThread();
-        throw new UnsupportedOperationException();
+        synchronized (cometConfigurations) {
+            cometConfigurations.clear();
+            for (CometEvent.CometConfiguration cc : options) {
+                cometConfigurations.add(cc);
+            }
+            request.action(ActionCode.ACTION_COMET_CONFIGURE,options);
+        }
     }
 
     public void register(CometEvent.CometOperation... operations)
         throws IOException, IllegalStateException {
-        //add it to the registered set
-        for (CometEvent.CometOperation co : operations ) {
-            if ( !cometOperations.contains(co) ) {
-                cometOperations.add(co);
-                //TODO notify poller
+        synchronized (cometOperations) {
+            //add it to the registered set
+            for (CometEvent.CometOperation co : operations) {
+                if (!cometOperations.contains(co)) {
+                    cometOperations.add(co);
+                    request.action(ActionCode.ACTION_COMET_REGISTER, co);
+                }
             }
         }
     }
 
     public void unregister(CometOperation... operations)
         throws IOException, IllegalStateException {
-        throw new UnsupportedOperationException();
+        synchronized (cometOperations) {
+            //remove from the registered set
+            for (CometEvent.CometOperation co : operations) {
+                if (cometOperations.contains(co)) {
+                    cometOperations.remove(co);
+                    request.action(ActionCode.ACTION_COMET_UNREGISTER, co);
+                }
+            }
+        }
     }
     
     public CometConfiguration[] getConfiguration() {
-        throw new UnsupportedOperationException();
+        return (CometConfiguration[])cometConfigurations.toArray(new 
CometConfiguration[0]);
     }
     
     public CometOperation[] getRegisteredOps() {
-        throw new UnsupportedOperationException();        
+        return (CometOperation[])cometOperations.toArray(new 
CometOperation[0]);
     }
     
     public String toString() {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to