Changeset 105 for java/main/src/main/java/com/framsticks/util/dispatching
- Timestamp:
- 09/10/13 21:11:41 (11 years ago)
- Location:
- java/main/src/main/java/com/framsticks/util/dispatching
- Files:
-
- 1 added
- 2 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/util/dispatching/BufferedDispatcher.java
r102 r105 92 92 93 93 public void createThreadIfNeeded() { 94 if (targetDispatcher != null) { 95 return; 94 synchronized (this) { 95 if (targetDispatcher != null) { 96 return; 97 } 96 98 } 97 99 this.setTargetDispatcher(new Thread<C>().setName(parent.getName())); … … 104 106 105 107 @Override 106 protected void joinableStart() {108 protected synchronized void joinableStart() { 107 109 Dispatching.use(targetDispatcher, this); 108 110 } 109 111 110 112 @Override 111 protected void joinableInterrupt() {113 protected synchronized void joinableInterrupt() { 112 114 Dispatching.drop(targetDispatcher, this); 113 115 … … 121 123 122 124 @Override 123 protected void joinableJoin() throws InterruptedException {125 protected synchronized void joinableJoin() throws InterruptedException { 124 126 Dispatching.join(targetDispatcher); 125 127 } -
java/main/src/main/java/com/framsticks/util/dispatching/Dispatching.java
r102 r105 7 7 import org.apache.logging.log4j.LogManager; 8 8 9 import com.framsticks.util.ExceptionHandler; 9 10 import com.framsticks.util.FramsticksException; 10 11 import com.framsticks.util.Misc; … … 141 142 } 142 143 143 public interface Query<T> extends Exception ResultHandler {144 public interface Query<T> extends ExceptionHandler { 144 145 T get(); 145 146 } 146 147 147 148 public static abstract class QueryHandler<T> implements Query<T> { 148 Exception ResultHandler handler;149 ExceptionHandler handler; 149 150 150 151 /** 151 152 * @param handler 152 153 */ 153 public QueryHandler(Exception ResultHandler handler) {154 public QueryHandler(ExceptionHandler handler) { 154 155 this.handler = handler; 155 156 } … … 244 245 245 246 protected final double timeOut; 246 protected final Exception ResultHandler handler;247 protected final ExceptionHandler handler; 247 248 248 249 /** 249 250 * @param timeOut 250 251 */ 251 public Waiter(double timeOut, Exception ResultHandler handler) {252 public Waiter(double timeOut, ExceptionHandler handler) { 252 253 this.timeOut = timeOut; 253 254 this.handler = handler; … … 273 274 } 274 275 275 public <T> Future <T> passInFuture(Class<T> type) {276 return new Future Handler<T>(handler) {276 public <T> FutureHandler<T> passInFuture(Class<T> type) { 277 return new Future<T>(handler) { 277 278 @Override 278 279 protected void result(T result) { -
java/main/src/main/java/com/framsticks/util/dispatching/DispatchingExceptionHandler.java
r100 r105 1 1 package com.framsticks.util.dispatching; 2 2 3 import com.framsticks.util.ExceptionHandler; 3 4 import com.framsticks.util.FramsticksException; 4 5 5 public class DispatchingExceptionHandler implements Exception ResultHandler {6 public class DispatchingExceptionHandler implements ExceptionHandler { 6 7 7 8 protected final Dispatcher<?> dispatcher; 8 protected final Exception ResultHandler handler;9 protected final ExceptionHandler handler; 9 10 10 11 /** … … 12 13 * @param handler 13 14 */ 14 public DispatchingExceptionHandler(Dispatcher<?> dispatcher, Exception ResultHandler handler) {15 public DispatchingExceptionHandler(Dispatcher<?> dispatcher, ExceptionHandler handler) { 15 16 this.dispatcher = dispatcher; 16 17 this.handler = handler; -
java/main/src/main/java/com/framsticks/util/dispatching/DispatchingFuture.java
r100 r105 3 3 import com.framsticks.util.FramsticksException; 4 4 5 public class DispatchingFuture<C, T> extends Future <T> {5 public class DispatchingFuture<C, T> extends FutureHandler<T> { 6 6 7 7 protected final Dispatcher<? super C> dispatcher; 8 protected final Future <T> future;8 protected final FutureHandler<T> future; 9 9 10 10 /** … … 12 12 * @param future 13 13 */ 14 public DispatchingFuture(Dispatcher<? super C> dispatcher, Future <T> future) {14 public DispatchingFuture(Dispatcher<? super C> dispatcher, FutureHandler<T> future) { 15 15 this.dispatcher = dispatcher; 16 16 this.future = future; … … 37 37 } 38 38 39 public static <Ca, Ta> Future <Ta> create(Dispatcher<Ca> dispatcher, Future<Ta> future) {39 public static <Ca, Ta> FutureHandler<Ta> create(Dispatcher<Ca> dispatcher, FutureHandler<Ta> future) { 40 40 return new DispatchingFuture<Ca, Ta>(dispatcher, future); 41 41 } -
java/main/src/main/java/com/framsticks/util/dispatching/Future.java
r97 r105 1 1 package com.framsticks.util.dispatching; 2 2 3 import com.framsticks.util.ExceptionHandler; 3 4 import com.framsticks.util.FramsticksException; 4 5 5 /** 6 * @author Piotr Sniegowski 7 */ 8 public abstract class Future<T> implements ExceptionResultHandler { 6 public abstract class Future<T> extends FutureHandler<T> { 9 7 10 protected abstract void result(T result);8 protected final ExceptionHandler handler; 11 9 12 public final void pass(T result) { 13 try { 14 result(result); 15 } catch (FramsticksException e) { 16 handle(e); 17 } 10 public Future(ExceptionHandler handler) { 11 assert handler != null; 12 this.handler = handler; 18 13 } 19 14 15 @Override 16 public final void handle(FramsticksException exception) { 17 handler.handle(exception); 18 } 19 20 public static <T> Future<T> doNothing(Class<T> type, ExceptionHandler handler) { 21 return new Future<T>(handler) { 22 23 @Override 24 protected void result(T result) { 25 26 } 27 }; 28 } 20 29 21 30 } -
java/main/src/main/java/com/framsticks/util/dispatching/FutureHandler.java
r99 r105 1 1 package com.framsticks.util.dispatching; 2 2 3 import com.framsticks.util.ExceptionHandler; 3 4 import com.framsticks.util.FramsticksException; 4 5 5 public abstract class FutureHandler<T> extends Future<T> { 6 /** 7 * @author Piotr Sniegowski 8 */ 9 public abstract class FutureHandler<T> implements ExceptionHandler { 6 10 7 protected final ExceptionResultHandler handler;11 protected abstract void result(T result); 8 12 9 public FutureHandler(ExceptionResultHandler handler) { 10 assert handler != null; 11 this.handler = handler; 13 public final void pass(T result) { 14 try { 15 result(result); 16 } catch (FramsticksException e) { 17 handle(e); 18 } 12 19 } 13 14 @Override15 public final void handle(FramsticksException exception) {16 handler.handle(exception);17 }18 19 public static <T> FutureHandler<T> doNothing(Class<T> type, ExceptionResultHandler handler) {20 return new FutureHandler<T>(handler) {21 22 @Override23 protected void result(T result) {24 25 }26 };27 }28 29 20 } -
java/main/src/main/java/com/framsticks/util/dispatching/IgnoreExceptionHandler.java
r99 r105 1 1 package com.framsticks.util.dispatching; 2 2 3 import com.framsticks.util.ExceptionHandler; 3 4 import com.framsticks.util.FramsticksException; 4 5 5 public class IgnoreExceptionHandler implements Exception ResultHandler {6 public class IgnoreExceptionHandler implements ExceptionHandler { 6 7 7 8 private static final IgnoreExceptionHandler instance = new IgnoreExceptionHandler(); -
java/main/src/main/java/com/framsticks/util/dispatching/Monitor.java
r102 r105 104 104 } 105 105 106 protected Exception Handler taskExceptionHandler;106 protected ExceptionDispatcherHandler taskExceptionHandler; 107 107 108 108 /** 109 109 * @return the taskExceptionHandler 110 110 */ 111 public Exception Handler getTaskExceptionHandler() {111 public ExceptionDispatcherHandler getTaskExceptionHandler() { 112 112 return taskExceptionHandler; 113 113 } … … 116 116 * @param taskExceptionHandler the taskExceptionHandler to set 117 117 */ 118 public void setTaskExceptionHandler(Exception Handler taskExceptionHandler) {118 public void setTaskExceptionHandler(ExceptionDispatcherHandler taskExceptionHandler) { 119 119 this.taskExceptionHandler = taskExceptionHandler; 120 120 } -
java/main/src/main/java/com/framsticks/util/dispatching/RunAt.java
r97 r105 1 1 package com.framsticks.util.dispatching; 2 2 3 import com.framsticks.util.ExceptionHandler; 3 4 import com.framsticks.util.FramsticksException; 4 5 5 public abstract class RunAt<C> implements Exception ResultHandler, Runnable {6 public abstract class RunAt<C> implements ExceptionHandler, Runnable { 6 7 7 protected final Exception ResultHandler handler;8 protected final ExceptionHandler handler; 8 9 9 public RunAt(Exception ResultHandler handler) {10 public RunAt(ExceptionHandler handler) { 10 11 assert handler != null; 11 12 this.handler = handler; -
java/main/src/main/java/com/framsticks/util/dispatching/Thread.java
r102 r105 46 46 log.debug("starting thread {}", this); 47 47 assert getMonitor() != null; 48 ExceptionHandler exceptionHandler = getMonitor().getTaskExceptionHandler();49 48 while (!java.lang.Thread.interrupted()) { 50 49 RunAt<? extends C> runnable; … … 64 63 runnable.run(); 65 64 } catch (Exception e) { 65 final ExceptionDispatcherHandler exceptionHandler = getMonitor().getTaskExceptionHandler(); 66 66 if (exceptionHandler != null) { 67 67 if (exceptionHandler.handle(this, e)) { … … 122 122 // @Override 123 123 // public String toString() { 124 // 124 // return getName(); 125 125 // } 126 126 -
java/main/src/main/java/com/framsticks/util/dispatching/ThrowExceptionHandler.java
r97 r105 1 1 package com.framsticks.util.dispatching; 2 2 3 import com.framsticks.util.ExceptionHandler; 3 4 import com.framsticks.util.FramsticksException; 4 5 5 public class ThrowExceptionHandler implements Exception ResultHandler {6 public class ThrowExceptionHandler implements ExceptionHandler { 6 7 7 8 private static final ThrowExceptionHandler instance = new ThrowExceptionHandler();
Note: See TracChangeset
for help on using the changeset viewer.