00001 #include "ConcreteTool.h" 00002 using namespace std; 00003 00004 ConcreteTool::ConcreteTool(const string& type, const string& name, const IInterface* parent) 00005 : AlgTool(type,name,parent) 00006 , m_log(msgSvc(),name) 00007 { 00008 declareProperty("Cut",m_cut = 0); 00009 m_log << MSG::INFO << "Created" << endreq; 00010 } 00011 ConcreteTool::~ConcreteTool() 00012 { 00013 } 00014 StatusCode ConcreteTool::initialize() 00015 { 00016 m_log.setLevel( outputLevel() ); 00017 m_log << MSG::INFO << "initialized with cut = " << m_cut << endreq; 00018 return StatusCode::SUCCESS; 00019 } 00020 00021 StatusCode ConcreteTool::queryInterface( const InterfaceID& riid, void** ppvIf ) 00022 { 00023 if ( riid == IVirtualTool::interfaceID() ) { 00024 *ppvIf = (IVirtualTool*)this; 00025 addRef(); 00026 return StatusCode::SUCCESS; 00027 } 00028 return AlgTool::queryInterface( riid, ppvIf ); 00029 } 00030 00031 StatusCode ConcreteTool::finalize() 00032 { 00033 m_log << MSG::INFO << "finalized" << endreq; 00034 return StatusCode::SUCCESS; 00035 } 00036 00037 StatusCode ConcreteTool::doSomething(double& result) 00038 { 00039 m_log << MSG::INFO << "doSomething(" << result << ") cut=" << m_cut << endreq; 00040 if (result < m_cut) { 00041 result = m_cut; 00042 } 00043 return StatusCode::SUCCESS; 00044 } 00045 00046 StatusCode ConcreteTool::setProperty(const Property& p) 00047 { 00048 string name = p.name(); 00049 00050 m_log << MSG::INFO << "ConcreteTool::setProperty("<<name<<") = " 00051 << "Property::toString(): " << p.toString() << endreq; 00052 00053 return AlgTool::setProperty(p); 00054 }