20 #ifndef CSCDQM_Cache_H
21 #define CSCDQM_Cache_H
24 #include <boost/multi_index_container.hpp>
25 #include <boost/multi_index/member.hpp>
26 #include <boost/multi_index/composite_key.hpp>
27 #include <boost/multi_index/ordered_index.hpp>
28 #include "boost/tuple/tuple.hpp"
30 #include <boost/shared_ptr.hpp>
48 typedef boost::multi_index_container<
50 boost::multi_index::indexed_by<
51 boost::multi_index::ordered_unique<
52 boost::multi_index::composite_key<
54 boost::multi_index::member<CSCHistoKeyType, HistoId, &CSCHistoKeyType::id>,
55 boost::multi_index::member<CSCHistoKeyType, HwId, &CSCHistoKeyType::addId>
70 typedef boost::multi_index_container<
72 boost::multi_index::indexed_by<
73 boost::multi_index::ordered_unique<
74 boost::multi_index::composite_key<
76 boost::multi_index::member<CSCKeyType, HwId, &CSCKeyType::crateId>,
77 boost::multi_index::member<CSCKeyType, HwId, &CSCKeyType::dmbId>
97 typedef boost::multi_index_container<
99 boost::multi_index::indexed_by<
100 boost::multi_index::ordered_unique<boost::multi_index::member<LookupKeyType, HistoDef, &LookupKeyType::histo> >,
101 boost::multi_index::ordered_non_unique<boost::multi_index::member<LookupKeyType, std::string, &LookupKeyType::path> >
150 delete []
dduData.begin()->second;
167 const bool nextBookedDDU(
unsigned int&
n,
unsigned int& dduId)
const;
168 const bool nextBookedCSC(
unsigned int&
n,
unsigned int& crateId,
unsigned int& dmbId)
const;
const bool isBookedDDU(const HwId &dduId) const
Check if DDU was booked on given identifier.
const bool getEMU(const HistoId &id, MonitorObject *&mo)
Get EMU MO on Histogram Id.
LookupKeyType(const HistoDef &histo_, MonitorObject *&mo_)
CSCHistoKeyType(const HistoId &id_, const HwId &addId_, const MonitorObject *mo_)
const bool nextBookedCSC(unsigned int &n, unsigned int &crateId, unsigned int &dmbId) const
Iterator to get booked CSC identifiers on enumerator.
Monitoring Object interface used to cover Root object and provide common interface to EventProcessor ...
Abstract Base Histogram Definition.
CSCKeyType(const HwId &crateId_, const HwId &dmbId_)
MonitorObject * data[h::namesSize]
const bool nextBookedDDU(unsigned int &n, unsigned int &dduId) const
Iterator to get booked DDU identifier on enumerator.
std::map< HwId, MonitorObject ** > DDUMapType
const bool getPar(const HistoId &id, MonitorObject *&mo)
Get Parameter MO on Histogram Id.
MonitorObject cache - list objects and routines to manage cache.
DDUMapType::const_iterator dduPointer
CSCMapType::const_iterator cscPointer
MO Lookup List object definition.
Chamber List object definition.
virtual const std::string getPath() const
Get path part of the histogram (used only for DDUs and CSCs)
boost::multi_index_container< CSCHistoKeyType, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::composite_key< CSCHistoKeyType, boost::multi_index::member< CSCHistoKeyType, HistoId,&CSCHistoKeyType::id >, boost::multi_index::member< CSCHistoKeyType, HwId,&CSCHistoKeyType::addId > > > > > CSCHistoMapType
const bool getDDU(const HistoId &id, const HwId &dduId, MonitorObject *&mo)
Get DDU MO on Histogram Id and DDU Id.
void put(const HistoDef &histo, MonitorObject *mo)
Put Monitoring Object into cache.
Chamber MO List object definition.
const bool isBookedCSC(const HwId &crateId, const HwId &dmbId) const
Check if CSC was booked on given identifiers.
static const unsigned int namesSize
boost::multi_index_container< LookupKeyType, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< LookupKeyType, HistoDef,&LookupKeyType::histo > >, boost::multi_index::ordered_non_unique< boost::multi_index::member< LookupKeyType, std::string,&LookupKeyType::path > > > > LookupMapType
const bool getCSC(const HistoId &id, const HwId &crateId, const HwId &dmbId, const HwId &addId, MonitorObject *&mo)
Get CSC MO on Histogram Id and CSC Crate and DMB Ids.
boost::multi_index_container< CSCKeyType, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::composite_key< CSCKeyType, boost::multi_index::member< CSCKeyType, HwId,&CSCKeyType::crateId >, boost::multi_index::member< CSCKeyType, HwId,&CSCKeyType::dmbId > > > > > CSCMapType