The Gaudi Framework  v32r2 (46d42edc)
DataHandleFinder.cpp
Go to the documentation of this file.
2 
3 DataHandleFinder::DataHandleFinder( DataObjID const& target ) : m_target( target ) {}
4 
5 void DataHandleFinder::visit( const IDataHandleHolder* visitee ) {
6  if ( !visitee ) { return; }
7 
8  // See if the handle holder we're visiting contains the target
9  for ( auto& handle : visitee->inputHandles() ) {
10  if ( handle->fullKey() == m_target ) {
11  m_holderNames.push_back( visitee->name() );
12  return;
13  }
14  }
15 
16  for ( auto& handle : visitee->extraInputDeps() ) {
17  if ( handle == m_target ) {
18  m_holderNames.push_back( visitee->name() );
19  return;
20  }
21  }
22 
23  for ( auto& handle : visitee->inputDataObjs() ) {
24  if ( handle == m_target ) {
25  m_holderNames.push_back( visitee->name() );
26  return;
27  }
28  }
29 }
void visit(const IDataHandleHolder *visitee) override
virtual std::vector< Gaudi::DataHandle * > inputHandles() const =0
virtual const DataObjIDColl & inputDataObjs() const =0
virtual const std::string & name() const =0
Retrieve the name of the instance.
T push_back(T... args)
DataHandleFinder(DataObjID const &target)
DataObjID const & m_target
std::vector< std::string > m_holderNames
virtual const DataObjIDColl & extraInputDeps() const =0