Initial
This commit is contained in:
54
proto/source/PTHREAD.HPP
Normal file
54
proto/source/PTHREAD.HPP
Normal file
@@ -0,0 +1,54 @@
|
||||
#ifndef _PROTO_PROCESSTHREAD_HPP_
|
||||
#define _PROTO_PROCESSTHREAD_HPP_
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _THREAD_MESSAGETHREAD_HPP_
|
||||
#include <thread/mthread.hpp>
|
||||
#endif
|
||||
#ifndef _THREAD_EVENT_HPP_
|
||||
#include <thread/event.hpp>
|
||||
#endif
|
||||
|
||||
class ProcessThread : private MessageThread
|
||||
{
|
||||
public:
|
||||
ProcessThread(void);
|
||||
virtual ~ProcessThread();
|
||||
void startProcess(void);
|
||||
bool isProcessing(void)const;
|
||||
void waitForProcess(void);
|
||||
void wait(void);
|
||||
protected:
|
||||
virtual void processHandler(void);
|
||||
private:
|
||||
enum Message{StartProcess};
|
||||
ProcessThread(const ProcessThread &someProcessThread);
|
||||
ProcessThread &operator=(const ProcessThread &someProcessThread);
|
||||
DWORD threadHandler(ThreadMessage &someThreadMessage);
|
||||
|
||||
ThreadCallback<ProcessThread> mThreadHandler;
|
||||
Event mDestructEvent;
|
||||
bool mIsProcessing;
|
||||
};
|
||||
|
||||
inline
|
||||
bool ProcessThread::isProcessing(void)const
|
||||
{
|
||||
return mIsProcessing;
|
||||
}
|
||||
|
||||
inline
|
||||
void ProcessThread::waitForProcess(void)
|
||||
{
|
||||
if(!isProcessing())return;
|
||||
mDestructEvent.waitEvent();
|
||||
}
|
||||
|
||||
inline
|
||||
void ProcessThread::wait(void)
|
||||
{
|
||||
MessageThread::stop();
|
||||
MessageThread::wait();
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user