+class BackgroundProcessingDocument : public wxDocument
+{
+private:
+ DECLARE_DYNAMIC_CLASS(BackgroundProcessingDocument)
+#ifdef HAVE_WXTHREADS
+ typedef BackgroundSupervisor BackgroundObject;
+ typedef std::vector<BackgroundObject*> BackgroundContainer;
+ BackgroundContainer m_vecpBackgroundSupervisors;
+ wxCriticalSection m_criticalSection;
+#endif
+
+public:
+ BackgroundProcessingDocument()
+ : wxDocument()
+ {}
+
+ void cancelRunningTasks();
+#ifdef HAVE_WXTHREADS
+ void addBackgroundSupervisor (BackgroundSupervisor* pSupervisor);
+ void removeBackgroundSupervisor (BackgroundSupervisor* pSupervisor);
+#endif