00001 #ifndef CONCRETETOOL_H 00002 #define CONCRETETOOL_H 00003 00004 #include "ConfigurableExample/IVirtualTool.h" 00005 #include "GaudiKernel/AlgTool.h" 00006 #include "GaudiKernel/MsgStream.h" 00007 00008 class ConcreteTool : virtual public IVirtualTool, virtual public AlgTool { 00009 public: 00010 ConcreteTool(const std::string&, const std::string&, const IInterface*); 00011 virtual ~ConcreteTool(); 00012 StatusCode queryInterface( const InterfaceID& riid, void** ppvIf ); 00013 00014 StatusCode initialize(); 00015 StatusCode finalize(); 00016 StatusCode doSomething( double& result ); 00017 00018 StatusCode setProperty(const Property& p); 00019 00020 private: 00021 // Private so IAlgTool's wins? 00022 static const InterfaceID& interfaceID() { return IVirtualTool::interfaceID(); } 00023 00024 MsgStream m_log; 00025 double m_cut; 00026 }; 00027 00028 #endif // CONCRETETOOL_H