jmri.jmrit.audio
Class AbstractAudioThread

java.lang.Object
  extended by java.lang.Thread
      extended by jmri.jmrit.audio.AbstractAudioThread
All Implemented Interfaces:
Runnable, AudioThread
Direct Known Subclasses:
AbstractAudioListener.AudioListenerMoveThread, AbstractAudioSource.AudioSourceFadeThread, AbstractAudioSource.AudioSourceMoveThread, AudioCommandThread

public abstract class AbstractAudioThread
extends Thread
implements AudioThread

Base implementation of all common thread code for use by threads in the various Audio classes.


This file is part of JMRI.

JMRI is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the "COPYING" file for a copy of this license.

JMRI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Author:
Matthew Harris copyright (c) 2009

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Fields inherited from interface jmri.jmrit.audio.AudioThread
GET, NA, SET
 
Constructor Summary
AbstractAudioThread()
          Default constructor that gives this thread a unique name based on the value of the static counter
 
Method Summary
 boolean alive()
          Checks if the thread is still alive (or in the process of shutting down) Once cleanup has finished, this should return False
protected  void cleanup()
          Perform necessary cleanup routines before shutting down
 void die()
          Method used to tell the thread that it should shutdown
protected  boolean dying()
          Checks if the thread is in the process of shutting down
protected static void snooze(long ms)
          Sleep for the specified number of milliseconds (Avoids cluttering the main code with the try-catch construct)
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.lang.Runnable
run
 

Constructor Detail

AbstractAudioThread

public AbstractAudioThread()
Default constructor that gives this thread a unique name based on the value of the static counter

Method Detail

cleanup

protected void cleanup()
Perform necessary cleanup routines before shutting down


alive

public boolean alive()
Description copied from interface: AudioThread
Checks if the thread is still alive (or in the process of shutting down)

Once cleanup has finished, this should return False

Specified by:
alive in interface AudioThread
Returns:
true, while thread is alive; false, when all cleanup has finished

die

public void die()
Description copied from interface: AudioThread
Method used to tell the thread that it should shutdown

Specified by:
die in interface AudioThread

dying

protected boolean dying()
Checks if the thread is in the process of shutting down

Returns:
true, if thread should die

snooze

protected static void snooze(long ms)
Sleep for the specified number of milliseconds

(Avoids cluttering the main code with the try-catch construct)

Parameters:
ms - number of milliseconds to sleep for


Copyright © 1997 - 2009 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads