ATLAS Offline Software
HanConfigMetadata.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 //Get rid of Root macros that confuse Doxygen
12 
13 namespace dqi {
14 
17 {
18  m_metadata = newTList("metadata");
19 }
20 
23  :TObject(other),
24  m_name(other.m_name)
25 {
26  m_metadata = newTObjArray("metadata", 0, other.m_metadata->GetEntries());
27  TIter nextParMap( other.m_metadata );
28  HanConfigParMap* otherParMap;
29  while( (otherParMap = dynamic_cast<HanConfigParMap*>( nextParMap() )) != 0 ) {
30  HanConfigParMap* parMap = new HanConfigParMap( *otherParMap );
31  m_metadata->Add( parMap );
32  }
33 }
34 
37 {
38  if (this == &other) return *this;
39 
40  m_name = other.m_name;
41  m_metadata->Delete(); delete m_metadata;
42  m_metadata = newTObjArray("metadata", 0, other.m_metadata->GetEntries());
43  TIter nextParMap( other.m_metadata );
44  HanConfigParMap* otherParMap;
45  while( (otherParMap = dynamic_cast<HanConfigParMap*>( nextParMap() )) != 0 ) {
46  HanConfigParMap* parMap = new HanConfigParMap( *otherParMap );
47  m_metadata->Add( parMap );
48  }
49 
50  return *this;
51 }
52 
55  m_metadata->Delete();
56  delete m_metadata;
57 }
58 
59 void
61 SetName( std::string name_ )
62 {
63  m_name.SetString(name_.c_str());
64 }
65 
66 const char*
68 GetName() const
69 {
70  return m_name.GetName();
71 }
72 
73 void
75 AddKeyVal( const HanConfigParMap& keyval_ )
76 {
77  HanConfigParMap* parMap = new HanConfigParMap( keyval_ );
78  m_metadata->Add( parMap );
79 }
80 
83 GetKeyVal( std::string name_ ) const
84 {
85  HanConfigParMap* parMap = dynamic_cast<HanConfigParMap*>( m_metadata->FindObject(name_.c_str()) );
86  if( parMap == 0 ) {
87  return HanConfigParMap();
88  }
89 
90  return *parMap;
91 }
92 
93 
94 TIter
96 GetAllKeyVals() const
97 {
98  return TIter( m_metadata );
99 }
100 
101 TSeqCollection *
103 GetList( const TDirectory* /* basedir */, std::map<std::string,TSeqCollection*>& mp )
104 {
105  TSeqCollection* mdList = newTList(GetName());
106  mp[mdList->GetName()] = mdList;
107  TIter mdIter(m_metadata);
108  HanConfigParMap* parMap(0);
109  while ((parMap = dynamic_cast<HanConfigParMap*>(mdIter()))) {
110  mdList->Add(parMap->GetList());
111  }
112  return mdList;
113 }
114 
115 
116 void
118 PrintIOStream( std::ostream& o ) const
119 {
120  o << "\nHanConfigMetadata: " << this->GetName() << "\n";
121 
122  if (!( m_metadata->IsEmpty())) {
123  TIter nextParMap(m_metadata);
124  HanConfigParMap* parMap;
125  while( (parMap = dynamic_cast<HanConfigParMap*>( nextParMap() )) != 0 ) {
126  o << " " << parMap;
127  }
128  }
129 }
130 
131 }//namespace dqi
132 
133 std::ostream& operator<<( std::ostream& o, const dqi::HanConfigMetadata& p ){
134  p.PrintIOStream(o);
135  return o;
136 }
137 
138 std::ostream& operator<<( std::ostream& o, const dqi::HanConfigMetadata* p ){
139  p->PrintIOStream(o);
140  return o;
141 }
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
operator<<
std::ostream & operator<<(std::ostream &o, const dqi::HanConfigMetadata &p)
Definition: HanConfigMetadata.cxx:133
dqi::HanConfigMetadata::GetKeyVal
virtual HanConfigParMap GetKeyVal(std::string name_) const
Definition: HanConfigMetadata.cxx:83
dqi::HanConfigMetadata::m_metadata
TSeqCollection * m_metadata
Definition: HanConfigMetadata.h:42
dqi::HanConfigMetadata::AddKeyVal
virtual void AddKeyVal(const HanConfigParMap &keyval_)
Definition: HanConfigMetadata.cxx:75
dqi::HanConfigParMap
Definition: HanConfigParMap.h:18
ClassImp
ClassImp(xAOD::TFileChecker) namespace xAOD
Definition: TFileChecker.cxx:28
HanUtils.h
dqi::HanConfigMetadata::PrintIOStream
virtual void PrintIOStream(std::ostream &o) const
Definition: HanConfigMetadata.cxx:118
dqi::HanConfigMetadata::SetName
virtual void SetName(std::string name)
Definition: HanConfigMetadata.cxx:61
dqi::HanConfigParMap::GetList
virtual TList * GetList()
Definition: HanConfigParMap.cxx:92
dqi::HanConfigMetadata::GetList
virtual TSeqCollection * GetList(const TDirectory *basedir, std::map< std::string, TSeqCollection * > &mp)
Definition: HanConfigMetadata.cxx:103
dqi::HanConfigMetadata::GetAllKeyVals
virtual TIter GetAllKeyVals() const
Definition: HanConfigMetadata.cxx:96
dqi::HanConfigMetadata::HanConfigMetadata
HanConfigMetadata()
Definition: HanConfigMetadata.cxx:16
dqi::HanConfigMetadata::operator=
HanConfigMetadata & operator=(const HanConfigMetadata &other)
Definition: HanConfigMetadata.cxx:36
dqi::newTList
TSeqCollection * newTList(const char *name, TObject *obj=0)
Definition: HanUtils.cxx:19
dqi::HanConfigMetadata::~HanConfigMetadata
virtual ~HanConfigMetadata()
Definition: HanConfigMetadata.cxx:54
HanConfigMetadata.h
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
dqi::HanConfigMetadata
Definition: HanConfigMetadata.h:22
dqi::HanConfigMetadata::m_name
TObjString m_name
Definition: HanConfigMetadata.h:41
dqi::newTObjArray
TSeqCollection * newTObjArray(const char *name, TObject *obj=0, Int_t size=TCollection::kInitCapacity)
Definition: HanUtils.cxx:28
dqi
Definition: CompositeAlgorithm.h:16
dqi::HanConfigMetadata::GetName
virtual const char * GetName() const
Definition: HanConfigMetadata.cxx:68