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