X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fbackgroundsupr.h;h=ada1550f8c4e6ca85d314c75907ca2de55b4815a;hb=d77c9d135405e077047ef3426a54470c144cdd34;hp=dac77cc60106204195a22f3262e328062c2fd12a;hpb=8cce345df80fdbeea1c03a04a71d805951a87b74;p=ctsim.git diff --git a/src/backgroundsupr.h b/src/backgroundsupr.h index dac77cc..ada1550 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.7 2001/03/04 03:14:47 kevin Exp $ +** $Id: backgroundsupr.h,v 1.9 2001/03/05 17:26:46 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 @@ -49,6 +49,7 @@ public: // Pure virtual class for BackgroundSupervisor that can communication // with BackgroundManager via messages class BackgroundWorkerThread; +class BackgroundProcessingDocument; class BackgroundSupervisor : public wxEvtHandler { private: @@ -56,19 +57,18 @@ private: SupervisorThread* m_pMyThread; wxFrame* m_pParentFrame; - wxDocument* m_pDocument; + BackgroundProcessingDocument* m_pDocument; const std::string m_strProcessTitle; + const unsigned int m_iTotalUnits; + int m_iNumThreads; + bool m_bDone; volatile bool m_bFail; std::string m_strFailMessage; - int m_iNumThreads; + bool m_bCancelled; volatile int m_iRunning; unsigned int m_iUnitsDone; - const unsigned int m_iTotalUnits; - bool m_bCancelled; - bool m_bDone; Timer* m_pTimer; - bool m_bBackgroundTaskAdded; bool m_bWorkersDeleted; typedef std::vector ThreadContainer; @@ -89,7 +89,7 @@ public: MSG_WORKER_THREAD_FAIL = 7507, // sent by workers when they fail }; - BackgroundSupervisor (SupervisorThread* pMyThread, wxFrame* pParentFrame, wxDocument* pDocument, const char* const pszProcessTitle, + BackgroundSupervisor (SupervisorThread* pMyThread, wxFrame* pParentFrame, BackgroundProcessingDocument* pDocument, const char* const pszProcessTitle, int iTotalUnits); BackgroundSupervisor () @@ -104,24 +104,24 @@ public: bool start(); virtual void onDone() {}; - virtual void OnWorkerFail(wxCommandEvent& event); - virtual void OnWorkerUnitTick(wxCommandEvent& event); - virtual void OnWorkerDone(wxCommandEvent& event); - virtual void OnCancel(wxCommandEvent& event); - virtual void OnAckDocumentRemove(wxCommandEvent& event); + virtual void onCancel(); + + virtual void onWorkerFail(int iThread, std::string strFailMessage); + virtual void onWorkerUnitTick(); + virtual void onWorkerDone(int iThread); void deleteWorkers(); + bool workersDone() const { return m_iRunning == 0; } bool workersDeleted() const { return m_bWorkersDeleted; } bool isDone() const {return m_bDone;} void setDone() { m_bDone = true; } bool fail() const {return m_bFail;} const std::string& getFailMessage() const { return m_strFailMessage; } + bool cancelled() const {return m_bCancelled;} int getNumWorkers() const { return m_iNumThreads; } double getTimerEnd() { return m_pTimer->timerEnd(); } - static void cancelSupervisor (BackgroundSupervisor* pSupervisor); - DECLARE_EVENT_TABLE() };