CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
DTUserKeyedConfigHandler Class Reference

#include <DTUserKeyedConfigHandler.h>

Inheritance diagram for DTUserKeyedConfigHandler:
popcon::PopConSourceHandler< DTCCBConfig >

Public Member Functions

 DTUserKeyedConfigHandler (const edm::ParameterSet &ps)
 
void getNewObjects () override
 
std::string id () const override
 
void setList (const cond::persistency::KeyList *list)
 
 ~DTUserKeyedConfigHandler () override
 
- Public Member Functions inherited from popcon::PopConSourceHandler< DTCCBConfig >
void initialize (const cond::persistency::Session &dbSession, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry)
 
Ref lastPayload () const
 
cond::LogDBEntry_t const & logDBEntry () const
 
std::pair< Container const *, std::string const > operator() (const cond::persistency::Session &session, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry) const
 
 PopConSourceHandler ()
 
Container const & returnData ()
 
cond::TagInfo_t const & tagInfo () const
 
std::string const & userTextLog () const
 
virtual ~PopConSourceHandler ()
 

Private Member Functions

void chkConfigList (const std::map< int, bool > &userBricks)
 
bool userDiscardedKey (int key)
 

Static Private Member Functions

static bool sameConfigList (const std::vector< DTConfigKey > &cfgl, const std::vector< DTConfigKey > &cfgr)
 

Private Attributes

std::string brickContainer
 
DTCCBConfigccbConfig
 
cond::persistency::ConnectionPool connection
 
int dataRun
 
std::string dataTag
 
std::shared_ptr< coral::ISessionProxy > isession
 
const cond::persistency::KeyListkeyList = nullptr
 
std::string onlineAuthentication
 
int onlineAuthSys
 
std::string onlineConnect
 
std::vector< DTConfigKeyuserConf
 
bool writeData
 
bool writeKeys
 

Additional Inherited Members

- Public Types inherited from popcon::PopConSourceHandler< DTCCBConfig >
typedef std::map< Time_t, std::shared_ptr< DTCCBConfig > > Container
 
typedef std::unique_ptr< DTCCBConfigRef
 
typedef PopConSourceHandler< DTCCBConfigself
 
typedef cond::Time_t Time_t
 
typedef DTCCBConfig value_type
 
- Protected Member Functions inherited from popcon::PopConSourceHandler< DTCCBConfig >
cond::persistency::SessiondbSession () const
 
- Protected Attributes inherited from popcon::PopConSourceHandler< DTCCBConfig >
Container m_iovs
 
std::vector< std::pair< DTCCBConfig *, Time_t > > m_to_transfer
 
std::string m_userTextLog
 

Detailed Description

Description:

Date
2010/07/21 17:13:43
Revision
1.3
Author
Paolo Ronchese INFN Padova

Definition at line 46 of file DTUserKeyedConfigHandler.h.

Constructor & Destructor Documentation

◆ DTUserKeyedConfigHandler()

DTUserKeyedConfigHandler::DTUserKeyedConfigHandler ( const edm::ParameterSet ps)

Constructor

Definition at line 48 of file DTUserKeyedConfigHandler.cc.

References DTConfigKey::confKey, DTConfigKey::confType, gather_cfg::cout, edm::ParameterSet::getParameter(), onlineAuthentication, and userConf.

