EDU.oswego.cs.dl.util.concurrent
Class WaitableBoolean

java.lang.Object
  extended by EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
      extended by EDU.oswego.cs.dl.util.concurrent.SynchronizedBoolean
          extended by EDU.oswego.cs.dl.util.concurrent.WaitableBoolean
All Implemented Interfaces:
Executor, java.lang.Cloneable, java.lang.Comparable

public class WaitableBoolean
extends SynchronizedBoolean

A class useful for offloading synch for boolean instance variables.

[ Introduction to this package. ]


Field Summary
 
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedBoolean
value_
 
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
lock_
 
Constructor Summary
WaitableBoolean(boolean initialValue)
          Make a new WaitableBoolean with the given initial value
WaitableBoolean(boolean initialValue, java.lang.Object lock)
          Make a new WaitableBoolean with the given initial value, and using the supplied lock.
 
Method Summary
 boolean and(boolean b)
          Set value to value & b.
 boolean commit(boolean assumedValue, boolean newValue)
          Set value to newValue only if it is currently assumedValue.
 boolean complement()
          Set the value to its complement
 boolean or(boolean b)
          Set value to value | b.
 boolean set(boolean newValue)
          Set to newValue.
 void whenEqual(boolean c, java.lang.Runnable action)
          Wait until value equals c, then run action if nonnull.
 void whenFalse(java.lang.Runnable action)
          Wait until value is false, then run action if nonnull.
 void whenNotEqual(boolean c, java.lang.Runnable action)
          wait until value not equal to c, then run action if nonnull.
 void whenTrue(java.lang.Runnable action)
          wait until value is true, then run action if nonnull.
 boolean xor(boolean b)
          Set value to value ^ b.
 
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedBoolean
compareTo, compareTo, compareTo, equals, get, hashCode, swap, toString
 
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
execute, getLock
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WaitableBoolean

public WaitableBoolean(boolean initialValue)
Make a new WaitableBoolean with the given initial value


WaitableBoolean

public WaitableBoolean(boolean initialValue,
                       java.lang.Object lock)
Make a new WaitableBoolean with the given initial value, and using the supplied lock.

Method Detail

set

public boolean set(boolean newValue)
Description copied from class: SynchronizedBoolean
Set to newValue.

Overrides:
set in class SynchronizedBoolean
Returns:
the old value

commit

public boolean commit(boolean assumedValue,
                      boolean newValue)
Description copied from class: SynchronizedBoolean
Set value to newValue only if it is currently assumedValue.

Overrides:
commit in class SynchronizedBoolean
Returns:
true if successful

complement

public boolean complement()
Description copied from class: SynchronizedBoolean
Set the value to its complement

Overrides:
complement in class SynchronizedBoolean
Returns:
the new value

and

public boolean and(boolean b)
Description copied from class: SynchronizedBoolean
Set value to value & b.

Overrides:
and in class SynchronizedBoolean
Returns:
the new value

or

public boolean or(boolean b)
Description copied from class: SynchronizedBoolean
Set value to value | b.

Overrides:
or in class SynchronizedBoolean
Returns:
the new value

xor

public boolean xor(boolean b)
Description copied from class: SynchronizedBoolean
Set value to value ^ b.

Overrides:
xor in class SynchronizedBoolean
Returns:
the new value

whenFalse

public void whenFalse(java.lang.Runnable action)
               throws java.lang.InterruptedException
Wait until value is false, then run action if nonnull. The action is run with the synchronization lock held.

Throws:
java.lang.InterruptedException

whenTrue

public void whenTrue(java.lang.Runnable action)
              throws java.lang.InterruptedException
wait until value is true, then run action if nonnull. The action is run with the synchronization lock held.

Throws:
java.lang.InterruptedException

whenEqual

public void whenEqual(boolean c,
                      java.lang.Runnable action)
               throws java.lang.InterruptedException
Wait until value equals c, then run action if nonnull. The action is run with the synchronization lock held.

Throws:
java.lang.InterruptedException

whenNotEqual

public void whenNotEqual(boolean c,
                         java.lang.Runnable action)
                  throws java.lang.InterruptedException
wait until value not equal to c, then run action if nonnull. The action is run with the synchronization lock held.

Throws:
java.lang.InterruptedException