62 lines
1.3 KiB
C++
62 lines
1.3 KiB
C++
#ifndef _CASHFLOW_CALCTHREAD_HPP_
|
|
#define _CASHFLOW_CALCTHREAD_HPP_
|
|
#ifndef _THREAD_MESSAGETHREAD_HPP_
|
|
#include <thread/mthread.hpp>
|
|
#endif
|
|
|
|
class CalcDlg;
|
|
class GraphWindow;
|
|
|
|
class CalcThread : public MessageThread
|
|
{
|
|
public:
|
|
enum{CalcStart};
|
|
CalcThread(void);
|
|
virtual ~CalcThread();
|
|
void startCalc(CalcDlg &calcDlg);
|
|
private:
|
|
CalcThread(const CalcThread &someCalcThread);
|
|
CalcThread &operator=(const CalcThread &someCalcThread);
|
|
DWORD threadHandler(ThreadMessage &someThreadMessage);
|
|
void performCalc(CalcDlg &calcDlg);
|
|
|
|
ThreadCallback<CalcThread> mThreadHandler;
|
|
WORD mIsInReset;
|
|
Mutex mCalcMutex;
|
|
};
|
|
|
|
#pragma warning(disable:4355)
|
|
inline
|
|
CalcThread::CalcThread(void)
|
|
: mCalcMutex("CalcMutex"), mIsInReset(FALSE)
|
|
{
|
|
mThreadHandler.setCallback(this,&CalcThread::threadHandler);
|
|
insertHandler(&mThreadHandler);
|
|
}
|
|
#pragma warning(default:4355)
|
|
|
|
inline
|
|
CalcThread::CalcThread(const CalcThread &someCalcThread)
|
|
: mCalcMutex("CalcMutex"), mIsInReset(FALSE)
|
|
{ // no implementation
|
|
*this=someCalcThread;
|
|
}
|
|
|
|
inline
|
|
CalcThread::~CalcThread()
|
|
{
|
|
mIsInReset=TRUE;
|
|
mCalcMutex.requestMutex();
|
|
mCalcMutex.releaseMutex();
|
|
stop();
|
|
removeHandler(&mThreadHandler);
|
|
}
|
|
|
|
inline
|
|
CalcThread &CalcThread::operator=(const CalcThread &/*someCalcThread*/)
|
|
{ // no implementation
|
|
return *this;
|
|
}
|
|
#endif
|
|
|