ATLAS Offline Software
CondAttrListCollection.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
16 #ifndef DBDATAOBJECTS_CONDATTRLISTCOLLECTION_H
17 #define DBDATAOBJECTS_CONDATTRLISTCOLLECTION_H
18 
19 
20 #include "CoralBase/Attribute.h"
21 #include "CoralBase/AttributeList.h"
22 #include "CoralBase/AttributeListSpecification.h"
23 
24 #include "AthenaKernel/IOVRange.h"
25 #include "AthenaKernel/CLASS_DEF.h"
26 #include "GaudiKernel/DataObject.h"
27 
28 #include <vector>
29 #include <map>
30 #include <algorithm>
31 #include <sstream>
32 
33 
51 class CondAttrListCollection : public DataObject
52 {
53 public:
54 
55  typedef unsigned int ChanNum;
57  typedef std::map<ChanNum, coral::AttributeList> ChanAttrListMap;
58  typedef ChanAttrListMap::value_type ChanAttrListPair;
59  typedef std::map<ChanNum, IOVRange> ChanIOVMap;
60  typedef ChanIOVMap::value_type ChanIOVPair;
61  typedef std::map<ChanNum, std::string> ChanNameMap;
62  typedef ChanNameMap::value_type ChanNamePair;
63  typedef ChanAttrListMap::const_iterator const_iterator;
65  typedef ChanAttrListMap::size_type size_type;
66  typedef ChanIOVMap::const_iterator iov_const_iterator;
68  typedef ChanIOVMap::size_type iov_size_type;
69  typedef ChanNameMap::const_iterator name_const_iterator;
71  typedef ChanNameMap::size_type name_size_type;
72 
74  CondAttrListCollection(bool hasRunLumiBlockTime);
75 
77 
78  // copy constructor and assignment operator - have to be explicitly
79  // implemented to control use of the cached AttributeListSpecification
81  // no copy with new Gaudi
83 
86 
88  const_iterator begin() const;
89  const_iterator end () const;
90 
92  size_type size() const;
93 
94 
97 
100  iov_const_iterator iov_end () const;
101 
103  iov_size_type iov_size() const;
104 
107 
111 
113  name_size_type name_size() const;
114 
116  ChanNum chanNum(unsigned int index) const;
117 
118  bool fixChanNum(ChanNum oldChan, ChanNum newChan);
119 
122 
124  const IOVRange& iovRange(ChanNum chanNum) const;
125 
127  const std::string& chanName(ChanNum chanNum) const;
128 
130  IOVRange minRange() const;
131 
133  bool hasUniqueIOV() const;
134 
139 
141  void add(ChanNum chanNum, const IOVRange& range);
142 
143  // Adding in chan/name pairs
144  void add(ChanNum chanNum,const std::string& name);
145 
148  void addNewStart(const IOVTime& start);
149 
152  void addNewStop(const IOVTime& stop);
153 
157  void resetMinRange();
158 
160  void dump() const;
161 
163  void dump(std::ostringstream& stream) const;
164 
168  bool operator==( const CondAttrListCollection& rhs ) const;
169 
173  bool operator!=( const CondAttrListCollection& rhs ) const;
174 
179  bool isSameButMinRange ( const CondAttrListCollection& rhs,
180  bool ignoreIOVs = false) const;
181 
182 
183 
184 private:
185 
190 
197  coral::AttributeListSpecification* m_spec;
198 };
199 
200 CLASS_DEF(CondAttrListCollection, 1238547719, 0)
201 
202 #include "AthenaKernel/CondCont.h"
204 
205 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>>
206 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>>
207 
208 
210 :
211 m_minRange(IOVRange(IOVTime(IOVTime::MINRUN, IOVTime::MINEVENT),
212  IOVTime(IOVTime::MAXRUN, IOVTime::MAXEVENT))),
213  m_hasUniqueIOV(true),
214  m_hasRunLumiBlockTime(true),
215  m_spec(0)
216 {}
217 
219 inline CondAttrListCollection::CondAttrListCollection(bool hasRunLumiBlockTime)
220  :
221  m_minRange(IOVRange(IOVTime(IOVTime::MINRUN, IOVTime::MINEVENT),
222  IOVTime(IOVTime::MAXRUN, IOVTime::MAXEVENT))),
223  m_hasUniqueIOV(true),
224  m_hasRunLumiBlockTime(hasRunLumiBlockTime),
225  m_spec(0)
226 {
229 }
230 
232  if (m_spec!=0) m_spec->release();
233 }
234 
236  const CondAttrListCollection& rhs) :
237  DataObject::DataObject(rhs),
238  m_iovMap(rhs.m_iovMap),
239  m_nameMap(rhs.m_nameMap),
240  m_minRange(rhs.m_minRange),
241  m_hasUniqueIOV(rhs.m_hasUniqueIOV),
242  m_hasRunLumiBlockTime(rhs.m_hasRunLumiBlockTime),
243  m_spec(0)
244 {
245  // members with normal semantics setup in initialisation list
246  // make a new cached AttributeListSpecificaiton and make the payload use it
247  if (rhs.m_attrMap.size()>0) {
248  m_spec=new coral::AttributeListSpecification();
249  const coral::AttributeList& atr1=rhs.m_attrMap.begin()->second;
250  for (coral::AttributeList::const_iterator itr=atr1.begin();itr!=atr1.end();++itr) {
251  const coral::AttributeSpecification& aspec=itr->specification();
252  m_spec->extend(aspec.name(),aspec.typeName());
253  }
254  for (const_iterator itr=rhs.m_attrMap.begin();itr!=rhs.m_attrMap.end();
255  ++itr)
256  {
257  auto newit = m_attrMap.try_emplace (itr->first, *m_spec, true).first;
258  newit->second.fastCopyData(itr->second);
259  }
260  }
261 }
262 
263 // no copy with new Gaudi
264 // inline CondAttrListCollection& CondAttrListCollection::operator=(
265 // const CondAttrListCollection& rhs) {
266 // // catch assignment to self - do nothing
267 // if (this==&rhs) return *this;
268 // // assign base class
269 // DataObject::operator=(rhs);
270 // // assign members with normal semantics
271 // m_attrMap = rhs.m_attrMap;
272 // m_iovMap = rhs.m_iovMap;
273 // m_nameMap = rhs.m_nameMap;
274 // m_minRange = rhs.m_minRange;
275 // m_hasUniqueIOV = rhs.m_hasUniqueIOV;
276 // m_hasRunLumiBlockTime = rhs.m_hasRunLumiBlockTime;
277 // // make a new cache AttributeListSpecification and make the payload map
278 // // use it
279 // if (m_spec!=0) m_spec->release();
280 // if (rhs.m_attrMap.size()>0) {
281 // m_spec = new coral::AttributeListSpecification();
282 // const coral::AttributeList& atr1 = rhs.m_attrMap.begin()->second;
283 // for (coral::AttributeList::const_iterator itr = atr1.begin();itr!=atr1.end();++itr) {
284 // const coral::AttributeSpecification& aspec = itr->specification();
285 // m_spec->extend(aspec.name(),aspec.typeName());
286 // }
287 // m_attrMap.clear();
288 // const_iterator itr=rhs.m_attrMap.begin();
289 // for (; itr != rhs.m_attrMap.end(); ++itr) {
290 // m_attrMap[itr->first] = coral::AttributeList(*m_spec,true);
291 // m_attrMap[itr->first].fastCopyData(itr->second);
292 // }
293 // } else {
294 // m_spec = 0;
295 // }
296 // return *this;
297 // }
298 
302 {
303  return (m_attrMap.find(chanNum));
304 }
305 
306 
310 {
311  return (m_attrMap.begin());
312 }
313 
316 {
317  return (m_attrMap.end());
318 }
319 
323 {
324  return (m_attrMap.size());
325 }
326 
327 
331 {
332  return (m_iovMap.find(chanNum));
333 }
334 
338 {
339  return (m_iovMap.begin());
340 }
341 
344 {
345  return (m_iovMap.end());
346 }
347 
351 {
352  return (m_iovMap.size());
353 }
354 
358 {
359  return (m_nameMap.find(chanNum));
360 }
361 
365 {
366  return (m_nameMap.begin());
367 }
368 
371 {
372  return (m_nameMap.end());
373 }
374 
378 {
379  return (m_nameMap.size());
380 }
381 
385 {
386  if (index < size()) {
387  const_iterator it = begin();
388  unsigned int count = index;
389  while (count > 0) {
390  ++it;
391  --count;
392  }
393  return (it->first);
394  }
395  // otherwise return max
396  else return (0xFFFF);
397 }
398 
402 {
403  const_iterator itr=m_attrMap.find(chanNum);
404  if (itr!=m_attrMap.end()) {
405  return itr->second;
406  } else {
407  static const AttributeList attr;
408  return attr;
409  }
410 }
411 
413 inline const IOVRange&
415 {
417  if (itr!=m_iovMap.end()) {
418  return itr->second;
419  } else {
420  // Default is the minRange
421  return (m_minRange);
422  }
423 }
424 
425 // find name for channel - empty string for unknonwn/unnamed channels
426 inline const std::string& CondAttrListCollection::chanName(ChanNum chanNum) const {
428  if (itr!=m_nameMap.end()) {
429  return itr->second;
430  } else {
431  static const std::string name;
432  return name;
433  }
434 }
435 
437 inline IOVRange
439 {
440  return (m_minRange);
441 }
442 
444 inline bool
446 {
447  return (m_hasUniqueIOV);
448 }
449 
451 inline bool
453 {
454  if (m_attrMap.size()==0) {
455  m_spec=new coral::AttributeListSpecification();
456  for (coral::AttributeList::const_iterator itr=attributeList.begin();itr!=attributeList.end();++itr) {
457  const coral::AttributeSpecification& aspec=itr->specification();
458  m_spec->extend(aspec.name(),aspec.typeName());
459  }
460  }
462  m_attrMap[chanNum].fastCopyData(attributeList);
463 
464  return true;
465 }
466 
468 inline void
470 {
471  if (m_attrMap.size()==0) {
472  m_spec=new coral::AttributeListSpecification();
473  for (coral::AttributeList::const_iterator itr=attributeList.begin();itr!=attributeList.end();++itr) {
474  const coral::AttributeSpecification& aspec=itr->specification();
475  m_spec->extend(aspec.name(),aspec.typeName());
476  }
477  }
480 }
481 
483 inline void
485 {
487 
488  // Accumulate minRange
490  if (m_minRange.start() < range.start()) start = range.start();
492  if (range.stop() < m_minRange.stop()) stop = range.stop();
494  if (m_hasUniqueIOV && range != m_minRange)m_hasUniqueIOV = false;
495 }
496 
498 inline void
500 {
502 }
503 
504 
507 inline void
509 {
510  if (start > m_minRange.start()) {
512  }
513 }
514 
517 inline void
519 {
520  if (stop < m_minRange.stop()) {
522  }
523 }
524 
528 inline void
530 {
531  // Reset minRange to max
532  if (m_minRange.start().isTimestamp()) {
534  }
535  else {
538  }
540  iov_const_iterator last1 = iov_end();
541  for (; it1 != last1; ++it1) {
542  const IOVTime& start = (*it1).second.start();
543  const IOVTime& stop = (*it1).second.stop();
544  if (start > m_minRange.start() && stop < m_minRange.stop()) {
546  }
547  else if (start > m_minRange.start()) {
549  }
550  else if (stop < m_minRange.stop()) {
552  }
553  }
554 }
555 
556 inline void
558 {
559  // min range
560  std::cout << "min range: " << m_minRange << std::endl;
561 
562  // attribute list
563  const_iterator it = begin();
564  const_iterator last = end();
565  for (; it != last; ++it) {
566  std::cout << "chan, attr: " << (*it).first << std::endl;
567  (*it).second.toOutputStream(std::cout) << std::endl;
568  }
569  // IOVs
571  iov_const_iterator last1 = iov_end();
572  for (; it1 != last1; ++it1) {
573  std::cout << "chan, iov: " << (*it1).first << std::endl;
574  std::cout << (*it1).second << std::endl;
575  }
576  // channel names
578  name_const_iterator last2 = name_end();
579  for (; it2 != last2; ++it2) {
580  std::cout << "chan, name: " << (*it2).first << std::endl;
581  std::cout << (*it2).second << std::endl;
582  }
583 
584 }
585 
586 inline void
587 CondAttrListCollection::dump(std::ostringstream& stream) const
588 {
589  stream << m_minRange << " iov size " << m_iovMap.size() << std::endl;
590  // IOVs
591  iov_const_iterator itIOV = iov_begin();
592  iov_const_iterator lastIOV = iov_end();
593  for(; itIOV != lastIOV; ++itIOV) {
594  stream << "chan, iov: " << (*itIOV).first << " " << (*itIOV).second << std::endl;
595  }
596  // Attribute list
597  const_iterator itAtt = begin();
598  const_iterator lastAtt = end();
599  for(; itAtt != lastAtt; ++itAtt) {
600  stream << "chan, attr: " << (*itAtt).first << std::endl;
601  (*itAtt).second.toOutputStream(stream) << std::endl;
602  }
603  // channel names
604  name_const_iterator itName = name_begin();
605  name_const_iterator lastName = name_end();
606  for (; itName != lastName; ++itName) {
607  stream << "chan, name: " << (*itName).first << " " << (*itName).second << std::endl;
608  }
609 }
610 
611 
612 inline
613 bool
615 {
616 
617  // Compare minRange
618  if (m_minRange != rhs.m_minRange) return false;
619  // Rest is in isSameButMinRange
620  return (isSameButMinRange (rhs));
621 }
622 
623 
624 
625 inline
626 bool
628 {
629  return (!((*this) == rhs));
630 }
631 
632 inline
633 bool
635  bool ignoreIOVs ) const
636 {
637 
638  // Compare with right hand side
639 
640  if(m_hasUniqueIOV != rhs.m_hasUniqueIOV) return false;
641  if(m_hasRunLumiBlockTime != rhs.m_hasRunLumiBlockTime) return false;
642  if (m_attrMap.size() != rhs.m_attrMap.size()) return false;
643  if (m_iovMap.size() != rhs.m_iovMap.size()) return false;
644  if (m_nameMap.size() != rhs.m_nameMap.size()) return false;
645 
646  if (!ignoreIOVs) {
647  // Check IOVs
648  iov_const_iterator it1 = m_iovMap.begin();
649  iov_const_iterator it2 = rhs.m_iovMap.begin();
650  iov_const_iterator end1 = m_iovMap.end();
651  for (; it1 != end1; ++it1, ++it2) {
652  if ((*it1).first != (*it2).first) return false;
653  if ((*it1).second != (*it2).second) return false;
654  }
655  }
656 
657  // Check attribute lists
658  const_iterator it3 = m_attrMap.begin();
659  const_iterator it4 = rhs.m_attrMap.begin();
660  const_iterator end3 = m_attrMap.end();
661  for (; it3 != end3; ++it3, ++it4) {
662  if ((*it3).first != (*it4).first) return false;
663  if ((*it3).second != (*it4).second) return false;
664  }
665 
666  // Check names
667  name_const_iterator it5 = m_nameMap.begin();
668  name_const_iterator it6 = rhs.m_nameMap.begin();
669  name_const_iterator end5 = m_nameMap.end();
670  for (; it5 != end5; ++it5, ++it6) {
671  if ((*it5).first != (*it6).first) return false;
672  if ((*it5).second != (*it6).second) return false;
673  }
674 
675  return true;
676 }
677 
678 
679 inline bool
681  const ChanNum newChan) {
682  auto attrRet = m_attrMap.emplace(newChan, m_attrMap[oldChan]);
683  // if a new element was inserted, erase the old one
684  if (attrRet.second) m_attrMap.erase(oldChan);
685 
686  auto iovRet = m_iovMap.emplace(newChan, m_iovMap[oldChan]);
687  // if a new element was inserted, erase the old one
688  if (iovRet.second) m_iovMap.erase(oldChan);
689 
690  auto nameRet = m_nameMap.emplace(newChan, m_nameMap[oldChan]);
691  // if a new element was inserted, erase the old one
692  if (nameRet.second) m_nameMap.erase(oldChan);
693 
694  return attrRet.first->first == newChan
695  && iovRet.first->first == newChan
696  && nameRet.first->first == newChan;
697  }
698 
699 
700 
701 #endif // DBDATAOBJECTS_CONDATTRLISTCOLLECTION_H
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
CondAttrListCollection::resetMinRange
void resetMinRange()
Reset minRange according to the IOVs of the contained channels.
Definition: CondAttrListCollection.h:529
CondAttrListCollection::name_iterator
ChanNameMap::iterator name_iterator
Definition: CondAttrListCollection.h:70
CondAttrListCollection::end
const_iterator end() const
Definition: CondAttrListCollection.h:315
CondAttrListCollection::fixChanNum
bool fixChanNum(ChanNum oldChan, ChanNum newChan)
Definition: CondAttrListCollection.h:680
CondAttrListCollection::iov_size
iov_size_type iov_size() const
number of Chan/IOV pairs
Definition: CondAttrListCollection.h:350
IOVRange
Validity Range object. Holds two IOVTimes (start and stop)
Definition: IOVRange.h:30
CondAttrListCollection::iov_end
iov_const_iterator iov_end() const
Definition: CondAttrListCollection.h:343
IOVTime::MAXRUN
static constexpr uint32_t MAXRUN
Definition: IOVTime.h:48
IOVRange.h
Validity Range object. Holds two IOVTime instances (start and stop)
CondAttrListCollection::minRange
IOVRange minRange() const
Current minimal IOVRange.
Definition: CondAttrListCollection.h:438
CondAttrListCollection::addNewStop
void addNewStop(const IOVTime &stop)
Add new stop time to minRange - make sure that stop is <= to new stop
Definition: CondAttrListCollection.h:518
index
Definition: index.py:1
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
python.CaloCondTools.MINRUN
int MINRUN
Definition: CaloCondTools.py:23
CondAttrListCollection::iov_iterator
ChanIOVMap::iterator iov_iterator
Definition: CondAttrListCollection.h:67
IOVRange::start
const IOVTime & start() const
Definition: IOVRange.h:38
skel.it
it
Definition: skel.GENtoEVGEN.py:423
CondAttrListCollection::hasUniqueIOV
bool hasUniqueIOV() const
Check whether there is a unique IOV for all channels.
Definition: CondAttrListCollection.h:445
CondAttrListCollection::~CondAttrListCollection
~CondAttrListCollection()
Definition: CondAttrListCollection.h:231
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition: CondAttrListCollection.h:309
CondAttrListCollection::iov_size_type
ChanIOVMap::size_type iov_size_type
Definition: CondAttrListCollection.h:68
CondAttrListCollection::ChanIOVMap
std::map< ChanNum, IOVRange > ChanIOVMap
Definition: CondAttrListCollection.h:59
CondAttrListCollection::addNewStart
void addNewStart(const IOVTime &start)
Add new start time to minRange - make sure that start is >= to new start.
Definition: CondAttrListCollection.h:508
CondAttrListCollection::ChanIOVPair
ChanIOVMap::value_type ChanIOVPair
Definition: CondAttrListCollection.h:60
PixelModuleFeMask_create_db.stop
int stop
Definition: PixelModuleFeMask_create_db.py:76
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
CondAttrListCollection::ChanAttrListPair
ChanAttrListMap::value_type ChanAttrListPair
Definition: CondAttrListCollection.h:58
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
CondAttrListCollection::iov_const_iterator
ChanIOVMap::const_iterator iov_const_iterator
Definition: CondAttrListCollection.h:66
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
IOVTime::MINRUN
static constexpr uint32_t MINRUN
Definition: IOVTime.h:44
IOVRange::stop
const IOVTime & stop() const
Definition: IOVRange.h:39
CondAttrListCollection::iterator
ChanAttrListMap::iterator iterator
Definition: CondAttrListCollection.h:64
CondAttrListCollection::name_const_iterator
ChanNameMap::const_iterator name_const_iterator
Definition: CondAttrListCollection.h:69
IOVTime
Basic time unit for IOVSvc. Hold time as a combination of run and event numbers.
Definition: IOVTime.h:33
CondAttrListCollection::dump
void dump() const
Dump our contents to std::cout.
Definition: CondAttrListCollection.h:557
CondAttrListCollection::m_iovMap
ChanIOVMap m_iovMap
Definition: CondAttrListCollection.h:192
checkCoolLatestUpdate.chanNum
chanNum
Definition: checkCoolLatestUpdate.py:27
CondAttrListCollection::ChanNameMap
std::map< ChanNum, std::string > ChanNameMap
Definition: CondAttrListCollection.h:61
CondAttrListCollection::ChanAttrListMap
std::map< ChanNum, coral::AttributeList > ChanAttrListMap
Definition: CondAttrListCollection.h:57
CondAttrListCollection::operator=
CondAttrListCollection & operator=(const CondAttrListCollection &rhs)=delete
DetDescrDictionaryDict::it1
std::vector< HWIdentifier >::iterator it1
Definition: DetDescrDictionaryDict.h:17
CONDCONT_DEF
CONDCONT_DEF(CondAttrListCollection, 1223307417)
CondAttrListCollection::operator!=
bool operator!=(const CondAttrListCollection &rhs) const
Comparison operator.
Definition: CondAttrListCollection.h:627
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
IOVTime::MAXTIMESTAMP
static constexpr uint64_t MAXTIMESTAMP
Definition: IOVTime.h:58
IOVTime::isTimestamp
bool isTimestamp() const noexcept
Definition: IOVTime.h:111
CondAttrListCollection::m_attrMap
ChanAttrListMap m_attrMap
Definition: CondAttrListCollection.h:191
CondAttrListCollection::chanNum
ChanNum chanNum(unsigned int index) const
channel number for index: (index = 0 to size-1)
Definition: CondAttrListCollection.h:384
CondAttrListCollection::attributeList
const AttributeList & attributeList(ChanNum chanNum) const
attribute list for a given channel number
Definition: CondAttrListCollection.h:401
CondAttrListCollection::m_hasRunLumiBlockTime
bool m_hasRunLumiBlockTime
Definition: CondAttrListCollection.h:196
CondAttrListCollection::ChanNum
unsigned int ChanNum
Definition: CondAttrListCollection.h:55
CondAttrListCollection::chanName
const std::string & chanName(ChanNum chanNum) const
find name for particular channel
Definition: CondAttrListCollection.h:426
CondAttrListCollection::name_begin
name_const_iterator name_begin() const
Access to Chan/Name pairs via iterators.
Definition: CondAttrListCollection.h:364
IOVTime::MAXEVENT
static constexpr uint32_t MAXEVENT
Definition: IOVTime.h:51
CondAttrListCollection::name_size
name_size_type name_size() const
number of Chan/Name pairs
Definition: CondAttrListCollection.h:377
CondAttrListCollection::isSameButMinRange
bool isSameButMinRange(const CondAttrListCollection &rhs, bool ignoreIOVs=false) const
Equal operator which ignores minRange.
Definition: CondAttrListCollection.h:634
CondAttrListCollection::m_spec
coral::AttributeListSpecification * m_spec
Definition: CondAttrListCollection.h:197
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CondAttrListCollection::CondAttrListCollection
CondAttrListCollection()
Default constructor - we hide it to prevent clients from using it - forcing them to specify the type ...
Definition: CondAttrListCollection.h:209
CondAttrListCollection::size_type
ChanAttrListMap::size_type size_type
Definition: CondAttrListCollection.h:65
CondAttrListCollection::iov_begin
iov_const_iterator iov_begin() const
Access to Chan/IOV pairs via iterators.
Definition: CondAttrListCollection.h:337
python.CaloCondTools.MAXRUN
MAXRUN
Definition: CaloCondTools.py:25
IOVTime::MINEVENT
static constexpr uint32_t MINEVENT
Definition: IOVTime.h:50
CondAttrListCollection::size
size_type size() const
number of Chan/AttributeList pairs
Definition: CondAttrListCollection.h:322
CondAttrListCollection::chanAttrListPair
const_iterator chanAttrListPair(ChanNum chanNum) const
Access to Chan/AttributeList pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:301
CondAttrListCollection::m_hasUniqueIOV
bool m_hasUniqueIOV
Definition: CondAttrListCollection.h:195
CondAttrListCollection::m_minRange
IOVRange m_minRange
Definition: CondAttrListCollection.h:194
DeMoScan.index
string index
Definition: DeMoScan.py:362
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
CondAttrListCollection::chanNamePair
name_const_iterator chanNamePair(ChanNum chanNum) const
Access to Chan/Name pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:357
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
CondAttrListCollection::iovRange
const IOVRange & iovRange(ChanNum chanNum) const
IOVRange list for a given channel number.
Definition: CondAttrListCollection.h:414
IOVTime::MINTIMESTAMP
static constexpr uint64_t MINTIMESTAMP
Definition: IOVTime.h:56
CondAttrListCollection::AttributeList
coral::AttributeList AttributeList
Definition: CondAttrListCollection.h:56
CondAttrListCollection::chanIOVPair
iov_const_iterator chanIOVPair(ChanNum chanNum) const
Access to Chan/IOV pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:330
CondAttrListCollection::operator==
bool operator==(const CondAttrListCollection &rhs) const
Equal operator.
Definition: CondAttrListCollection.h:614
CondAttrListCollection::add
bool add(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs.
Definition: CondAttrListCollection.h:452
CondAttrListCollection::m_nameMap
ChanNameMap m_nameMap
Definition: CondAttrListCollection.h:193
CLASS_DEF.h
macros to associate a CLID to a type
CondAttrListCollection::ChanNamePair
ChanNameMap::value_type ChanNamePair
Definition: CondAttrListCollection.h:62
CondAttrListCollection::name_size_type
ChanNameMap::size_type name_size_type
Definition: CondAttrListCollection.h:71
CondAttrListCollection::addShared
void addShared(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs with shared data.
Definition: CondAttrListCollection.h:469
CondAttrListCollection::name_end
name_const_iterator name_end() const
Definition: CondAttrListCollection.h:370