projects
/
ctsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Automated commit for debian release 5.2.0-1
[ctsim.git]
/
src
/
backgroundsupr.h
diff --git
a/src/backgroundsupr.h
b/src/backgroundsupr.h
index 12372d0b4e0e88ae5eed87445d3744ee90182d7d..8d310a479f9325cccfe51a3e42a66376424cf0f3 100644
(file)
--- a/
src/backgroundsupr.h
+++ b/
src/backgroundsupr.h
@@
-7,9
+7,7
@@
** Date Started: February 2001
**
** This is part of the CTSim program
** Date Started: February 2001
**
** This is part of the CTSim program
-** Copyright (C) 1983-2001 Kevin Rosenberg
-**
-** $Id: backgroundsupr.h,v 1.4 2001/02/25 19:24:01 kevin Exp $
+** Copyright (C) 1983-2009 Kevin Rosenberg
**
** 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
**
** 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
@@
-46,36
+44,34
@@
public:
};
};
-// Pure virtual class for BackgroundSupervisor that can communication
-// with BackgroundManager via messages
+// Pure virtual class for BackgroundSupervisor that can communication with BackgroundManager via messages
class BackgroundWorkerThread;
class BackgroundWorkerThread;
+class BackgroundProcessingDocument;
class BackgroundSupervisor : public wxEvtHandler {
private:
DECLARE_DYNAMIC_CLASS(BackgroundSupervisor)
class BackgroundSupervisor : public wxEvtHandler {
private:
DECLARE_DYNAMIC_CLASS(BackgroundSupervisor)
-
- typedef std::vector<BackgroundWorkerThread*> ThreadContainer;
- ThreadContainer m_vecpThreads;
- wxFrame* m_pParentFrame;
- wxDocument* m_pDocument;
- const std::string m_strProcessTitle;
- wxProgressDialog* m_pDialogProgress;
- volatile bool m_bFail;
- std::string m_strFailMessage;
+ SupervisorThread* m_pMyThread;
+ wxWindow* m_pParentFrame;
+ BackgroundProcessingDocument* m_pDocument;
+ const wxString m_strProcessTitle;
+
+ const unsigned int m_iTotalUnits;
int m_iNumThreads;
int m_iNumThreads;
+ volatile bool m_bDone;
+ volatile bool m_bFail;
+ wxString m_strFailMessage;
+ volatile bool m_bCancelled;
volatile int m_iRunning;
volatile int m_iRunning;
- unsigned int m_iUnitsDone;
- const unsigned int m_iTotalUnits;
- bool m_bCancelled;
- bool m_bDone;
+ volatile unsigned int m_iUnitsDone;
Timer* m_pTimer;
Timer* m_pTimer;
- bool m_bBackgroundTaskAdded;
- bool m_bWorkersDeleted;
- wxCriticalSection m_critsectThreads;
+ volatile bool m_bWorkersDeleted;
+ volatile bool m_bBackgroundManagerAdded;
-protected:
- SupervisorThread* m_MyThread;
+ typedef std::vector<BackgroundWorkerThread*> ThreadContainer;
+ ThreadContainer m_vecpThreads;
+ wxCriticalSection m_critsectThreads;
public:
enum {
public:
enum {
@@
-90,11
+86,11
@@
public:
MSG_WORKER_THREAD_FAIL = 7507, // sent by workers when they fail
};
MSG_WORKER_THREAD_FAIL = 7507, // sent by workers when they fail
};
- BackgroundSupervisor (SupervisorThread* pMyThread, wx
Frame* pParentFrame, wxDocument* pDocument, const char* const pszProcessTitle,
+ BackgroundSupervisor (SupervisorThread* pMyThread, wx
Window* pParentFrame, BackgroundProcessingDocument* pDocument, wxChar const* pszProcessTitle,
int iTotalUnits);
BackgroundSupervisor ()
int iTotalUnits);
BackgroundSupervisor ()
- :
m_iTotalUnits(0), wxEvtHandler(
)
+ :
wxEvtHandler(), m_iTotalUnits(0
)
{}
virtual ~BackgroundSupervisor();
{}
virtual ~BackgroundSupervisor();
@@
-104,25
+100,26
@@
public:
bool start();
virtual void onDone() {};
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, const wxString& strFailMessage
);
+ virtual void
onWorkerUnitTick(
);
+ virtual void
onWorkerDone(int iThread
);
void deleteWorkers();
void deleteWorkers();
+ void ackRemoveBackgroundManager();
+ 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;}
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; }
+ const wxString& getFailMessage() const { return m_strFailMessage; }
+ bool cancelled() const {return m_bCancelled;}
int getNumWorkers() const { return m_iNumThreads; }
double getTimerEnd() { return m_pTimer->timerEnd(); }
int getNumWorkers() const { return m_iNumThreads; }
double getTimerEnd() { return m_pTimer->timerEnd(); }
- static void cancelSupervisor (BackgroundSupervisor* pSupervisor);
-
DECLARE_EVENT_TABLE()
};
DECLARE_EVENT_TABLE()
};
@@
-130,14
+127,13
@@
public:
class BackgroundWorkerThread : public wxThread {
protected:
BackgroundSupervisor* m_pSupervisor;
class BackgroundWorkerThread : public wxThread {
protected:
BackgroundSupervisor* m_pSupervisor;
+ const int m_iThread;
const int m_iStartUnit;
const int m_iNumUnits;
const int m_iStartUnit;
const int m_iNumUnits;
- const int m_iThread;
public:
BackgroundWorkerThread (BackgroundSupervisor* pSupervisor, int iThread, int iStartUnit, int iNumUnits)
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)
{}
};
{}
};