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

corelinux::ThreadContext Class Reference

ThreadContext describes the context in which the thread operates. More...

#include <ThreadContext.hpp>

Inheritance diagram for corelinux::ThreadContext::

corelinux::Synchronized ArgumentContext EventContext List of all members.

Public Methods

 ThreadContext (CallerFunctionPtr) throw ( Assertion )
 Default constructor only requires a caller entry point function. More...

 ThreadContext (CallerFunctionPtr, Size) throw ( Assertion )
 Constructor which allows the caller to define the stack. More...

 ThreadContext (ThreadContextCref) throw ( Assertion )
 Copy constructor takes information from the context argument. More...

virtual ~ThreadContext (void)
 Virtual destructor.

ThreadContextRef operator= (ThreadContextCref) throw ( Assertion )
 Assignment operator changes the context. More...

bool operator== (ThreadContextCref) const
 Equality operator compares contexts. More...

bool operator== (ThreadIdentifierCref) const
 Equality matches the thread identifiers. More...

bool operator== (CallerFunctionPtr) const
 Equality operator matches the callers function. More...

 operator ThreadIdentifierCref (void) const
 Coerces ThreadContext to ThreadIdentifier. More...

const ThreadStategetState (void) const
 Get the state of the thread as reflected in its context. More...

Size getStackSize (void) const
 Get the size of the stack as defined by the context constructor. More...

Int getShareMask (void) const
 Get the share mask for the thread which determines VM, FILES, FILESYSTEM, SIGNAL shares. More...

Int getReturnCode (void) const
 Return the code returned by the callers function. More...

ThreadIdentifierCref getIdentifier (void) const
 Get the identifier for the thread. More...

virtual ThreadFrameFunctionPtr getFramePointer (void)
 Get the thread frame function pointer. More...

BytePtr getStack (void)
 Get the stack pointer.

BytePtr * getStackTop (void)
 Get the top of stack pointer.

void setShareMask (Int)
 Change the sharing mask for the thread. More...

void setFrameFunction (ThreadFrameFunctionPtr)
 Allows the caller to substitute the thread frame entry point. More...

void setContextFunctions (ThreadContextCreatePtr, ThreadContextDestroyPtr)
 Allows the caller to substitute the routines which create and destroy the managed ThreadContext object. More...

void setStackFunctions (ThreadStackCreatePtr, ThreadStackDestroyPtr)
 Allows the caller to substitute the routines which create and destroy the managed ThreadContext stack object. More...

void setReturnCode (Int)
 Set the return code for the thread. More...

void setThreadState (ThreadState)
 Set the state for the thread. More...

ThreadContextPtr createContext (void) throw ( ThreadException )
 Create a instance of ourself, we also invoke the create stack method so the instance is ready to be used to run a thread. More...

void destroyContext (ThreadContextPtr) throw ( Assertion )
 Destroys the context instance. More...


Static Public Methods

Int cloneFrameFunction (ThreadContextPtr)
 The definitive thread frame entry point. More...


Protected Methods

 ThreadContext (void) throw ( Assertion )
 Default constructor throws NEVER_GET_HERE.

ThreadContextRef operator= (ThreadIdentifier)
 Assignment operator for designating thread identity. More...

CallerFunctionPtr getCallerFunction (void)
 Return the function pointer of the callers thread routine. More...


Detailed Description

ThreadContext describes the context in which the thread operates.

Included are stack resource, shared address space flags, factory methods, and state indicators.


Constructor & Destructor Documentation

corelinux::ThreadContext::ThreadContext CallerFunctionPtr    aFuncPtr throw ( Assertion )
 

Default constructor only requires a caller entry point function.

Defaults in effect are 8k stack which is allocated by the system, and all resources of the caller are shared by the new thread.

Parameters:
CallerFunction  pointer to the callers thread routine.
Exceptions:
Assertion  if pointer is null

corelinux::ThreadContext::ThreadContext CallerFunctionPtr    aFuncPtr,
Size    aStackSize
throw ( Assertion )
 

Constructor which allows the caller to define the stack.

All resources of the caller are shared by the new thread.

Parameters:
CallerFunction  pointer to the callers thread routine.
Size  Request size for stack in number of bytes.
Exceptions:
Assertion  if routine pointer is null or callers stack size is negative.

corelinux::ThreadContext::ThreadContext ThreadContextCref    aContext throw ( Assertion )
 

Copy constructor takes information from the context argument.

Parameters:
ThreadContext  reference to existing context
Exceptions:
ThreadNotWaitingException  if the argument context is not in a THREAD_WAITING_TO_START state.


Member Function Documentation

Int corelinux::ThreadContext::cloneFrameFunction ThreadContextPtr    aPtr [static]
 

The definitive thread frame entry point.

This is the address that "clone" gets.

Parameters:
ThreadContext  pointer to a thread context
Returns:
Int return code

ThreadContextPtr corelinux::ThreadContext::createContext void    throw ( ThreadException )
 

Create a instance of ourself, we also invoke the create stack method so the instance is ready to be used to run a thread.

