MonitorObject cache - list objects and routines to manage cache. More...
#include <CSCDQM_Cache.h>
Public Member Functions | |
Cache () | |
const bool | get (const HistoDef &histo, MonitorObject *&mo) |
Get Monitoring Object on Histogram Definition. | |
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. | |
const bool | getDDU (const HistoId &id, const HwId &dduId, MonitorObject *&mo) |
Get DDU MO on Histogram Id and DDU Id. | |
const bool | getEMU (const HistoId &id, MonitorObject *&mo) |
Get EMU MO on Histogram Id. | |
const bool | getPar (const HistoId &id, MonitorObject *&mo) |
Get Parameter MO on Histogram Id. | |
const bool | isBookedCSC (const HwId &crateId, const HwId &dmbId) const |
Check if CSC was booked on given identifiers. | |
const bool | isBookedDDU (const HwId &dduId) const |
Check if DDU was booked on given identifier. | |
const bool | nextBookedCSC (unsigned int &n, unsigned int &crateId, unsigned int &dmbId) const |
Iterator to get booked CSC identifiers on enumerator. | |
const bool | nextBookedDDU (unsigned int &n, unsigned int &dduId) const |
Iterator to get booked DDU identifier on enumerator. | |
void | put (const HistoDef &histo, MonitorObject *mo) |
Put Monitoring Object into cache. | |
~Cache () | |
Private Attributes | |
CSCMapType | cscData |
CSCMapType::const_iterator | cscPointer |
MonitorObject * | data [h::namesSize] |
DDUMapType | dduData |
DDUMapType::const_iterator | dduPointer |
HwId | dduPointerValue |
LookupMapType | lookupData |
MonitorObject cache - list objects and routines to manage cache.
Definition at line 109 of file CSCDQM_Cache.h.
cscdqm::Cache::Cache | ( | ) | [inline] |
Cache Constructor
Initialize EMU and PAR static array with zero's
Initialize DDU and CSC cached pointers
Definition at line 134 of file CSCDQM_Cache.h.
References cscData, cscPointer, data, dduData, dduPointer, dduPointerValue, i, and h::namesSize.
{ for (unsigned int i = 0; i < h::namesSize; i++) data[i] = 0; dduPointer = dduData.end(); dduPointerValue = 0; cscPointer = cscData.end(); }
cscdqm::Cache::~Cache | ( | ) | [inline] |
const bool cscdqm::Cache::get | ( | const HistoDef & | histo, |
MonitorObject *& | mo | ||
) |
Get Monitoring Object on Histogram Definition.
Native Cache methods
histo | Histogram definition |
mo | Monitoring Object to return |
Definition at line 29 of file CSCDQM_Cache.cc.
References cscdqm::CSCHistoDefT, cscdqm::DDUHistoDefT, cscdqm::EMUHistoDefT, cscdqm::HistoDef::getAddId(), cscdqm::HistoDef::getCrateId(), getCSC(), getDDU(), cscdqm::HistoDef::getDDUId(), cscdqm::HistoDef::getDMBId(), getEMU(), cscdqm::HistoDef::getId(), getPar(), and cscdqm::ParHistoDefT.
Referenced by cscdqm::Dispatcher::getHisto().
{ if (typeid(histo) == EMUHistoDefT) { return getEMU(histo.getId(), mo); } else if (typeid(histo) == DDUHistoDefT) { return getDDU(histo.getId(), histo.getDDUId(), mo); } else if (typeid(histo) == CSCHistoDefT) { return getCSC(histo.getId(), histo.getCrateId(), histo.getDMBId(), histo.getAddId(), mo); } else if (typeid(histo) == ParHistoDefT) { return getPar(histo.getId(), mo); } return false; }
const bool cscdqm::Cache::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.
id | Histogram identifier |
crateId | CSC Crate identifier |
dmbId | CSC DMB identifier |
mo | Monitoring Object to return |
If not cached (last CSC) - find CSC
Get Monitor object from multi_index List
Definition at line 97 of file CSCDQM_Cache.cc.
References cscData, and cscPointer.
Referenced by cscdqm::Dispatcher::Dispatcher(), and get().
{ if (cscPointer == cscData.end() || cscPointer->crateId != crateId || cscPointer->dmbId != dmbId) { cscPointer = cscData.find(boost::make_tuple(crateId, dmbId)); } if (cscPointer != cscData.end()) { CSCHistoMapType::const_iterator hit = cscPointer->mos.find(boost::make_tuple(id, addId)); if (hit != cscPointer->mos.end()) { mo = const_cast<MonitorObject*>(hit->mo); return true; } } return false; }
const bool cscdqm::Cache::getDDU | ( | const HistoId & | id, |
const HwId & | dduId, | ||
MonitorObject *& | mo | ||
) |
Get DDU MO on Histogram Id and DDU Id.
id | Histogram identifier |
dduId | DDU identifier |
mo | Monitoring Object to return |
If not cached (last DDU) - find DDU
Get MO from static array
Definition at line 68 of file CSCDQM_Cache.cc.
References dduData, dduPointer, and dduPointerValue.
Referenced by cscdqm::Dispatcher::Dispatcher(), and get().
{ if (dduPointerValue != dduId) { dduPointer = dduData.find(dduId); if (dduPointer == dduData.end()) { dduPointerValue = 0; return false; } dduPointerValue = dduId; } if (dduPointer->second[id]) { mo = dduPointer->second[id]; return true; } return false; }
const bool cscdqm::Cache::getEMU | ( | const HistoId & | id, |
MonitorObject *& | mo | ||
) |
Get EMU MO on Histogram Id.
id | Histogram identifier |
mo | Monitoring Object to return |
Definition at line 53 of file CSCDQM_Cache.cc.
References data.
Referenced by cscdqm::Dispatcher::Dispatcher(), and get().
const bool cscdqm::Cache::getPar | ( | const HistoId & | id, |
MonitorObject *& | mo | ||
) |
Get Parameter MO on Histogram Id.
id | Histogram identifier |
mo | Monitoring Object to return |
Definition at line 121 of file CSCDQM_Cache.cc.
References data.
Referenced by cscdqm::Dispatcher::Dispatcher(), and get().
Check if CSC was booked on given identifiers.
crateId | CSC Crate Id |
dmbId | CSC DMB Id |
Definition at line 241 of file CSCDQM_Cache.cc.
References cscData.
Referenced by cscdqm::Dispatcher::Dispatcher(), and cscdqm::Dispatcher::getHisto().
const bool cscdqm::Cache::isBookedDDU | ( | const HwId & | dduId | ) | const |
Check if DDU was booked on given identifier.
dduId | DDU Id |
Definition at line 254 of file CSCDQM_Cache.cc.
References dduData.
Referenced by cscdqm::Dispatcher::Dispatcher(), and cscdqm::Dispatcher::getHisto().
const bool cscdqm::Cache::nextBookedCSC | ( | unsigned int & | n, |
unsigned int & | crateId, | ||
unsigned int & | dmbId | ||
) | const |
Iterator to get booked CSC identifiers on enumerator.
n | iterator (0 and up) |
crateId | CSC Crate Id returned |
dmbId | CSC DMB Id returned |
Definition at line 206 of file CSCDQM_Cache.cc.
Referenced by cscdqm::Dispatcher::Dispatcher().
const bool cscdqm::Cache::nextBookedDDU | ( | unsigned int & | n, |
unsigned int & | dduId | ||
) | const |
Iterator to get booked DDU identifier on enumerator.
Utility methods
n | iterator (0 and up) |
dduId | DDU Id returned |
Definition at line 224 of file CSCDQM_Cache.cc.
void cscdqm::Cache::put | ( | const HistoDef & | histo, |
MonitorObject * | mo | ||
) |
Put Monitoring Object into cache.
histo | Histogram Definition |
mo | Monitoring Object to put |
EMU MO
DDU MO
CSC MO
Parameter MO
Add histo (if mo is not null!) into lookup list
Definition at line 135 of file CSCDQM_Cache.cc.
References cscData, cscdqm::CSCHistoDefT, cscPointer, data, dduData, cscdqm::DDUHistoDefT, dduPointer, dduPointerValue, cscdqm::EMUHistoDefT, cscdqm::HistoDef::getAddId(), cscdqm::HistoDef::getCrateId(), cscdqm::HistoDef::getDDUId(), cscdqm::HistoDef::getDMBId(), cscdqm::HistoDef::getId(), i, lookupData, h::namesSize, and cscdqm::ParHistoDefT.
Referenced by cscdqm::Dispatcher::Dispatcher(), and cscdqm::Dispatcher::getHisto().
{ HistoId id = histo.getId(); if (typeid(histo) == EMUHistoDefT) { data[id] = mo; } else if (typeid(histo) == DDUHistoDefT) { HwId dduId = histo.getDDUId(); if (dduPointerValue != dduId) { dduPointer = dduData.find(dduId); } if (dduPointer == dduData.end()) { MonitorObject** mos = new MonitorObject*[h::namesSize]; for (unsigned int i = 0; i < h::namesSize; i++) mos[i] = 0; dduPointer = dduData.insert(dduData.end(), std::make_pair(dduId, mos)); } dduPointer->second[id] = mo; dduPointerValue = dduId; } else if (typeid(histo) == CSCHistoDefT) { HwId crateId = histo.getCrateId(); HwId dmbId = histo.getDMBId(); HwId addId = histo.getAddId(); CSCHistoKeyType histoKey(id, addId, mo); if (cscPointer == cscData.end() || cscPointer->crateId != crateId || cscPointer->dmbId != dmbId) { cscPointer = cscData.find(boost::make_tuple(crateId, dmbId)); } if (cscPointer == cscData.end()) { CSCKeyType cscKey(crateId, dmbId); cscPointer = cscData.insert(cscData.end(), cscKey); } CSCHistoMapType* mos = const_cast<CSCHistoMapType*>(&cscPointer->mos); mos->insert(histoKey); } else if (typeid(histo) == ParHistoDefT) { data[id] = mo; } if (mo) { lookupData.insert(lookupData.end(), LookupKeyType(histo, mo)); } }
CSCMapType cscdqm::Cache::cscData [private] |
Chamber MO List
Definition at line 124 of file CSCDQM_Cache.h.
Referenced by Cache(), getCSC(), isBookedCSC(), nextBookedCSC(), and put().
CSCMapType::const_iterator cscdqm::Cache::cscPointer [private] |
Pointer to the Last Chamber object used (cached)
Definition at line 126 of file CSCDQM_Cache.h.
MonitorObject* cscdqm::Cache::data[h::namesSize] [private] |
DDUMapType cscdqm::Cache::dduData [private] |
DDU MO List
Definition at line 117 of file CSCDQM_Cache.h.
Referenced by Cache(), getDDU(), isBookedDDU(), nextBookedDDU(), put(), and ~Cache().
DDUMapType::const_iterator cscdqm::Cache::dduPointer [private] |
Pointer to the Last DDU object used (cached)
Definition at line 119 of file CSCDQM_Cache.h.
HwId cscdqm::Cache::dduPointerValue [private] |
Last DDU id used (cached)
Definition at line 121 of file CSCDQM_Cache.h.
LookupMapType cscdqm::Cache::lookupData [private] |