Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/GWT/OldClient/src/org/litesoft/GWT/eventbus/client/nonpublic/TimerNode.java

Diff revisions: vs.
  @@ -1,131 +1,131 @@
1 - // This Source Code is in the Public Domain per: http://unlicense.org
2 - package org.litesoft.GWT.eventbus.client.nonpublic;
3 -
4 - import org.litesoft.GWT.eventbus.client.*;
5 - import org.litesoft.commonfoundation.base.*;
6 -
7 - public class TimerNode {
8 - private TimerNode mPrev = null;
9 - private TimerNode mNext = null;
10 - private long mFireWhen;
11 - private int mClientIdNumber;
12 - private EventPackage mParcel;
13 -
14 - public TimerNode( int pFireInMilliSecs, int pClientIdNumber, EventPackage pPackage ) {
15 - long now = MillisecTimeSource.INSTANCE.now();
16 - mFireWhen = now + pFireInMilliSecs;
17 - mClientIdNumber = pClientIdNumber;
18 - if ( null == (mParcel = pPackage) ) {
19 - throw new IllegalArgumentException( "Parcel may not be null" );
20 - }
21 - }
22 -
23 - public long getFireWhen() {
24 - return mFireWhen;
25 - }
26 -
27 - public int getClientIdNumber() {
28 - return mClientIdNumber;
29 - }
30 -
31 - public EventPackage getParcel() {
32 - return mParcel;
33 - }
34 -
35 - public boolean isBefore( TimerNode pTimerNode ) {
36 - return (pTimerNode != null) && (this.mFireWhen < pTimerNode.mFireWhen);
37 - }
38 -
39 - /**
40 - * Remove 'this' from LinkList
41 - *
42 - * @return mNext
43 - */
44 - public TimerNode remove() {
45 - // x - this - y
46 - TimerNode rv = this.mNext;
47 - if ( this.mPrev != null ) {
48 - mPrev.mNext = this.mNext;
49 - }
50 - if ( this.mNext != null ) {
51 - mNext.mPrev = this.mPrev;
52 - }
53 - mPrev = mNext = null;
54 - // x - y
55 - return rv;
56 - }
57 -
58 - /**
59 - * Insert 'pNewTimerNode' before 'this' in the LinkList
60 - *
61 - * @param pNewTimerNode may NOT have its links set
62 - *
63 - * @return pNewTimerNode
64 - */
65 - public TimerNode insertBeforeMe( TimerNode pNewTimerNode ) {
66 - // x - this - y
67 - if ( chk( pNewTimerNode ) ) {
68 - pNewTimerNode.mNext = this;
69 - pNewTimerNode.mPrev = this.mPrev;
70 - if ( this.mPrev != null ) {
71 - this.mPrev.mNext = pNewTimerNode;
72 - }
73 - this.mPrev = pNewTimerNode;
74 - }
75 - // x - pNewTimerNode - this - y
76 - return pNewTimerNode;
77 - }
78 -
79 - /**
80 - * Insert 'pNewTimerNode' after 'this' in the LinkList
81 - *
82 - * @param pNewTimerNode may NOT have its links set
83 - */
84 - public void insertAfterMe( TimerNode pNewTimerNode ) {
85 - // x - this - y
86 - if ( chk( pNewTimerNode ) ) {
87 - pNewTimerNode.mNext = this.mNext;
88 - if ( this.mNext != null ) {
89 - this.mNext.mPrev = pNewTimerNode;
90 - }
91 - this.mNext = pNewTimerNode;
92 - pNewTimerNode.mPrev = this;
93 - }
94 - // x - this - pNewTimerNode - y
95 - }
96 -
97 - private boolean chk( TimerNode pNewTimerNode ) {
98 - if ( pNewTimerNode == null ) {
99 - return false;
100 - }
101 - if ( (pNewTimerNode.mPrev != null) || (pNewTimerNode.mNext != null) ) {
102 - throw new IllegalArgumentException( "NewTimerNode has non-Null links" );
103 - }
104 - return true;
105 - }
106 -
107 - /**
108 - * @return the New Head
109 - */
110 - public static TimerNode addTo( TimerNode pCurrentHead, TimerNode pNewTimerNode ) {
111 - if ( pNewTimerNode == null ) {
112 - return pCurrentHead;
113 - }
114 - if ( pCurrentHead == null ) {
115 - return pNewTimerNode;
116 - }
117 - if ( pNewTimerNode.isBefore( pCurrentHead ) ) {
118 - return pCurrentHead.insertBeforeMe( pNewTimerNode );
119 - }
120 - TimerNode cur = pCurrentHead;
121 - while ( cur.mNext != null ) {
122 - cur = cur.mNext;
123 - if ( pNewTimerNode.isBefore( cur ) ) {
124 - cur.insertBeforeMe( pNewTimerNode );
125 - return pCurrentHead;
126 - }
127 - }
128 - cur.insertAfterMe( pNewTimerNode );
129 - return pCurrentHead;
130 - }
131 - }
1 + // This Source Code is in the Public Domain per: http://unlicense.org
2 + package org.litesoft.GWT.eventbus.client.nonpublic;
3 +
4 + import org.litesoft.GWT.eventbus.client.*;
5 + import org.litesoft.commonfoundation.base.*;
6 +
7 + public class TimerNode {
8 + private TimerNode mPrev = null;
9 + private TimerNode mNext = null;
10 + private long mFireWhen;
11 + private int mClientIdNumber;
12 + private EventPackage mParcel;
13 +
14 + public TimerNode( int pFireInMilliSecs, int pClientIdNumber, EventPackage pPackage ) {
15 + long now = MillisecTimeSource.INSTANCE.now();
16 + mFireWhen = now + pFireInMilliSecs;
17 + mClientIdNumber = pClientIdNumber;
18 + if ( null == (mParcel = pPackage) ) {
19 + throw new IllegalArgumentException( "Parcel may not be null" );
20 + }
21 + }
22 +
23 + public long getFireWhen() {
24 + return mFireWhen;
25 + }
26 +
27 + public int getClientIdNumber() {
28 + return mClientIdNumber;
29 + }
30 +
31 + public EventPackage getParcel() {
32 + return mParcel;
33 + }
34 +
35 + public boolean isBefore( TimerNode pTimerNode ) {
36 + return (pTimerNode != null) && (this.mFireWhen < pTimerNode.mFireWhen);
37 + }
38 +
39 + /**
40 + * Remove 'this' from LinkList
41 + *
42 + * @return mNext
43 + */
44 + public TimerNode remove() {
45 + // x - this - y
46 + TimerNode rv = this.mNext;
47 + if ( this.mPrev != null ) {
48 + mPrev.mNext = this.mNext;
49 + }
50 + if ( this.mNext != null ) {
51 + mNext.mPrev = this.mPrev;
52 + }
53 + mPrev = mNext = null;
54 + // x - y
55 + return rv;
56 + }
57 +
58 + /**
59 + * Insert 'pNewTimerNode' before 'this' in the LinkList
60 + *
61 + * @param pNewTimerNode may NOT have its links set
62 + *
63 + * @return pNewTimerNode
64 + */
65 + public TimerNode insertBeforeMe( TimerNode pNewTimerNode ) {
66 + // x - this - y
67 + if ( chk( pNewTimerNode ) ) {
68 + pNewTimerNode.mNext = this;
69 + pNewTimerNode.mPrev = this.mPrev;
70 + if ( this.mPrev != null ) {
71 + this.mPrev.mNext = pNewTimerNode;
72 + }
73 + this.mPrev = pNewTimerNode;
74 + }
75 + // x - pNewTimerNode - this - y
76 + return pNewTimerNode;
77 + }
78 +
79 + /**
80 + * Insert 'pNewTimerNode' after 'this' in the LinkList
81 + *
82 + * @param pNewTimerNode may NOT have its links set
83 + */
84 + public void insertAfterMe( TimerNode pNewTimerNode ) {
85 + // x - this - y
86 + if ( chk( pNewTimerNode ) ) {
87 + pNewTimerNode.mNext = this.mNext;
88 + if ( this.mNext != null ) {
89 + this.mNext.mPrev = pNewTimerNode;
90 + }
91 + this.mNext = pNewTimerNode;
92 + pNewTimerNode.mPrev = this;
93 + }
94 + // x - this - pNewTimerNode - y
95 + }
96 +
97 + private boolean chk( TimerNode pNewTimerNode ) {
98 + if ( pNewTimerNode == null ) {
99 + return false;
100 + }
101 + if ( (pNewTimerNode.mPrev != null) || (pNewTimerNode.mNext != null) ) {
102 + throw new IllegalArgumentException( "NewTimerNode has non-Null links" );
103 + }
104 + return true;
105 + }
106 +
107 + /**
108 + * @return the New Head
109 + */
110 + public static TimerNode addTo( TimerNode pCurrentHead, TimerNode pNewTimerNode ) {
111 + if ( pNewTimerNode == null ) {
112 + return pCurrentHead;
113 + }
114 + if ( pCurrentHead == null ) {
115 + return pNewTimerNode;
116 + }
117 + if ( pNewTimerNode.isBefore( pCurrentHead ) ) {
118 + return pCurrentHead.insertBeforeMe( pNewTimerNode );
119 + }
120 + TimerNode cur = pCurrentHead;
121 + while ( cur.mNext != null ) {
122 + cur = cur.mNext;
123 + if ( pNewTimerNode.isBefore( cur ) ) {
124 + cur.insertBeforeMe( pNewTimerNode );
125 + return pCurrentHead;
126 + }
127 + }
128 + cur.insertAfterMe( pNewTimerNode );
129 + return pCurrentHead;
130 + }
131 + }