Initial
This commit is contained in:
58
proto/source/PTHREAD.CPP
Normal file
58
proto/source/PTHREAD.CPP
Normal file
@@ -0,0 +1,58 @@
|
||||
#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)
|
||||
{
|
||||
}
|
||||
Reference in New Issue
Block a user