diff options
Diffstat (limited to 'timer/com/vladium/utils/timing/ITimer.java')
-rw-r--r-- | timer/com/vladium/utils/timing/ITimer.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/timer/com/vladium/utils/timing/ITimer.java b/timer/com/vladium/utils/timing/ITimer.java new file mode 100644 index 0000000..98029b1 --- /dev/null +++ b/timer/com/vladium/utils/timing/ITimer.java @@ -0,0 +1,54 @@ + +package com.vladium.utils.timing; + +// ---------------------------------------------------------------------------- +/** + * A simple interface for measuring time intervals. An instance of this goes + * through the following lifecycle states: + * <DL> + * <DT> <EM>ready</EM> + * <DD> timer is ready to start a new measurement + * <DT> <EM>started</EM> + * <DD> timer has recorded the starting time interval point + * <DT> <EM>stopped</EM> + * <DD> timer has recorded the ending time interval point + * </DL> + * See individual methods for details.<P> + * + * If this library has been compiled with {@link ITimerConstants#DO_STATE_CHECKS} + * set to 'true' the implementation will enforce this lifecycle model and throw + * IllegalStateException when it is violated. + * + * @author (C) <a href="mailto:vroubtsov@illinoisalumni.org">Vlad Roubtsov</a>, 2002 + */ +public interface ITimer +{ + // public: ................................................................ + + /** + * Starts a new time interval and advances this timer instance to 'started' + * state. This method can be called from 'ready' state only.
*/ + void start (); + + /** + * Terminates the current time interval and advances this timer instance to + * 'stopped' state. Interval duration will be available via + * {@link #getDuration()} method. This method can be called from 'started' + * state only.
*/ + void stop (); + + /** + * Returns the duration of the time interval that elapsed between the last + * calls to {@link #start()} and {@link #stop()}. This method can be called + * any number of times from 'stopped' state and will return the same value + * each time.<P> + *
* @return interval duration in milliseconds
*/ + double getDuration (); + + /** + * This method can be called from any state and will reset this timer + * instance back to 'ready' state.
*/ + void reset (); + +} // end of interface +// ---------------------------------------------------------------------------- |