Returns:
ThreadContext pointer to object.
Exceptions:
ThreadAllocationException  either for Stack or Context

void corelinux::ThreadContext::destroyContext ThreadContextPtr    aContext throw ( Assertion )
 

Destroys the context instance.

A check is made to insure it is not a suicide.

Parameters:
ThreadContext  pointer to context to destroy
Exceptions:
Assertion  if self referenced

CallerFunctionPtr corelinux::ThreadContext::getCallerFunction void    [protected]
 

Return the function pointer of the callers thread routine.

Returns:
CallerFunctionPtr

ThreadFrameFunctionPtr corelinux::ThreadContext::getFramePointer void    [virtual]
 

Get the thread frame function pointer.

Returns:
ThreadFrameFunctionPtr pointer to instance or default thread frame

ThreadIdentifierCref corelinux::ThreadContext::getIdentifier void    const
 

Get the identifier for the thread.

This is only valid once a thread is started

Returns:
ThreadIdentifier the id

Int corelinux::ThreadContext::getReturnCode void    const
 

Return the code returned by the callers function.

This is only valid if the thread ended normally

Returns:
Int return code
See also:
ThreadState

Int corelinux::ThreadContext::getShareMask void    const
 

Get the share mask for the thread which determines VM, FILES, FILESYSTEM, SIGNAL shares.

Returns:
Int

Size corelinux::ThreadContext::getStackSize void    const
 

Get the size of the stack as defined by the context constructor.

Returns:
Size in bytes

const ThreadState & corelinux::ThreadContext::getState void    const
 

Get the state of the thread as reflected in its context.

Returns:
ThreadState

corelinux::ThreadContext::operator ThreadIdentifierCref void    const
 

Coerces ThreadContext to ThreadIdentifier.

Returns:
ThreadIdentifier reference

ThreadContextRef corelinux::ThreadContext::operator= ThreadIdentifier    aIdentifier [protected]
 

Assignment operator for designating thread identity.

Parameters:
ThreadIdentifier  as retrieved from the OS
Returns:
ThreadContext reference to self

ThreadContextRef corelinux::ThreadContext::operator= ThreadContextCref    aContext throw ( Assertion )
 

Assignment operator changes the context.

Parameters:
ThreadContext  reference to existing context
Returns:
ThreadContext reference
Exceptions:
ThreadNotWaitingException  if the argument context is not in a THREAD_WAITING_TO_START state.

bool corelinux::ThreadContext::operator== CallerFunctionPtr    aFunction const
 

Equality operator matches the callers function.

Parameters:
CallerFunctionPtr  a function reference
Returns:
bool true if same.

bool corelinux::ThreadContext::operator== ThreadIdentifierCref    aIdentifier const
 

Equality matches the thread identifiers.

Parameters:
ThreadIdentifier  reference to identifier
Returns:
bool true if same

bool corelinux::ThreadContext::operator== ThreadContextCref    aContext const
 

Equality operator compares contexts.

Parameters:
ThreadContext  reference to existing context
Returns:
bool true if same

void corelinux::ThreadContext::setContextFunctions ThreadContextCreatePtr    aCreate,
ThreadContextDestroyPtr    aDestroy
 

Allows the caller to substitute the routines which create and destroy the managed ThreadContext object.

The call to create the object comes in at the startThread prior to stack allocation, the call to destroy the object comes from startThread exception and error handling, or when requested by the caller.

Parameters:
ThreadContextCreatePtr  the function pointer to set, If this argument is NULLPTR the default handlers are set for create and destroy.
ThreadContextDestroyPtr  to the function pointer to set. If this argument is NULLPTR the default handlers are set for create and destroy.

void corelinux::ThreadContext::setFrameFunction ThreadFrameFunctionPtr    aFrame
 

Allows the caller to substitute the thread frame entry point.

Parameters:
ThreadFrameFunctionPtr  points to the new frame function that is called when starting a thread. If this argument is NULLPTR the default handler is set.

void corelinux::ThreadContext::setReturnCode Int    aReturnCode
 

Set the return code for the thread.

Parameters:
Int  return code value

void corelinux::ThreadContext::setShareMask Int    aMask
 

Change the sharing mask for the thread.

This is only effective when set prior to starting the thread.

Parameters:
Int  mask of values for thread resource sharing and signal disposition

void corelinux::ThreadContext::setStackFunctions ThreadStackCreatePtr    aCreate,
ThreadStackDestroyPtr    aDestroy
 

Allows the caller to substitute the routines which create and destroy the managed ThreadContext stack object.

The call to create the stack object comes in at the startThread prior to threading, the call to destroy the object comes from startThread exception and error handling, or when the destruction of the ThreadContext is imanent.

Parameters:
ThreadStackCreatePtr  pointer to set. If this argument is NULLPTR the default handlers are set for create and destroy.
ThreadStackDestroyPtr  the function pointer to set. If this argument is NULLPTR the default handlers are set for create and destroy.

void corelinux::ThreadContext::setThreadState ThreadState    aState
 

Set the state for the thread.

Parameters:
ThreadState  the threads new state


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