You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/09/19 11:32:00 UTC

svn commit: r1524668 - in /tomcat/trunk/java/org/apache/tomcat/websocket: FutureToSendHandler.java WsRemoteEndpointImplBase.java

Author: markt
Date: Thu Sep 19 09:32:00 2013
New Revision: 1524668

URL: http://svn.apache.org/r1524668
Log:
Extract FutureToSendHandler to a separate file

Added:
    tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java   (with props)
Modified:
    tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java

Added: tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java?rev=1524668&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java (added)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java Thu Sep 19 09:32:00 2013
@@ -0,0 +1,90 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tomcat.websocket;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import javax.websocket.SendHandler;
+import javax.websocket.SendResult;
+
+/**
+ * Converts a Future to a SendHandler.
+ */
+class FutureToSendHandler implements Future<Void>, SendHandler {
+
+    private final CountDownLatch latch = new CountDownLatch(1);
+    private volatile SendResult result = null;
+
+    // --------------------------------------------------------- SendHandler
+
+    @Override
+    public void onResult(SendResult result) {
+        this.result = result;
+        latch.countDown();
+    }
+
+
+    // -------------------------------------------------------------- Future
+
+    @Override
+    public boolean cancel(boolean mayInterruptIfRunning) {
+        // Cancelling the task is not supported
+        return false;
+    }
+
+    @Override
+    public boolean isCancelled() {
+        // Cancelling the task is not supported
+        return false;
+    }
+
+    @Override
+    public boolean isDone() {
+        return latch.getCount() == 0;
+    }
+
+    @Override
+    public Void get() throws InterruptedException,
+            ExecutionException {
+        latch.await();
+        if (result.getException() != null) {
+            throw new ExecutionException(result.getException());
+        }
+        return null;
+    }
+
+    @Override
+    public Void get(long timeout, TimeUnit unit)
+            throws InterruptedException, ExecutionException,
+            TimeoutException {
+        boolean retval = latch.await(timeout, unit);
+        if (retval == false) {
+            throw new TimeoutException();
+        }
+        if (result.getException() != null) {
+            throw new ExecutionException(result.getException());
+        }
+        return null;
+    }
+}
+
+
+

Propchange: tomcat/trunk/java/org/apache/tomcat/websocket/FutureToSendHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java?rev=1524668&r1=1524667&r2=1524668&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java Thu Sep 19 09:32:00 2013
@@ -27,7 +27,6 @@ import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Queue;
-import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
@@ -741,69 +740,6 @@ public abstract class WsRemoteEndpointIm
         }
     }
 
-    /**
-     * Converts a Future to a SendHandler.
-     */
-    private static class FutureToSendHandler
-            implements Future<Void>, SendHandler {
-
-        private final CountDownLatch latch = new CountDownLatch(1);
-        private volatile SendResult result = null;
-
-        // --------------------------------------------------------- SendHandler
-
-        @Override
-        public void onResult(SendResult result) {
-            this.result = result;
-            latch.countDown();
-        }
-
-
-        // -------------------------------------------------------------- Future
-
-        @Override
-        public boolean cancel(boolean mayInterruptIfRunning) {
-            // Cancelling the task is not supported
-            return false;
-        }
-
-        @Override
-        public boolean isCancelled() {
-            // Cancelling the task is not supported
-            return false;
-        }
-
-        @Override
-        public boolean isDone() {
-            return latch.getCount() == 0;
-        }
-
-        @Override
-        public Void get() throws InterruptedException,
-                ExecutionException {
-            latch.await();
-            if (result.getException() != null) {
-                throw new ExecutionException(result.getException());
-            }
-            return null;
-        }
-
-        @Override
-        public Void get(long timeout, TimeUnit unit)
-                throws InterruptedException, ExecutionException,
-                TimeoutException {
-            boolean retval = latch.await(timeout, unit);
-            if (retval == false) {
-                throw new TimeoutException();
-            }
-            if (result.getException() != null) {
-                throw new ExecutionException(result.getException());
-            }
-            return null;
-        }
-    }
-
-
     private static class WsOutputStream extends OutputStream {
 
         private final WsRemoteEndpointImplBase endpoint;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org