diff options
author | snowleo <schneeleo@gmail.com> | 2011-10-12 03:14:07 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-10-12 03:14:26 +0200 |
commit | ea192ddd6d5b538e0bd0f6f1721890eb3c25de30 (patch) | |
tree | 344d5ad4eec389eedc6a72dbfb1bdfba1047a447 /EssentialsUpdate/src/f00f/net/irc/martyr/TimerTaskCommand.java | |
parent | 1b34ed40736b03f440352f8193f24b6b0525868a (diff) | |
download | Essentials-ea192ddd6d5b538e0bd0f6f1721890eb3c25de30.tar Essentials-ea192ddd6d5b538e0bd0f6f1721890eb3c25de30.tar.gz Essentials-ea192ddd6d5b538e0bd0f6f1721890eb3c25de30.tar.lz Essentials-ea192ddd6d5b538e0bd0f6f1721890eb3c25de30.tar.xz Essentials-ea192ddd6d5b538e0bd0f6f1721890eb3c25de30.zip |
EssentialsUpdate WIP
Diffstat (limited to 'EssentialsUpdate/src/f00f/net/irc/martyr/TimerTaskCommand.java')
-rw-r--r-- | EssentialsUpdate/src/f00f/net/irc/martyr/TimerTaskCommand.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/f00f/net/irc/martyr/TimerTaskCommand.java b/EssentialsUpdate/src/f00f/net/irc/martyr/TimerTaskCommand.java new file mode 100644 index 000000000..00ab56f56 --- /dev/null +++ b/EssentialsUpdate/src/f00f/net/irc/martyr/TimerTaskCommand.java @@ -0,0 +1,57 @@ +package f00f.net.irc.martyr; + +import java.util.TimerTask; + +// TODO: BD: Unit test +// TODO: BD: synchronization semantics? + +/** + * This class delays sending a command to the IRC connection. + * + * @author <a href="mailto:martyr@mog.se">Morgan Christiansson</a> + */ +public class TimerTaskCommand extends TimerTask +{ + + private IRCConnection _conn; + private OutCommand _cmd; + public TimerTaskCommand(IRCConnection conn, OutCommand cmd) + { + _conn = conn; + _cmd = cmd; + } + /* (non-Javadoc) + * @see java.util.TimerTask#run() + */ + public synchronized void run() + { + if( !isScheduled ) + return; + + _conn.sendCommand(_cmd); + isScheduled = false; + } + + private boolean isScheduled = true; + + /* (non-Javadoc) + * @see java.util.TimerTask#cancel() + */ + public synchronized boolean cancel() + { + boolean ret = super.cancel(); + isScheduled = false; + return ret; + } + + /** + * @return true if the command has yet to run or is running, false + * otherwise. + */ + public synchronized boolean isScheduled() + { + return isScheduled; + } + +} + |