Subversion Repository Public Repository

litesoft

Diff Revisions 851 vs 858 for /trunk/Java/core/Anywhere/src/org/litesoft/core/delayed/TimedRunner.java

Diff revisions: vs.
  @@ -2,16 +2,18 @@
2 2 package org.litesoft.core.delayed;
3 3
4 4 import org.litesoft.core.delayed.nonpublic.*;
5 + import org.litesoft.core.simpletypes.temporal.*;
5 6 import org.litesoft.core.typeutils.*;
6 - import org.litesoft.core.typeutils.gregorian.*;
7 7 import org.litesoft.core.util.*;
8 8
9 9 public class TimedRunner
10 10 {
11 - private MyTimedRunnable mMyTimedRunnable = null;
11 + private final MillisecTimeSource mMillisecTimeSource;
12 + private final MyTimedRunnable mMyTimedRunnable;
12 13
13 14 public TimedRunner( DelayedTimedRunnableRunner pRunner, UnexpectedExceptionHandler pUnexpectedExceptionHandler )
14 15 {
16 + mMillisecTimeSource = pRunner.getMillisecTimeSource();
15 17 mMyTimedRunnable = new MyTimedRunnable( pRunner, pUnexpectedExceptionHandler ).initialize();
16 18 }
17 19
  @@ -38,7 +40,7 @@
38 40 */
39 41 public Long runIn( TimedRunnable pTimedRunnable, long pDelayInMilliSecs )
40 42 {
41 - return runOnOrAfter( pTimedRunnable, getNow() + pDelayInMilliSecs );
43 + return runOnOrAfter( pTimedRunnable, mMillisecTimeSource.now() + pDelayInMilliSecs );
42 44 }
43 45
44 46 /**
  @@ -58,11 +60,6 @@
58 60 return null;
59 61 }
60 62
61 - private static long getNow()
62 - {
63 - return Dates.now().getTime();
64 - }
65 -
66 63 private static class MyTimedRunnable implements TimedRunnable
67 64 {
68 65 private final DelayedTimedRunnableRunner mRunner;
  @@ -93,7 +90,7 @@
93 90 return null;
94 91 }
95 92 long zRunWhen = mHead.getRunWhen();
96 - if ( getNow() < zRunWhen )
93 + if ( mRunner.getMillisecTimeSource().now() < zRunWhen )
97 94 {
98 95 return new RunAgainOnOrAfter( zRunWhen );
99 96 }
  @@ -113,7 +110,7 @@
113 110 {
114 111 if ( zAgain != null )
115 112 {
116 - mHead = DoubleLinkedListTimedRunnableNode.addTo( mHead, zAgain.getOnOrAfter(), mRunning );
113 + mHead = DoubleLinkedListTimedRunnableNode.addTo( mHead, zAgain.getOnOrAfter( mRunner.getMillisecTimeSource() ), mRunning );
117 114 }
118 115 mRunning = null;
119 116 }