Scanframe Modular Application 0.1.0
|
Thread wrapper class to be used for attachment to an existing thread or a new to be created thread. More...
#include <Thread.h>
Classes | |
class | Attributes |
Thread attributes used internally for starting a thread. More... | |
class | TerminateException |
Special thread exception thrown by system blocking functions to terminate the thread. More... | |
class | ThreadException |
Public Types | |
enum | EStatus : int { tsInvalid = 0 , tsCreated , tsRunning , tsFinished , tsTerminated } |
Thread states enumeration. More... | |
enum | EPriority : int { tpIdle = -15 , tpLowest = -2 , tpBelowNormal = -1 , tpNormal = 0 , tpAboveNormal = 1 , tpHighest = 2 , tpTimeCritical = 15 } |
Enumeration of thread priorities. More... | |
typedef pthread_t | handle_type |
Local declaration of the handle type. | |
typedef pid_t | id_type |
Local declaration of the thread id type. | |
Public Member Functions | |
handle_type | start () |
Starts a thread with default attributes which calls on its turn the overridden run(). | |
handle_type | start (const Attributes &attr) |
Starts a thread which calls on its turn the overridden function Run(). | |
virtual void | terminate () |
Can be overloaded to signal the thread to terminate. | |
void | terminateAndWait () |
Same as calling Terminate() and thereafter calling WaitForExit() | |
void | waitForExit () |
Waits for the thread to exit. | |
EStatus | getStatus () const |
Returns the status. | |
const char * | getStatusText (EStatus status=(EStatus) -1) const |
Returns the status a string. | |
int | getExitCode () const |
Returns the exist value of the thread function. | |
bool | isSelf () const |
Returns true if the calling thread is this thread. | |
id_type | getId () const |
Returns the thread ID. Is currently in Linux the same as the handle. | |
handle_type | getHandle () const |
Returns the handle of this instance. | |
operator handle_type () const | |
Casting operator for THandle type. | |
void | setName (const char *name) |
Sets the name of the thread available in the debugger. The name is clipped to the first 15 characters only. | |
std::string | getName () const |
Gets the name of the thread available in the debugger. | |
int | getPriority () const |
Gets the current priority of this instance. | |
bool | setPriority (int pri, int sp=Attributes::spScheduleOther) |
Can pass an enumerate EPriority for simplicity. | |
void | setTerminationTime (const TimeSpec &ts) |
Sets the time needed for the thread to terminate. Default is one 100 ms. | |
bool | shouldTerminate () const |
Call by the thread itself to determine if it should terminate. Another thread then this one it too but has no effect. | |
void | exit (int code) |
Alternative to returning from then run() method. | |
void | setDebug (bool yn) |
bool | sleep (const TimeSpec &ts, bool alertable=true) const |
Makes the current thread sleep for the given amount time until a signal interrupts when alertable is true. | |
Thread (const Thread &)=delete | |
Copying constructor disabled and not implemented. | |
const Thread & | operator= (const Thread &)=delete |
Copy constructor not implemented. | |
bool | isDebug () const |
Gets the debug flag. | |
Static Public Member Functions | |
static int | getTerminationSignal () |
Returns the thread termination signal. | |
static bool | yieldToOther () |
Yield control of the current thread. The name 'Yield()' is defined as a macro in MingW. | |
static handle_type | getCurrentHandle () |
Return the current thread handle. | |
static id_type | getMainId () |
Gets the main thread ID. | |
static id_type | getCurrentId () |
Gets the current thread ID. | |
static Thread & | getCurrent () |
Gets the sf::Thread instance reference of the current thread. | |
static size_t | getCurrentStackSize () |
Returns the current thread initial stack size. | |
Protected Member Functions | |
Thread (const std::string &name) | |
Protected constructor which demands to derive a class. | |
Thread (bool) | |
Wraps this class around the main thread of the application. The boolean bogus argument is to be different from the default constructor. | |
virtual | ~Thread () |
Virtual Destructor. | |
virtual void | cleanup () |
Function which can be overloaded in a derived class. | |
virtual int | run ()=0 |
Function which needs to be overloaded in a derived class. This function is the actual thread function. | |
void | TerminationSignal () |
Called to unblock system functions. | |
Friends | |
class | Condition |
void | installSignalHandlers () |
Thread wrapper class to be used for attachment to an existing thread or a new to be created thread.
This class can only be used to derive from since the constructor #Thread() is protected by design. at least the run() function must be overridden.
typedef pthread_t sf::Thread::handle_type |
Local declaration of the handle type.
typedef pid_t sf::Thread::id_type |
Local declaration of the thread id type.
enum sf::Thread::EPriority : int |
enum sf::Thread::EStatus : int |
Thread states enumeration.
Enumerator | |
---|---|
tsInvalid | The thread is not setup yet. |
tsCreated | The thread is created but not started. |
tsRunning | Thread is running. |
tsFinished | The thread has run and finished. |
tsTerminated | The thread was externally terminated. |
|
delete |
Copying constructor disabled and not implemented.
|
protected |
Protected constructor which demands to derive a class.
|
protected |
Wraps this class around the main thread of the application. The boolean bogus argument is to be different from the default constructor.
|
protectedvirtual |
Virtual Destructor.
|
protectedvirtual |
Function which can be overloaded in a derived class.
Is called after a thread cancel.
void sf::Thread::exit | ( | int | code | ) |
|
static |
Gets the sf::Thread instance reference of the current thread.
|
static |
Return the current thread handle.
|
static |
Gets the current thread ID.
|
static |
Returns the current thread initial stack size.
ExceptionSystemCall |
int sf::Thread::getExitCode | ( | ) | const |
Returns the exist value of the thread function.
handle_type sf::Thread::getHandle | ( | ) | const |
Returns the handle of this instance.
id_type sf::Thread::getId | ( | ) | const |
Returns the thread ID. Is currently in Linux the same as the handle.
|
static |
Gets the main thread ID.
std::string sf::Thread::getName | ( | ) | const |
Gets the name of the thread available in the debugger.
int sf::Thread::getPriority | ( | ) | const |
Gets the current priority of this instance.
|
static |
Returns the thread termination signal.
|
inline |
Gets the debug flag.
bool sf::Thread::isSelf | ( | ) | const |
Returns true if the calling thread is this thread.
|
inline |
Casting operator for THandle type.
|
protectedpure virtual |
Function which needs to be overloaded in a derived class. This function is the actual thread function.
Implemented in sf::ThreadMain, and sf::ThreadClosure.
|
inline |
Enables debug logging.
yn | True for debug output. |
void sf::Thread::setName | ( | const char * | name | ) |
Sets the name of the thread available in the debugger. The name is clipped to the first 15 characters only.
bool sf::Thread::setPriority | ( | int | pri, |
int | sp = Attributes::spScheduleOther |
||
) |
Can pass an enumerate EPriority for simplicity.
void sf::Thread::setTerminationTime | ( | const TimeSpec & | ts | ) |
Sets the time needed for the thread to terminate. Default is one 100 ms.
bool sf::Thread::shouldTerminate | ( | ) | const |
Call by the thread itself to determine if it should terminate. Another thread then this one it too but has no effect.
bool sf::Thread::sleep | ( | const TimeSpec & | ts, |
bool | alertable = true |
||
) | const |
Makes the current thread sleep for the given amount time until a signal interrupts when alertable is true.
handle_type sf::Thread::start | ( | ) |
handle_type sf::Thread::start | ( | const Attributes & | attr | ) |
Starts a thread which calls on its turn the overridden function Run().
attr | Attributes for stack size and scheduling and prioritisation. |
|
virtual |
Can be overloaded to signal the thread to terminate.
Makes shouldTerminate() return false.
void sf::Thread::terminateAndWait | ( | ) |
Same as calling Terminate() and thereafter calling WaitForExit()
|
protected |
Called to unblock system functions.
void sf::Thread::waitForExit | ( | ) |
Waits for the thread to exit.
|
static |
Yield control of the current thread. The name 'Yield()' is defined as a macro in MingW.
|
friend |
|
friend |
Allow access to privates to this class from functions or classes.
intptr_t sf::Thread::Code |
void* sf::Thread::Ptr |