** This is part of the CTSim program
** Copyright (C) 1983-2001 Kevin Rosenberg
**
-** $Id: threadrecon.h,v 1.1 2001/02/22 11:05:38 kevin Exp $
+** $Id: threadrecon.h,v 1.2 2001/02/22 15:00:20 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
#include "timer.h"
+class BackgroundTask : public wxEvtHandler {
+public:
+ BackgroundTask()
+ : wxEvtHandler()
+ {}
+
+ virtual ~BackgroundTask()
+ {}
+
+ virtual void cancel() = 0;
+ virtual bool start() = 0;
+};
+
class Reconstructor;
class ImageFile;
class ProjectionFileDocument;
class ReconstructionThread;
class ProjectionFileView;
-class ThreadedReconstructor : public wxEvtHandler {
+class ThreadedReconstructor : public BackgroundTask {
private:
DECLARE_DYNAMIC_CLASS(ThreadedReconstructor)
std::vector<ReconstructionThread*> m_vecpThread;
ProjectionFileView* m_pProjView;
wxProgressDialog* m_pDialogProgress;
+ wxGauge* m_pGauge;
volatile bool m_bFail;
int m_iNumThreads;
const char* pszBackprojectName, const char* const pszLabel);
ThreadedReconstructor ()
- : m_bFail(true), m_iNumThreads(0), m_iImageNX(0), m_iImageNY(0), m_iTotalViews(0)
+ : m_bFail(true), m_iNumThreads(0), m_iImageNX(0), m_iImageNY(0), m_iTotalViews(0), BackgroundTask()
{}
~ThreadedReconstructor ();