CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/Fireworks/Core/src/CmsShowTaskExecutorBase.h

Go to the documentation of this file.
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