00001
00002 #ifndef GAUDIKERNEL_IALGORITHM_H
00003 #define GAUDIKERNEL_IALGORITHM_H
00004
00005
00006 #include "GaudiKernel/IInterface.h"
00007 #include <string>
00008
00009
00010 static const InterfaceID IID_IAlgorithm(10, 2 , 0);
00011
00021 class IAlgorithm : virtual public IInterface {
00022 public:
00024 static const InterfaceID& interfaceID() { return IID_IAlgorithm; }
00025
00029 virtual StatusCode initialize() = 0;
00030
00034 virtual StatusCode execute() = 0;
00035
00040 virtual StatusCode finalize() = 0;
00041
00043 virtual const std::string& name() const = 0;
00044
00050 virtual StatusCode sysInitialize() = 0;
00051
00053 virtual StatusCode sysExecute() = 0;
00054
00058 virtual StatusCode sysFinalize() = 0;
00059
00061 virtual StatusCode resetExecuted( ) = 0;
00062
00065 virtual StatusCode beginRun() = 0;
00068 virtual StatusCode endRun() = 0;
00069
00070 };
00071
00072 #endif // GAUDIKERNEL_IALGORITHM_H