Files
Work/proto/source/PTHREAD.CPP
2024-08-07 09:16:27 -04:00

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)
{
}