X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fbackgroundsupr.h;h=dac77cc60106204195a22f3262e328062c2fd12a;hb=8cce345df80fdbeea1c03a04a71d805951a87b74;hp=faae6e0c60b2d8b0ea09190d3cdc6811d2160514;hpb=3b09207d7c37bc3d48e331657353123ed2f66ed9;p=ctsim.git diff --git a/src/backgroundsupr.h b/src/backgroundsupr.h index faae6e0..dac77cc 100644 --- a/src/backgroundsupr.h +++ b/src/backgroundsupr.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2001 Kevin Rosenberg ** -** $Id: backgroundsupr.h,v 1.1 2001/02/25 06:32:12 kevin Exp $ +** $Id: backgroundsupr.h,v 1.7 2001/03/04 03:14:47 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -53,15 +53,12 @@ class BackgroundWorkerThread; class BackgroundSupervisor : public wxEvtHandler { private: DECLARE_DYNAMIC_CLASS(BackgroundSupervisor) - - typedef std::vector ThreadContainer; - ThreadContainer m_vecpThreads; - wxCriticalSection m_critsectThreadContainer; + + SupervisorThread* m_pMyThread; wxFrame* m_pParentFrame; wxDocument* m_pDocument; const std::string m_strProcessTitle; - wxProgressDialog* m_pDialogProgress; - + volatile bool m_bFail; std::string m_strFailMessage; int m_iNumThreads; @@ -72,6 +69,12 @@ private: bool m_bDone; Timer* m_pTimer; bool m_bBackgroundTaskAdded; + bool m_bWorkersDeleted; + + typedef std::vector ThreadContainer; + ThreadContainer m_vecpThreads; + wxCriticalSection m_critsectThreads; + public: enum { @@ -86,11 +89,11 @@ public: MSG_WORKER_THREAD_FAIL = 7507, // sent by workers when they fail }; - BackgroundSupervisor (wxFrame* pParentFrame, wxDocument* pDocument, const char* const pszProcessTitle, + BackgroundSupervisor (SupervisorThread* pMyThread, wxFrame* pParentFrame, wxDocument* pDocument, const char* const pszProcessTitle, int iTotalUnits); BackgroundSupervisor () - : m_iTotalUnits(0), wxEvtHandler() + : wxEvtHandler(), m_iTotalUnits(0) {} virtual ~BackgroundSupervisor(); @@ -99,7 +102,6 @@ public: { return NULL; } bool start(); - void deleteAnyWorkers(); virtual void onDone() {}; virtual void OnWorkerFail(wxCommandEvent& event); @@ -108,7 +110,8 @@ public: virtual void OnCancel(wxCommandEvent& event); virtual void OnAckDocumentRemove(wxCommandEvent& event); - bool anyWorkersRunning() const { return m_iRunning > 0 ? true : false; } + void deleteWorkers(); + bool workersDeleted() const { return m_bWorkersDeleted; } bool isDone() const {return m_bDone;} void setDone() { m_bDone = true; } bool fail() const {return m_bFail;} @@ -126,15 +129,14 @@ public: class BackgroundWorkerThread : public wxThread { protected: BackgroundSupervisor* m_pSupervisor; + const int m_iThread; const int m_iStartUnit; const int m_iNumUnits; - const int m_iThread; public: BackgroundWorkerThread (BackgroundSupervisor* pSupervisor, int iThread, int iStartUnit, int iNumUnits) - : m_pSupervisor(pSupervisor), m_iThread(iThread), m_iStartUnit(iStartUnit), m_iNumUnits(iNumUnits), - wxThread (wxTHREAD_DETACHED) + : wxThread (wxTHREAD_DETACHED), m_pSupervisor(pSupervisor), m_iThread(iThread), m_iStartUnit(iStartUnit), m_iNumUnits(iNumUnits) {} }; -#endif // _BACKGROUNDSUPR_H_ \ No newline at end of file +#endif // _BACKGROUNDSUPR_H_