|
JUCE
|
A thread that keeps a list of clients, and calls each one in turn, giving them all a chance to run some sort of short task. More...
#include <juce_TimeSliceThread.h>
Public Member Functions | |
| TimeSliceThread (const String &threadName) | |
| Creates a TimeSliceThread. | |
| ~TimeSliceThread () override | |
| Destructor. | |
| void | addTimeSliceClient (TimeSliceClient *clientToAdd, int millisecondsBeforeStarting=0) |
| Adds a client to the list. | |
| void | moveToFrontOfQueue (TimeSliceClient *clientToMove) |
| If the given client is waiting in the queue, it will be moved to the front and given a time-slice as soon as possible. | |
| void | removeTimeSliceClient (TimeSliceClient *clientToRemove) |
| Removes a client from the list. | |
| void | removeAllClients () |
| Removes all the active and pending clients from the list. | |
| int | getNumClients () const |
| Returns the number of registered clients. | |
| TimeSliceClient * | getClient (int index) const |
| Returns one of the registered clients. | |
| bool | contains (const TimeSliceClient *) const |
| Returns true if the client is currently registered. | |
Public Member Functions inherited from Thread | |
| Thread (const String &threadName, size_t threadStackSize=osDefaultStackSize) | |
| Creates a thread. | |
| virtual | ~Thread () |
| Destructor. | |
| virtual void | run ()=0 |
| Must be implemented to perform the thread's actual code. | |
| bool | startThread () |
| Attempts to start a new thread with default ('Priority::normal') priority. | |
| bool | startThread (Priority newPriority) |
| Attempts to start a new thread with a given priority. | |
| bool | startRealtimeThread (const RealtimeOptions &options) |
| Starts the thread with realtime performance characteristics on platforms that support it. | |
| bool | stopThread (int timeOutMilliseconds) |
| Attempts to stop the thread running. | |
| bool | isThreadRunning () const |
| Returns true if the thread is currently active. | |
| void | signalThreadShouldExit () |
| Sets a flag to tell the thread it should stop. | |
| bool | threadShouldExit () const |
| Checks whether the thread has been told to stop running. | |
| bool | waitForThreadToExit (int timeOutMilliseconds) const |
| Waits for the thread to stop. | |
| void | addListener (Listener *) |
| Add a listener to this thread which will receive a callback when signalThreadShouldExit was called on this thread. | |
| void | removeListener (Listener *) |
| Removes a listener added with addListener. | |
| bool | isRealtime () const |
| Returns true if this Thread represents a realtime thread. | |
| void | setAffinityMask (uint32 affinityMask) |
| Sets the affinity mask for the thread. | |
| bool | wait (double timeOutMilliseconds) const |
| Suspends the execution of this thread until either the specified timeout period has elapsed, or another thread calls the notify() method to wake it up. | |
| void | notify () const |
| Wakes up the thread. | |
| ThreadID | getThreadId () const noexcept |
| Returns the ID of this thread. | |
| const String & | getThreadName () const noexcept |
| Returns the name of the thread. | |
Additional Inherited Members | |
Public Types inherited from Thread | |
| enum class | Priority { highest = 2 , high = 1 , normal = 0 , low = -1 , background = -2 } |
| The different runtime priorities of non-realtime threads. More... | |
| using | ThreadID = void* |
| A value type used for thread IDs. | |
Static Public Member Functions inherited from Thread | |
| static bool | launch (std::function< void()> functionToRun) |
| Invokes a lambda or function on its own thread with the default priority. | |
| static bool | launch (Priority priority, std::function< void()> functionToRun) |
| Invokes a lambda or function on its own thread with a custom priority. | |
| static bool | currentThreadShouldExit () |
| Checks whether the current thread has been told to stop running. | |
| static void JUCE_CALLTYPE | setCurrentThreadAffinityMask (uint32 affinityMask) |
| Changes the affinity mask for the caller thread. | |
| static void JUCE_CALLTYPE | sleep (int milliseconds) |
| Suspends the execution of the current thread until the specified timeout period has elapsed (note that this may not be exact). | |
| static void JUCE_CALLTYPE | yield () |
| Yields the current thread's CPU time-slot and allows a new thread to run. | |
| static ThreadID JUCE_CALLTYPE | getCurrentThreadId () |
| Returns an id that identifies the caller thread. | |
| static Thread *JUCE_CALLTYPE | getCurrentThread () |
| Finds the thread object that is currently running. | |
| static void JUCE_CALLTYPE | setCurrentThreadName (const String &newThreadName) |
| Changes the name of the caller thread. | |
| static void | initialiseJUCE (void *jniEnv, void *jContext) |
| Initialises the JUCE subsystem for projects not created by the Projucer. | |
Static Public Attributes inherited from Thread | |
| static constexpr size_t | osDefaultStackSize { 0 } |
Protected Member Functions inherited from Thread | |
| Priority | getPriority () const |
| Returns the current priority of this thread. | |
| bool | setPriority (Priority newPriority) |
| Attempts to set the priority for this thread. | |
A thread that keeps a list of clients, and calls each one in turn, giving them all a chance to run some sort of short task.
|
explicit |
Creates a TimeSliceThread.
When first created, the thread is not running. Use the startThread() method to start it.
|
override |
Destructor.
Deleting a Thread object that is running will only give the thread a brief opportunity to stop itself cleanly, so it's recommended that you should always call stopThread() with a decent timeout before deleting, to avoid the thread being forcibly killed (which is a Bad Thing).
| void TimeSliceThread::addTimeSliceClient | ( | TimeSliceClient * | clientToAdd, |
| int | millisecondsBeforeStarting = 0 ) |
Adds a client to the list.
The client's callbacks will start after the number of milliseconds specified by millisecondsBeforeStarting (and this may happen before this method has returned).
| void TimeSliceThread::moveToFrontOfQueue | ( | TimeSliceClient * | clientToMove | ) |
If the given client is waiting in the queue, it will be moved to the front and given a time-slice as soon as possible.
If the specified client has not been added, nothing will happen.
| void TimeSliceThread::removeTimeSliceClient | ( | TimeSliceClient * | clientToRemove | ) |
Removes a client from the list.
This method will make sure that all callbacks to the client have completely finished before the method returns.
| void TimeSliceThread::removeAllClients | ( | ) |
Removes all the active and pending clients from the list.
This method will make sure that all callbacks to clients have finished before the method returns.
| int TimeSliceThread::getNumClients | ( | ) | const |
Returns the number of registered clients.
| TimeSliceClient * TimeSliceThread::getClient | ( | int | index | ) | const |
Returns one of the registered clients.
| bool TimeSliceThread::contains | ( | const TimeSliceClient * | ) | const |
Returns true if the client is currently registered.