49  : dataRun(ps.getParameter<int>("run")),
50  dataTag(ps.getParameter<std::string>("tag")),
51  onlineConnect(ps.getParameter<std::string>("onlineDB")),
52  onlineAuthentication(ps.getParameter<std::string>("onlineAuthentication")),
53  onlineAuthSys(ps.getUntrackedParameter<int>("onlineAuthSys", 1)),
54  brickContainer(ps.getParameter<std::string>("container")),
55  writeKeys(ps.getParameter<bool>("writeKeys")),
56  writeData(ps.getParameter<bool>("writeData")),
57  connection(),
58  isession() {
59  std::cout << " PopCon application for DT configuration export " << onlineAuthentication << std::endl;
60 
61  std::vector<edm::ParameterSet> dtConfigKeys(ps.getParameter<std::vector<edm::ParameterSet> >("DTConfigKeys"));
62  std::vector<edm::ParameterSet>::const_iterator iter = dtConfigKeys.begin();
63  std::vector<edm::ParameterSet>::const_iterator iend = dtConfigKeys.end();
64  while (iter != iend) {
65  const edm::ParameterSet& cp = *iter++;
66  int configType = cp.getUntrackedParameter<int>("configType");
67  int configKey = cp.getUntrackedParameter<int>("configKey");
68  std::cout << "config: " << configType << " -> " << configKey << std::endl;
69  DTConfigKey userKey;
70  userKey.confType = configType;
71  userKey.confKey = configKey;
72  userConf.push_back(userKey);
73  }
74 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::vector< DTConfigKey > userConf
T getUntrackedParameter(std::string const &, T const &) const
std::shared_ptr< coral::ISessionProxy > isession
cond::persistency::ConnectionPool connection

◆ ~DTUserKeyedConfigHandler()

DTUserKeyedConfigHandler::~DTUserKeyedConfigHandler ( )
override

Destructor

Definition at line 79 of file DTUserKeyedConfigHandler.cc.

79 {}

Member Function Documentation

◆ chkConfigList()

void DTUserKeyedConfigHandler::chkConfigList ( const std::map< int, bool > &  userBricks)
private

Definition at line 309 of file DTUserKeyedConfigHandler.cc.

References DTKeyedConfig::add(), brickContainer, gather_cfg::cout, cppFunctionSkipper::exception, cond::persistency::KeyList::getUsingKey(), isession, dqmdumpme::k, keyList, DTKeyedConfig::setId(), AlCaHLTBitMon_QueryRunRegistry::string, and cond::service::PoolDBOutputService::writeOneIOV().

Referenced by getNewObjects().

309  {
310  std::cout << "open POOL out db " << std::endl;
312 
313  std::map<int, bool>::const_iterator uBrkIter = userBricks.begin();
314  std::map<int, bool>::const_iterator uBrkIend = userBricks.end();
315 
316  coral::ITable& brickConfigTable = isession->nominalSchema().tableHandle("CFGBRICKS");
317  std::unique_ptr<coral::IQuery> brickConfigQuery(brickConfigTable.newQuery());
318  brickConfigQuery->addToOutputList("BRKID");
319  brickConfigQuery->addToOutputList("BRKNAME");
320  coral::ICursor& brickConfigCursor = brickConfigQuery->execute();
321  std::vector<int> missingList;
322  std::vector<unsigned long long> checkedKeys;
323  while (brickConfigCursor.next()) {
324  const coral::AttributeList& row = brickConfigCursor.currentRow();
325  int brickConfigId = row["BRKID"].data<int>();
326  uBrkIter = userBricks.find(brickConfigId);
327  if (uBrkIter == uBrkIend)
328  continue;
329  if (!(uBrkIter->second))
330  continue;
331  std::string brickConfigName = row["BRKNAME"].data<std::string>();
332  std::cout << "brick " << brickConfigId << " : " << brickConfigName << std::endl;
333  bool brickFound = false;
334  try {
335  std::cout << "load brick " << brickConfigId << std::endl;
336  std::cout << "key list " << keyList << std::endl;
337  std::cout << "get brick..." << std::endl;
338  std::shared_ptr<DTKeyedConfig> brickCheck = keyList->getUsingKey<DTKeyedConfig>(brickConfigId);
339  if (brickCheck.get()) {
340  brickFound = (brickCheck->getId() == brickConfigId);
341  }
342  } catch (std::exception const&) {
343  }
344  if (!brickFound) {
345  std::cout << "brick " << brickConfigId << " missing, copy request" << std::endl;
346  missingList.push_back(brickConfigId);
347  }
348  }
349 
350  std::vector<int>::const_iterator brickIter = missingList.begin();
351  std::vector<int>::const_iterator brickIend = missingList.end();
352  while (brickIter != brickIend) {
353  int brickConfigId = *brickIter++;
354  coral::AttributeList bindVariableList;
355  bindVariableList.extend("brickId", typeid(int));
356  bindVariableList["brickId"].data<int>() = brickConfigId;
357  std::unique_ptr<coral::IQuery> brickDataQuery(isession->nominalSchema().newQuery());
358  brickDataQuery->addToTableList("CFGRELATIONS");
359  brickDataQuery->addToTableList("CONFIGCMDS");
360  std::string brickCondition = "CONFIGCMDS.CMDID=CFGRELATIONS.CMDID";
361  brickCondition += " and CFGRELATIONS.BRKID=:brickId";
362  brickDataQuery->addToOutputList("CFGRELATIONS.BRKID");
363  brickDataQuery->addToOutputList("CONFIGCMDS.CONFDATA");
364  brickDataQuery->setCondition(brickCondition, bindVariableList);
365  coral::ICursor& brickDataCursor = brickDataQuery->execute();
366  DTKeyedConfig brickData;
367  brickData.setId(brickConfigId);
368  while (brickDataCursor.next()) {
369  const coral::AttributeList& row = brickDataCursor.currentRow();
370  brickData.add(row["CONFIGCMDS.CONFDATA"].data<std::string>());
371  }
372  cond::KeyedElement k(&brickData, brickConfigId);
373  std::cout << "now writing brick: " << brickConfigId << std::endl;
374  outdb->writeOneIOV(*(k.m_obj), k.m_key, brickContainer);
375  }
376 
377  return;
378 }
void add(const std::string &data)
const cond::persistency::KeyList * keyList
Hash writeOneIOV(const T &payload, Time_t time, const std::string &recordName)
void setId(int id)
std::shared_ptr< coral::ISessionProxy > isession
std::shared_ptr< T > getUsingKey(unsigned long long key) const
Definition: KeyList.h:57

◆ getNewObjects()

void DTUserKeyedConfigHandler::getNewObjects ( )
overridevirtual

Operations

Implements popcon::PopConSourceHandler< DTCCBConfig >.

Definition at line 84 of file DTUserKeyedConfigHandler.cc.

References DTCCBConfig::appendConfigKey(), DTCCBConfig::begin(), looper::cfg, chkConfigList(), cond::persistency::ConnectionPool::configure(), DTConfigKey::confKey, DTConfigKey::confType, connection, gather_cfg::cout, cond::persistency::ConnectionPool::createCoralSession(), dataRun, dataTag, DTCCBConfig::end(), isession, submitPVResolutionJobs::key, keyList, dqmdumpme::last, cond::TagInfo_t::lastInterval, popcon::PopConSourceHandler< DTCCBConfig >::lastPayload(), popcon::PopConSourceHandler< DTCCBConfig >::m_to_transfer, onlineAuthentication, onlineAuthSys, onlineConnect, jetsAK4_Puppi_cff::payload, nano_mu_digi_cff::sector, DTCCBId::sectorId, cond::persistency::ConnectionPool::setAuthenticationPath(), cond::persistency::ConnectionPool::setAuthenticationSystem(), DTCCBConfig::setFullKey(), DTCCBConfig::setStamp(), cond::Iov_t::since, relativeConstraints::station, DTCCBId::stationId, AlCaHLTBitMon_QueryRunRegistry::string, popcon::PopConSourceHandler< DTCCBConfig >::tagInfo(), userConf, userDiscardedKey(), makeMuonMisalignmentScenario::wheel, DTCCBId::wheelId, writeData, and writeKeys.

84  {
85  //to access the information on the tag inside the offline database:
86  cond::TagInfo_t const& ti = tagInfo();
88  std::cout << "last configuration key already copied for run: " << last << std::endl;
89 
90  std::vector<DTConfigKey> lastKey;
91  // std::cout << "check for last " << std::endl;
92  if (last == 0) {
93  DTCCBConfig* dummyConf = new DTCCBConfig(dataTag);
94  dummyConf->setStamp(0);
95  dummyConf->setFullKey(lastKey);
96  cond::Time_t snc = 1;
97  if (writeKeys && (dataRun > 1))
98  m_to_transfer.push_back(std::make_pair(dummyConf, snc));
99  } else {
100  std::cout << "get last payload" << std::endl;
101  Ref payload = lastPayload();
102  std::cout << "get last full key" << std::endl;
103  lastKey = payload->fullKey();
104  std::cout << "last key: " << std::endl;
105  std::vector<DTConfigKey>::const_iterator keyIter = lastKey.begin();
106  std::vector<DTConfigKey>::const_iterator keyIend = lastKey.end();
107  while (keyIter != keyIend) {
108  const DTConfigKey& keyList = *keyIter++;
109  std::cout << keyList.confType << " : " << keyList.confKey << std::endl;
110  }
111  }
112 
113  std::cout << "configure DbConnection" << std::endl;
114  // conn->configure( cond::CmsDefaults );
118  std::cout << "create/open DbSession" << std::endl;
120  std::cout << "start transaction" << std::endl;
121  isession->transaction().start(true);
122 
123  // get ccb identifiers map
124  std::cout << "retrieve CCB map" << std::endl;
125  std::map<int, DTCCBId> ccbMap;
126  coral::ITable& ccbMapTable = isession->nominalSchema().tableHandle("CCBMAP");
127  std::unique_ptr<coral::IQuery> ccbMapQuery(ccbMapTable.newQuery());
128  ccbMapQuery->addToOutputList("CCBID");
129  ccbMapQuery->addToOutputList("WHEEL");
130  ccbMapQuery->addToOutputList("SECTOR");
131  ccbMapQuery->addToOutputList("STATION");
132  coral::ICursor& ccbMapCursor = ccbMapQuery->execute();
133  while (ccbMapCursor.next()) {
134  const coral::AttributeList& row = ccbMapCursor.currentRow();
135  int ccb = row["CCBID"].data<int>();
136  int wheel = row["WHEEL"].data<int>();
137  int sector = row["SECTOR"].data<int>();
138  int station = row["STATION"].data<int>();
139  DTCCBId ccbId;
140  ccbId.wheelId = wheel;
141  ccbId.stationId = station;
142  ccbId.sectorId = sector;
143  ccbMap.insert(std::pair<int, DTCCBId>(ccb, ccbId));
144  }
145 
146  // get brick types
147  std::cout << "retrieve brick types" << std::endl;
148  std::map<int, int> bktMap;
149  coral::AttributeList emptyBindVariableList;
150  std::unique_ptr<coral::IQuery> brickTypeQuery(isession->nominalSchema().newQuery());
151  brickTypeQuery->addToTableList("CFGBRICKS");
152  brickTypeQuery->addToTableList("BRKT2CSETT");
153  std::string bTypeCondition = "CFGBRICKS.BRKTYPE=BRKT2CSETT.BRKTYPE";
154  brickTypeQuery->addToOutputList("CFGBRICKS.BRKID");
155  brickTypeQuery->addToOutputList("BRKT2CSETT.CSETTYPE");
156  brickTypeQuery->setCondition(bTypeCondition, emptyBindVariableList);
157  coral::ICursor& brickTypeCursor = brickTypeQuery->execute();
158  while (brickTypeCursor.next()) {
159  const coral::AttributeList& row = brickTypeCursor.currentRow();
160  int id = row["CFGBRICKS.BRKID"].data<int>();
161  int bt = row["BRKT2CSETT.CSETTYPE"].data<short>();
162  // std::cout << "brick " << id << " type " << bt << std::endl;
163  // @@FIX - TEMPORARY PATCH
164  // if ( bt > 3 ) bt = 3;
165  bktMap.insert(std::pair<int, int>(id, bt));
166  }
167 
168  // get ccb config keys
169  std::cout << "retrieve CCB configuration keys" << std::endl;
170  std::map<int, std::map<int, int>*> keyMap;
171  std::map<int, int> cckMap;
172  coral::ITable& ccbRelTable = isession->nominalSchema().tableHandle("CCBRELATIONS");
173  std::unique_ptr<coral::IQuery> ccbRelQuery(ccbRelTable.newQuery());
174  ccbRelQuery->addToOutputList("CONFKEY");
175  ccbRelQuery->addToOutputList("CCBID");
176  ccbRelQuery->addToOutputList("CONFCCBKEY");
177  coral::ICursor& ccbRelCursor = ccbRelQuery->execute();
178  // loop over all full configurations
179  while (ccbRelCursor.next()) {
180  const coral::AttributeList& row = ccbRelCursor.currentRow();
181  int cfg = row["CONFKEY"].data<int>();
182  int ccb = row["CCBID"].data<int>();
183  int key = row["CONFCCBKEY"].data<int>();
184  // check for used configurations
185  // if ( cfgMap.find( cfg ) == cfgMap.end() ) continue;
186  if (userDiscardedKey(cfg))
187  continue;
188  std::map<int, std::map<int, int>*>::const_iterator keyIter = keyMap.find(cfg);
189  std::map<int, std::map<int, int>*>::const_iterator keyIend = keyMap.end();
190  std::map<int, int>* mapPtr = nullptr;
191  // check for new full configuration
192  if (keyIter != keyIend)
193  mapPtr = keyIter->second;
194  else
195  keyMap.insert(std::pair<int, std::map<int, int>*>(cfg, mapPtr = new std::map<int, int>));
196  // store ccb config key
197  std::map<int, int>& mapRef(*mapPtr);
198  mapRef.insert(std::pair<int, int>(ccb, key));
199  // check for new ccb config key
200  if (cckMap.find(key) == cckMap.end())
201  cckMap.insert(std::pair<int, int>(key, ccb));
202  }
203 
204  // get brick keys
205  std::cout << "retrieve CCB configuration bricks" << std::endl;
206  std::map<int, std::vector<int>*> brkMap;
207  coral::ITable& confBrickTable = isession->nominalSchema().tableHandle("CFG2BRKREL");
208  std::unique_ptr<coral::IQuery> confBrickQuery(confBrickTable.newQuery());
209  confBrickQuery->addToOutputList("CONFID");
210  confBrickQuery->addToOutputList("BRKID");
211  coral::ICursor& confBrickCursor = confBrickQuery->execute();
212  // loop over all brick keys
213  while (confBrickCursor.next()) {
214  const coral::AttributeList& row = confBrickCursor.currentRow();
215  int key = row["CONFID"].data<int>();
216  int brk = row["BRKID"].data<int>();
217  // check for used ccb config key
218  if (cckMap.find(key) == cckMap.end())
219  continue;
220  std::map<int, std::vector<int>*>::const_iterator brkIter = brkMap.find(key);
221  std::map<int, std::vector<int>*>::const_iterator brkIend = brkMap.end();
222  // check for new ccb config key
223  std::vector<int>* brkPtr = nullptr;
224  if (brkIter != brkIend)
225  brkPtr = brkIter->second;
226  else
227  brkMap.insert(std::pair<int, std::vector<int>*>(key, brkPtr = new std::vector<int>));
228  // store brick key
229  brkPtr->push_back(brk);
230  }
231 
232  // set run and full configuration in payload
233  DTCCBConfig* fullConf = new DTCCBConfig(dataTag);
234  fullConf->setStamp(1);
235  fullConf->setFullKey(userConf);
236  std::map<int, bool> userBricks;
237  std::map<int, bool>::const_iterator uBrkIter = userBricks.begin();
238  std::map<int, bool>::const_iterator uBrkIend = userBricks.end();
239  std::vector<DTConfigKey>::const_iterator cfgIter = userConf.begin();
240  std::vector<DTConfigKey>::const_iterator cfgIend = userConf.end();
241  while (cfgIter != cfgIend) {
242  const DTConfigKey& cfgEntry = *cfgIter++;
243  int cft = cfgEntry.confType;
244  int cfg = cfgEntry.confKey;
245  // retrieve ccb config map
246  std::map<int, std::map<int, int>*>::const_iterator keyIter = keyMap.find(cfg);
247  std::map<int, std::map<int, int>*>::const_iterator keyIend = keyMap.end();
248  std::map<int, int>* mapPtr = nullptr;
249  if (keyIter != keyIend)
250  mapPtr = keyIter->second;
251  if (mapPtr == nullptr)
252  continue;
253  std::map<int, int>::const_iterator ccbIter = mapPtr->begin();
254  std::map<int, int>::const_iterator ccbIend = mapPtr->end();
255  while (ccbIter != ccbIend) {
256  const std::pair<int, int>& ccbEntry = *ccbIter++;
257  // get ccb config key
258  int ccb = ccbEntry.first;
259  int key = ccbEntry.second;
260  // retrieve chamber id
261  std::map<int, DTCCBId>::const_iterator ccbIter = ccbMap.find(ccb);
262  std::map<int, DTCCBId>::const_iterator ccbIend = ccbMap.end();
263  if (ccbIter == ccbIend)
264  continue;
265  const DTCCBId& chaId = ccbIter->second;
266  // retrieve brick id list
267  std::map<int, std::vector<int>*>::const_iterator brkIter = brkMap.find(key);
268  std::map<int, std::vector<int>*>::const_iterator brkIend = brkMap.end();
269  if (brkIter == brkIend)
270  continue;
271  std::vector<int>* brkPtr = brkIter->second;
272  if (brkPtr == nullptr)
273  continue;
274  // brick id lists in payload
275  std::vector<int> bkList;
276  bkList.reserve(20);
277  std::map<int, int>::const_iterator bktIter = bktMap.begin();
278  std::map<int, int>::const_iterator bktIend = bktMap.end();
279  std::vector<int>::const_iterator bkiIter = brkPtr->begin();
280  std::vector<int>::const_iterator bkiIend = brkPtr->end();
281  while (bkiIter != bkiIend) {
282  int brickId = *bkiIter++;
283  bktIter = bktMap.find(brickId);
284  if (bktIter == bktIend)
285  continue;
286  if (bktIter->second == cft) {
287  bkList.push_back(brickId);
288  uBrkIter = userBricks.find(brickId);
289  if (uBrkIter == uBrkIend)
290  userBricks.insert(std::pair<int, bool>(brickId, true));
291  }
292  }
293  fullConf->appendConfigKey(chaId.wheelId, chaId.stationId, chaId.sectorId, bkList);
294  }
295  }
296  cond::Time_t snc = dataRun;
297  if (writeKeys)
298  m_to_transfer.push_back(std::make_pair(fullConf, snc));
299  std::cout << "writing payload : " << sizeof(*fullConf) << " ( " << (fullConf->end() - fullConf->begin()) << " ) "
300  << std::endl;
301  if (writeData)
302  chkConfigList(userBricks);
303 
304  isession->transaction().commit();
305 
306  return;
307 }
int wheelId
Definition: DTCCBConfig.h:42
Iov_t lastInterval
Definition: Types.h:73
void setStamp(int s)
Definition: DTCCBConfig.cc:121
const cond::persistency::KeyList * keyList
std::vector< DTConfigKey > userConf
Time_t since
Definition: Types.h:53
int sectorId
Definition: DTCCBConfig.h:44
cond::TagInfo_t const & tagInfo() const
unsigned long long Time_t
Definition: Time.h:14
int stationId
Definition: DTCCBConfig.h:43
void setAuthenticationSystem(int authSysCode)
std::vector< std::pair< DTCCBConfig *, Time_t > > m_to_transfer
key
prepare the HTCondor submission files and eventually submit them
void chkConfigList(const std::map< int, bool > &userBricks)
const_iterator end() const
Definition: DTCCBConfig.cc:207
std::shared_ptr< coral::ISessionProxy > isession
const_iterator begin() const
Definition: DTCCBConfig.cc:205
void setFullKey(const std::vector< DTConfigKey > &)
Definition: DTCCBConfig.cc:119
cond::persistency::ConnectionPool connection
void setAuthenticationPath(const std::string &p)
std::shared_ptr< coral::ISessionProxy > createCoralSession(const std::string &connectionString, bool writeCapable=false)
int appendConfigKey(int wheelId, int stationId, int sectorId, const std::vector< int > &confKey)
Definition: DTCCBConfig.cc:168

◆ id()

std::string DTUserKeyedConfigHandler::id ( ) const
overridevirtual

Implements popcon::PopConSourceHandler< DTCCBConfig >.

Definition at line 380 of file DTUserKeyedConfigHandler.cc.

References dataTag.

380 { return dataTag; }

◆ sameConfigList()

bool DTUserKeyedConfigHandler::sameConfigList ( const std::vector< DTConfigKey > &  cfgl,
const std::vector< DTConfigKey > &  cfgr 
)
staticprivate

Definition at line 382 of file DTUserKeyedConfigHandler.cc.

References mps_splice::entry.

383  {
384  if (cfgl.size() != cfgr.size())
385  return false;
386  std::map<int, int> lmap;
387  std::vector<DTConfigKey>::const_iterator lIter = cfgl.begin();
388  std::vector<DTConfigKey>::const_iterator lIend = cfgl.end();
389  while (lIter != lIend) {
390  const DTConfigKey& entry = *lIter++;
391  lmap.insert(std::pair<int, int>(entry.confType, entry.confKey));
392  }
393  std::map<int, int> rmap;
394  std::vector<DTConfigKey>::const_iterator rIter = cfgr.begin();
395  std::vector<DTConfigKey>::const_iterator rIend = cfgr.end();
396  while (rIter != rIend) {
397  const DTConfigKey& entry = *rIter++;
398  rmap.insert(std::pair<int, int>(entry.confType, entry.confKey));
399  }
400  std::map<int, int>::const_iterator lmIter = lmap.begin();
401  std::map<int, int>::const_iterator lmIend = lmap.end();
402  std::map<int, int>::const_iterator rmIter = rmap.begin();
403  std::map<int, int>::const_iterator rmIend = rmap.end();
404  while ((lmIter != lmIend) && (rmIter != rmIend)) {
405  const std::pair<int, int>& lEntry = *lmIter++;
406  const std::pair<int, int>& rEntry = *rmIter++;
407  if (lEntry.first != rEntry.first)
408  return false;
409  if (lEntry.second != rEntry.second)
410  return false;
411  }
412  return true;
413 }

◆ setList()

void DTUserKeyedConfigHandler::setList ( const cond::persistency::KeyList list)

Definition at line 426 of file DTUserKeyedConfigHandler.cc.

References keyList.

Referenced by DTUserKeyedConfigPopConAnalyzer::analyze().

426 { keyList = list; }
const cond::persistency::KeyList * keyList

◆ userDiscardedKey()

bool DTUserKeyedConfigHandler::userDiscardedKey ( int  key)
private

Definition at line 415 of file DTUserKeyedConfigHandler.cc.

References mps_splice::entry, submitPVResolutionJobs::key, and userConf.

Referenced by getNewObjects().

415  {
416  std::vector<DTConfigKey>::const_iterator iter = userConf.begin();
417  std::vector<DTConfigKey>::const_iterator iend = userConf.end();
418  while (iter != iend) {
419  const DTConfigKey& entry = *iter++;
420  if (entry.confKey == key)
421  return false;
422  }
423  return true;
424 }
std::vector< DTConfigKey > userConf
key
prepare the HTCondor submission files and eventually submit them

Member Data Documentation

◆ brickContainer

std::string DTUserKeyedConfigHandler::brickContainer
private

Definition at line 70 of file DTUserKeyedConfigHandler.h.

Referenced by chkConfigList().

◆ ccbConfig

DTCCBConfig* DTUserKeyedConfigHandler::ccbConfig
private

Definition at line 74 of file DTUserKeyedConfigHandler.h.

◆ connection

cond::persistency::ConnectionPool DTUserKeyedConfigHandler::connection
private

Definition at line 76 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

◆ dataRun

int DTUserKeyedConfigHandler::dataRun
private

Definition at line 65 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

◆ dataTag

std::string DTUserKeyedConfigHandler::dataTag
private

Definition at line 66 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects(), and id().

◆ isession

std::shared_ptr<coral::ISessionProxy> DTUserKeyedConfigHandler::isession
private

Definition at line 77 of file DTUserKeyedConfigHandler.h.

Referenced by chkConfigList(), and getNewObjects().

◆ keyList

const cond::persistency::KeyList* DTUserKeyedConfigHandler::keyList = nullptr
private

Definition at line 82 of file DTUserKeyedConfigHandler.h.

Referenced by chkConfigList(), getNewObjects(), and setList().

◆ onlineAuthentication

std::string DTUserKeyedConfigHandler::onlineAuthentication
private

Definition at line 68 of file DTUserKeyedConfigHandler.h.

Referenced by DTUserKeyedConfigHandler(), and getNewObjects().

◆ onlineAuthSys

int DTUserKeyedConfigHandler::onlineAuthSys
private

Definition at line 69 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

◆ onlineConnect

std::string DTUserKeyedConfigHandler::onlineConnect
private

Definition at line 67 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

◆ userConf

std::vector<DTConfigKey> DTUserKeyedConfigHandler::userConf
private

◆ writeData

bool DTUserKeyedConfigHandler::writeData
private

Definition at line 73 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

◆ writeKeys

bool DTUserKeyedConfigHandler::writeKeys
private

Definition at line 72 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().