The Gaudi Framework  master (d98a2936)
DataHandleHolderVisitor.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include <GaudiKernel/DataObjID.h>
15 #include <map>
16 #include <set>
17 #include <string>
18 #include <vector>
19 
21 public:
22  using Owners = std::vector<const IDataHandleHolder*>;
23 
25 
26  const DataObjIDColl& ignoredInpKeys() const { return m_ign_i; }
27  const DataObjIDColl& ignoredOutKeys() const { return m_ign_o; }
28 
29  void visit( const IDataHandleHolder* visitee ) override;
30 
31  const std::map<DataObjID, std::set<const IDataHandleHolder*>>& owners() const { return m_owners; }
32 
33  std::vector<const IDataHandleHolder*> owners_of( const DataObjID& id ) const;
34 
35  std::vector<std::string> owners_names_of( const DataObjID& id, bool with_main = false ) const;
36 
38  bool empty() const;
39 
40 private:
43 
44  std::map<DataObjID, std::set<const IDataHandleHolder*>> m_owners;
45 
46  std::string m_initialName;
47 
48  MsgStream& report( MsgStream& stream ) const;
49 
50  friend MsgStream& operator<<( MsgStream& stream, const DHHVisitor& visitor ) { return visitor.report( stream ); }
51 };
DHHVisitor::visit
void visit(const IDataHandleHolder *visitee) override
Definition: DataHandleHolderVisitor.cpp:26
IDataHandleHolder
Definition: IDataHandleHolder.h:23
DHHVisitor::m_ign_i
DataObjIDColl m_ign_i
Definition: DataHandleHolderVisitor.h:42
DHHVisitor::owners
const std::map< DataObjID, std::set< const IDataHandleHolder * > > & owners() const
Definition: DataHandleHolderVisitor.h:31
Write.stream
stream
Definition: Write.py:32
DHHVisitor::empty
bool empty() const
return true if no DataHandle was found
Definition: DataHandleHolderVisitor.cpp:122
DHHVisitor::m_initialName
std::string m_initialName
Definition: DataHandleHolderVisitor.h:46
DHHVisitor::m_ido
DataObjIDColl & m_ido
Definition: DataHandleHolderVisitor.h:41
DHHVisitor::m_owners
std::map< DataObjID, std::set< const IDataHandleHolder * > > m_owners
Definition: DataHandleHolderVisitor.h:44
DataObjID.h
DHHVisitor::report
MsgStream & report(MsgStream &stream) const
Definition: DataHandleHolderVisitor.cpp:91
DHHVisitor
Definition: DataHandleHolderVisitor.h:20
DHHVisitor::DHHVisitor
DHHVisitor(DataObjIDColl &ido, DataObjIDColl &odo)
Definition: DataHandleHolderVisitor.cpp:24
DHHVisitor::owners_names_of
std::vector< std::string > owners_names_of(const DataObjID &id, bool with_main=false) const
Definition: DataHandleHolderVisitor.cpp:82
DHHVisitor::m_odo
DataObjIDColl & m_odo
Definition: DataHandleHolderVisitor.h:41
DHHVisitor::ignoredOutKeys
const DataObjIDColl & ignoredOutKeys() const
Definition: DataHandleHolderVisitor.h:27
DHHVisitor::Owners
std::vector< const IDataHandleHolder * > Owners
Definition: DataHandleHolderVisitor.h:22
DHHVisitor::operator<<
friend MsgStream & operator<<(MsgStream &stream, const DHHVisitor &visitor)
Definition: DataHandleHolderVisitor.h:50
DataObjIDColl
std::unordered_set< DataObjID, DataObjID_Hasher > DataObjIDColl
Definition: DataObjID.h:122
MsgStream
Definition: MsgStream.h:29
DataObjID
Definition: DataObjID.h:47
IDataHandleVisitor
Definition: IDataHandleHolder.h:45
DHHVisitor::ignoredInpKeys
const DataObjIDColl & ignoredInpKeys() const
Definition: DataHandleHolderVisitor.h:26
DHHVisitor::m_ign_o
DataObjIDColl m_ign_o
Definition: DataHandleHolderVisitor.h:42
IDataHandleHolder.h
DHHVisitor::owners_of
std::vector< const IDataHandleHolder * > owners_of(const DataObjID &id) const
Definition: DataHandleHolderVisitor.cpp:75