EDU.oswego.cs.dl.util.concurrent

Class WaitableChar

Implemented Interfaces:
Cloneable, Comparable, Executor

public class WaitableChar
extends SynchronizedChar

A class useful for offloading waiting and signalling operations on single char variables.

[ Introduction to this package. ]

Field Summary

Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedChar

value_

Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable

lock_

Constructor Summary

WaitableChar(char initialValue)
Make a new WaitableChar with the given initial value, and using its own internal lock.
WaitableChar(char initialValue, Object lock)
Make a new WaitableChar with the given initial value, and using the supplied lock.

Method Summary

char
add(char amount)
Add amount to value (i.e., set value += amount)
boolean
commit(char assumedValue, char newValue)
Set value to newValue only if it is currently assumedValue.
char
divide(char factor)
Divide value by factor (i.e., set value /= factor)
char
multiply(char factor)
Multiply value by factor (i.e., set value *= factor)
char
set(char newValue)
Set to newValue.
char
subtract(char amount)
Subtract amount from value (i.e., set value -= amount)
void
whenEqual(char c, Runnable action)
Wait until value equals c, then run action if nonnull.
void
whenGreater(char c, Runnable action)
wait until value greater than c, then run action if nonnull.
void
whenGreaterEqual(char c, Runnable action)
wait until value greater than or equal to c, then run action if nonnull.
void
whenLess(char c, Runnable action)
wait until value less than c, then run action if nonnull.
void
whenLessEqual(char c, Runnable action)
wait until value less than or equal to c, then run action if nonnull.
void
whenNotEqual(char c, Runnable action)
wait until value not equal to c, then run action if nonnull.

Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedChar

add, commit, compareTo, compareTo, compareTo, divide, equals, get, hashCode, multiply, set, subtract, swap, toString

Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable

execute, getLock

Constructor Details

WaitableChar

public WaitableChar(char initialValue)
Make a new WaitableChar with the given initial value, and using its own internal lock.


WaitableChar

public WaitableChar(char initialValue,
                    Object lock)
Make a new WaitableChar with the given initial value, and using the supplied lock.

Method Details

add

public char add(char amount)
Add amount to value (i.e., set value += amount)
Overrides:
add in interface SynchronizedChar

Returns:
the new value


commit

public boolean commit(char assumedValue,
                      char newValue)
Set value to newValue only if it is currently assumedValue.
Overrides:
commit in interface SynchronizedChar

Returns:
true if successful


divide

public char divide(char factor)
Divide value by factor (i.e., set value /= factor)
Overrides:
divide in interface SynchronizedChar

Returns:
the new value


multiply

public char multiply(char factor)
Multiply value by factor (i.e., set value *= factor)
Overrides:
multiply in interface SynchronizedChar

Returns:
the new value


set

public char set(char newValue)
Set to newValue.
Overrides:
set in interface SynchronizedChar

Returns:
the old value


subtract

public char subtract(char amount)
Subtract amount from value (i.e., set value -= amount)
Overrides:
subtract in interface SynchronizedChar

Returns:
the new value


whenEqual

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


whenGreater

public void whenGreater(char c,
                        Runnable action)
            throws InterruptedException
wait until value greater than c, then run action if nonnull. The action is run with the synchronization lock held.


whenGreaterEqual

public void whenGreaterEqual(char c,
                             Runnable action)
            throws InterruptedException
wait until value greater than or equal to c, then run action if nonnull. The action is run with the synchronization lock held.


whenLess

public void whenLess(char c,
                     Runnable action)
            throws InterruptedException
wait until value less than c, then run action if nonnull. The action is run with the synchronization lock held.


whenLessEqual

public void whenLessEqual(char c,
                          Runnable action)
            throws InterruptedException
wait until value less than or equal to c, then run action if nonnull. The action is run with the synchronization lock held.


whenNotEqual

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