/[projects]/CircuitBreaker/src/dk/thoerup/circuitbreaker/notification/AsyncNotifier.java
ViewVC logotype

Diff of /CircuitBreaker/src/dk/thoerup/circuitbreaker/notification/AsyncNotifier.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1160 by torben, Fri Oct 1 11:40:30 2010 UTC revision 1161 by torben, Mon Oct 4 17:36:43 2010 UTC
# Line 6  import dk.thoerup.circuitbreaker.Circuit Line 6  import dk.thoerup.circuitbreaker.Circuit
6    
7  public abstract class AsyncNotifier implements Notifier {  public abstract class AsyncNotifier implements Notifier {
8                    
         CircuitBreaker cb;  
           
         public AsyncNotifier(CircuitBreaker cb) {  
                 this.cb = cb;  
         }  
9    
10          public final void sendNotification(String breakerName, Event evnt) {          public final void sendNotification(CircuitBreaker breaker, Event evnt) {
11                  ExecutorService exec = cb.getExecutor();                          ExecutorService exec = breaker.getExecutor();  
12                                    
13                  exec.submit( new AsyncRunnable(breakerName, evnt) );                  exec.submit( new AsyncRunnable(breaker, evnt) );
14          }          }
15                    
16          public abstract void sendAsync(String breakerName, Event evnt);          public abstract void sendAsync(CircuitBreaker breaker, Event evnt);
17                    
18          public class AsyncRunnable implements Runnable {          public class AsyncRunnable implements Runnable {
19                  String breakerName;                  CircuitBreaker breaker;
20                  Event evnt;                  Event evnt;
21                                    
22                  public AsyncRunnable(String breakerName, Event evnt) {                  public AsyncRunnable(CircuitBreaker breaker, Event evnt) {
23                          this.breakerName = breakerName;                          this.breaker = breaker;
24                          this.evnt = evnt;                          this.evnt = evnt;
25                  }                  }
26                                    
27                                    
28                  public void run() {                  public void run() {
29                          sendAsync(breakerName, evnt);                          sendAsync(breaker, evnt);
30                  }                  }
31                                    
32                                    

Legend:
Removed from v.1160  
changed lines
  Added in v.1161

  ViewVC Help
Powered by ViewVC 1.1.20