59 lines
1.3 KiB
C++
59 lines
1.3 KiB
C++
#include <proto/pthread.hpp>
|
|
|
|
ProcessThread::ProcessThread(void)
|
|
: mIsProcessing(false)
|
|
{
|
|
mThreadHandler.setCallback(this,&ProcessThread::threadHandler);
|
|
MessageThread::insertHandler(&mThreadHandler);
|
|
}
|
|
|
|
ProcessThread::ProcessThread(const ProcessThread &/*someProcessThread*/)
|
|
{ // private implementation
|
|
}
|
|
|
|
ProcessThread::~ProcessThread()
|
|
{
|
|
stop();
|
|
MessageThread::removeHandler(&mThreadHandler);
|
|
}
|
|
|
|
ProcessThread &ProcessThread::operator=(const ProcessThread &/*someProcessThread*/)
|
|
{ // private implementation
|
|
return *this;
|
|
}
|
|
|
|
void ProcessThread::startProcess(void)
|
|
{
|
|
if(isProcessing())return;
|
|
ThreadMessage message(ThreadMessage::TM_USER,StartProcess);
|
|
sendMessage(message);
|
|
}
|
|
|
|
DWORD ProcessThread::threadHandler(ThreadMessage &someThreadMessage)
|
|
{
|
|
switch(someThreadMessage.message())
|
|
{
|
|
case ThreadMessage::TM_CREATE :
|
|
break;
|
|
case ThreadMessage::TM_DESTROY :
|
|
::OutputDebugString("Thread is processing TM_DESTROY\n");
|
|
break;
|
|
case ThreadMessage::TM_USER :
|
|
if(StartProcess==someThreadMessage.userDataOne())
|
|
{
|
|
mIsProcessing=true;
|
|
::OutputDebugString("Thread is in TM_USER\n");
|
|
processHandler();
|
|
mIsProcessing=false;
|
|
::OutputDebugString("Thread is leaving TM_USER\n");
|
|
mDestructEvent.setEvent();
|
|
}
|
|
break;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
void ProcessThread::processHandler(void)
|
|
{
|
|
}
|