/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef ATHEXJOBOPTIONS_TOOLUSINGTOOL_H 00002 #define ATHEXJOBOPTIONS_TOOLUSINGTOOL_H 00003 00004 #include "ConfigurableExample/IVirtualTool.h" 00005 00006 #include "GaudiKernel/AlgTool.h" 00007 #include "GaudiKernel/MsgStream.h" 00008 #include "GaudiKernel/ToolHandle.h" 00009 00010 #include <string> 00011 00012 00014 00015 class ToolUsingTool : virtual public IVirtualTool, virtual public AlgTool { 00016 public: 00017 ToolUsingTool( const std::string&, const std::string&, const IInterface* ); 00018 00019 // to allow access to the IVirtualTool interface 00020 StatusCode queryInterface( const InterfaceID& riid, void** ppvIf ); 00021 00022 // setup/teardown functions, similar like those for Algorithm/Service 00023 StatusCode initialize(); 00024 StatusCode finalize(); 00025 00026 // the magic method this tool provides 00027 virtual StatusCode doSomething( double& result ); 00028 00029 public: 00030 // to resolve possible conflicts with IProperty::interfaceID() 00031 static const InterfaceID& interfaceID() { return IVirtualTool::interfaceID(); } 00032 00033 private: 00034 MsgStream m_log; 00035 00036 private: 00037 double m_factor; 00038 00039 ToolHandle< IVirtualTool > m_pubTool; 00040 ToolHandle< IVirtualTool > m_privTool; 00041 ToolHandleArray< IVirtualTool > m_toolArray; 00042 }; 00043 00044 #endif // !ATHEXJOBOPTIONS_TOOLUSINGTOOL_H