00001
00002
00003 #ifndef ASGTOOLS_IASGTOOL_H
00004 #define ASGTOOLS_IASGTOOL_H
00005
00006
00007 #include <string>
00008
00009
00010 #include "AsgTools/AsgToolsConf.h"
00011 #include "AsgTools/AsgToolMacros.h"
00012
00013
00014 #ifdef ASGTOOL_ATHENA
00015 # include "GaudiKernel/IAlgTool.h"
00016 #elif defined(ASGTOOL_STANDALONE)
00017 # include "AsgTools/StatusCode.h"
00018 #else
00019 # error "What environment are we in?!?"
00020 #endif // Environment selection
00021
00022 namespace asg {
00023
00035 class IAsgTool
00036 #ifdef ASGTOOL_ATHENA
00037 : virtual public ::IAlgTool
00038 #endif // ASGTOOL_ATHENA
00039 {
00040
00041 public:
00043 virtual ~IAsgTool() {}
00044
00045 #ifdef ASGTOOL_STANDALONE
00046
00049
00051 virtual StatusCode initialize() = 0;
00052
00054 virtual const std::string& name() const = 0;
00056 virtual void setName( const std::string& name ) = 0;
00057
00059
00060 #endif // not ASGTOOL_ATHENA
00061
00063 virtual void print() const = 0;
00064
00065 };
00066
00067 }
00068
00069 #endif // ASGTOOLS_IASGTOOL_H