00001 #ifndef Fireworks_Core_CmsShowTaskExecutorBase_h 00002 #define Fireworks_Core_CmsShowTaskExecutorBase_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Core 00006 // Class : CmsShowTaskExecutorBase 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Fri Jul 11 12:09:38 EDT 2008 00019 // $Id: CmsShowTaskExecutorBase.h,v 1.6 2009/01/23 21:35:42 amraktad Exp $ 00020 // 00021 00022 // system include files 00023 #include <sigc++/signal.h> 00024 00025 // user include files 00026 00027 // forward declarations 00028 class TTimer; 00029 class CmsShowTaskTimer; 00030 00031 class CmsShowTaskExecutorBase { 00032 00033 public: 00034 CmsShowTaskExecutorBase(); 00035 virtual ~CmsShowTaskExecutorBase(); 00036 00037 // ---------- const member functions --------------------- 00038 00039 // ---------- static member functions -------------------- 00040 00041 // ---------- member functions --------------------------- 00042 void requestNextTask(); 00043 void doNextTask(); 00044 00045 virtual void startDoingTasks()=0; 00046 00047 sigc::signal<void> tasksCompleted_; 00048 00049 protected: 00050 virtual void doNextTaskImp() = 0; 00051 virtual bool moreTasksAvailable() = 0; 00052 private: 00053 CmsShowTaskExecutorBase(const CmsShowTaskExecutorBase&); // stop default 00054 00055 const CmsShowTaskExecutorBase& operator=(const CmsShowTaskExecutorBase&); // stop default 00056 00057 // ---------- member data -------------------------------- 00058 //TTimer* m_timer; 00059 CmsShowTaskTimer* m_taskTimer; 00060 }; 00061 00062 00063 #endif