|
nux-1.14.0
|
Public Member Functions | |
| SystemThread (AbstractThread *Parent=0) | |
| virtual ThreadState | Start (void *arg) |
Protected Member Functions | |
| virtual unsigned int | Run (void *arg) |
| virtual ThreadState | StartChildThread (NThread *thread, bool Modal) |
| virtual void | AddChildThread (NThread *) |
| virtual void | RemoveChildThread (NThread *) |
| virtual void | ChildHasFinished (NThread *app) |
| virtual void | TerminateAllChildThread () |
| virtual bool | ThreadCtor () |
| virtual bool | ThreadDtor () |
Protected Attributes | |
| void * | m_InitData |
| void * | m_ExitData |
Friends | |
| class | WindowThread |
| SystemThread * | CreateSystemThread (AbstractThread *Parent, ThreadUserInitFunc UserInitFunc, void *InitData) |
Definition at line 32 of file SystemThread.h.
| t_u32 nux::SystemThread::Run | ( | void * | ) | [protected, virtual] |
Info: Override this method.
This function should contain the body/code of your thread. Notice the signature is similar to that of any worker thread function except for the calling convention.
Implements nux::AbstractThread.
Definition at line 74 of file SystemThread.cpp.
References m_InitData.
{
if (m_UserInitFunc)
{
(*m_UserInitFunc) (this, m_InitData);
}
if (m_Parent)
{
if (m_Parent->Type().IsObjectType (SystemThread::StaticObjectType) )
static_cast<SystemThread *> (m_Parent)->ChildHasFinished (this);
if (m_Parent->Type().IsObjectType (WindowThread::StaticObjectType) )
static_cast<WindowThread *> (m_Parent)->ChildHasFinished (this);
}
SetThreadState (THREADSTOP);
TerminateAllChildThread();
return 0;
}
| ThreadState nux::SystemThread::Start | ( | void * | arg | ) | [virtual] |
Info: Starts the thread.
This function starts the thread pointed by m_pThreadFunc with default attributes
Reimplemented from nux::NThread.
Definition at line 55 of file SystemThread.cpp.
{
if (!m_Parent)
{
return NThread::Start();
}
else
{
if (m_Parent->Type().IsObjectType (SystemThread::StaticObjectType) )
return static_cast<SystemThread *> (m_Parent)->StartChildThread (this, true);
if (m_Parent->Type().IsObjectType (WindowThread::StaticObjectType) )
return static_cast<WindowThread *> (m_Parent)->StartChildThread (this, true);
nuxAssertMsg (0, TEXT ("[WindowThread::Start] This should not happen.") );
return THREAD_START_ERROR;
}
}
| bool nux::SystemThread::ThreadCtor | ( | ) | [protected, virtual] |
Info: Constructor-like function.
Will be called by EntryPoint before executing the thread body. Override this function to provide your extra initialization.
NOTE: do not confuse it with the classes constructor
Reimplemented from nux::NThread.
Definition at line 151 of file SystemThread.cpp.
{
SetThreadState (THREADRUNNING);
return true;
}
| bool nux::SystemThread::ThreadDtor | ( | ) | [protected, virtual] |
Info: Destructor-like function.
Will be called by EntryPoint after executing the thread body. Override this function to provide your extra destruction.
NOTE: do not confuse it with the classes constructor
Reimplemented from nux::NThread.
Definition at line 158 of file SystemThread.cpp.
{
return true;
}
void* nux::SystemThread::m_InitData [protected] |
This pointer maybe set by the user in ThreadInitFunc and reused in ThreadExitFunc
Reimplemented from nux::AbstractThread.
Definition at line 58 of file SystemThread.h.
Referenced by Run().