Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

corelinux::Thread Class Reference

Thread is a framework for the creation, management, and destruction of caller threads. More...

#include <Thread.hpp>

Inheritance diagram for corelinux::Thread

Inheritance graph
[legend]
Collaboration diagram for corelinux::Thread:

Collaboration graph
[legend]
List of all members.

Public Methods

 Thread ( void ) throw ( Assertion )
 Default constructor.

virtual ~Thread ( void )
 Virtual destructor.


Static Public Methods

Int getKernelError ( void )
 getKernelError returns the thread instance errno for the last kernel call the thread made. More...

ThreadIdentifier getThreadIdentifier ( void )
 getThreadIdentifier retrieves the kernel process id for the caller thread. More...

ThreadIdentifier getParentThreadIdentifier ( void )
 getParentThreadIdentifier retrieves the parent thread of the current thread. More...

ThreadIdentifierCref getThreadManagerIdentifier ( void )
 getThreadManagerIdentifier retrieves the thread that Thread was instantiated from. More...

ThreadContextCref getThreadContext ( ThreadIdentifierCref ) throw ( InvalidThreadException )
 Retrieve a ThreadContext given a identifier. More...

Count getActiveThreadCount ( void )
 Retrieve the number of threads that are starting or running. More...

Count getCompletedThreadCount ( void )
 Retrieve the number of threads that are not starting or running or waiting to run. More...

void dump ( void )
 Debugging method for the moment.

ThreadIdentifier startThread ( ThreadContextRef )
 Start a thread as described by the context. More...

Int waitForThread ( ThreadIdentifierCref ) throw ( InvalidThreadException )
 Blocks the caller until the thread has ended execution, retrieving the return code from the associated thread context. More...

void destroyThreadContext ( ThreadIdentifierCref ) throw ( InvalidThreadException, Assertion )
 Destroys the managed context for the given identifier. More...


Protected Methods

 Thread ( ThreadCref ) throw ( Assertion )
 Copy constructor won't do, its a singleton. More...

ThreadRef operator= ( ThreadCref ) throw ( Assertion )
 Assignment operator won't do, we should never get here anyway but the compiler will generate the missing method. More...

bool operator== ( ThreadCref ) const throw ( Assertion )
 Equality operator not valid for class utility. More...


Static Protected Methods

void threadTerminated ( Int, VoidPtr, VoidPtr )

Static Protected Attributes

ThreadManager theThreadManager
 The singleton instance of Thread for synchronization.


Detailed Description

Thread is a framework for the creation, management, and destruction of caller threads.

It accomplishes this by allowing the caller to setup a context for execution and calling their defined entry point. There is still much work to be done such as:


Constructor & Destructor Documentation

corelinux::Thread::Thread ( ThreadCref ) throw ( Assertion ) [protected]
 

Copy constructor won't do, its a singleton.

Parameters:
Thread   reference to another Thread
Exceptions:
Assertion   NEVER_GET_HERE


Member Function Documentation

void corelinux::Thread::destroyThreadContext ( ThreadIdentifierCref anId ) throw ( InvalidThreadException, Assertion ) [static]
 

Destroys the managed context for the given identifier.

Parameters:
ThreadIdentifier   unique thread id
Exceptions:
InvalidThreadException   if the thread id is not one in the managed store.
Assertion   if the thread is in a running state.

Count corelinux::Thread::getActiveThreadCount ( void ) [static]
 

Retrieve the number of threads that are starting or running.

Returns:
Count number of active threads

Count corelinux::Thread::getCompletedThreadCount ( void ) [static]
 

Retrieve the number of threads that are not starting or running or waiting to run.

Returns:
Count number of completed threads

Int corelinux::Thread::getKernelError ( void ) [static]
 

getKernelError returns the thread instance errno for the last kernel call the thread made.

Returns:
Int errno for thread function

ThreadIdentifier corelinux::Thread::getParentThreadIdentifier ( void ) [static]
 

getParentThreadIdentifier retrieves the parent thread of the current thread.

Returns:
ThreadIdentifier identifies the parent

ThreadContextCref corelinux::Thread::getThreadContext ( ThreadIdentifierCref anId ) throw ( InvalidThreadException ) [static]
 

Retrieve a ThreadContext given a identifier.

Parameters:
ThreadIdentifier   unique id
Returns:
ThreadContext const reference
Exceptions:
InvalidThreadException   if it does not exist.

ThreadIdentifier corelinux::Thread::getThreadIdentifier ( void ) [static]
 

getThreadIdentifier retrieves the kernel process id for the caller thread.

Returns:
ThreadIdentifier identifies the caller

ThreadIdentifierCref corelinux::Thread::getThreadManagerIdentifier ( void ) [static]
 

getThreadManagerIdentifier retrieves the thread that Thread was instantiated from.

Returns:
ThreadIdentifier identifies the owner

ThreadRef corelinux::Thread::operator= ( ThreadCref ) throw ( Assertion ) [protected]
 

Assignment operator won't do, we should never get here anyway but the compiler will generate the missing method.

Parameters:
Thread   reference to another Thread
Returns:
Thread reference to self
Exceptions:
Assertion   NEVER_GET_HERE

bool corelinux::Thread::operator== ( ThreadCref ) const throw ( Assertion ) [protected]
 

Equality operator not valid for class utility.

Parameters:
Thread   reference to Thread
Returns:
bool True if equal
Exceptions:
Assertion   NEVER_GET_HERE

ThreadIdentifier corelinux::Thread::startThread ( ThreadContextRef aContextRef ) [static]
 

Start a thread as described by the context.

Parameters:
ThreadContext   reference to thread context object. This object is copied into a managed context.
Returns:
ThreadIdentifier identifies the process/thread id as assigned by the operating system.

Int corelinux::Thread::waitForThread ( ThreadIdentifierCref anId ) throw ( InvalidThreadException ) [static]
 

Blocks the caller until the thread has ended execution, retrieving the return code from the associated thread context.

Parameters:
ThreadIdentifier   unique thread id
Returns:
Int return code from thread context
Exceptions:
InvalidThreadException   if not a valid thread identifier.


The documentation for this class was generated from the following files:
This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium