00001 #ifndef CONCRETEALGORITHM_H 00002 #define CONCRETEALGORITHM_H 00003 00004 #include "ConfigurableExample/IVirtualTool.h" 00005 00006 #include "GaudiKernel/Algorithm.h" 00007 #include "GaudiKernel/MsgStream.h" 00008 #include "GaudiKernel/ToolHandle.h" 00009 00010 #include <string> 00011 #include <vector> 00012 00013 00014 00015 class ConcreteAlgorithm : public Algorithm { 00016 public: 00017 ConcreteAlgorithm(const std::string& name, ISvcLocator* svcloc); 00018 virtual ~ConcreteAlgorithm(); 00019 StatusCode initialize(); // called once, at start of job 00020 StatusCode reinitialize(); // can be called anytime after init 00021 StatusCode beginRun(); // called at begin of every run 00022 StatusCode execute(); // called every event 00023 StatusCode endRun(); // called at end of every run 00024 StatusCode finalize(); // called once, at end of job 00025 00026 StatusCode setProperty(const Property& p); 00027 00028 private: 00029 00030 MsgStream m_log; 00031 ToolHandle<IVirtualTool> m_privTool, m_pubTool; 00032 ToolHandleArray<IVirtualTool> m_listOfPrivateTools; 00033 ToolHandleArray<IVirtualTool> m_listOfPublicTools; 00034 std::vector<std::string> m_strings; 00035 double m_double; 00036 }; 00037 00038 00039 #endif // CONCRETEALGORITHM_H