Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-23 15:57:46

0001 #include "FWCore/Framework/interface/PrincipalCache.h"
0002 
0003 #include "FWCore/Framework/interface/EventPrincipal.h"
0004 #include "FWCore/Framework/interface/LuminosityBlockPrincipal.h"
0005 #include "FWCore/Framework/interface/ProcessBlockPrincipal.h"
0006 #include "FWCore/Framework/interface/RunPrincipal.h"
0007 #include "FWCore/Framework/interface/PreallocationConfiguration.h"
0008 
0009 #include <cassert>
0010 
0011 namespace edm {
0012 
0013   PrincipalCache::PrincipalCache() {}
0014 
0015   PrincipalCache::~PrincipalCache() {}
0016 
0017   std::shared_ptr<RunPrincipal> PrincipalCache::getAvailableRunPrincipalPtr() { return runHolder_.tryToGet(); }
0018 
0019   std::shared_ptr<LuminosityBlockPrincipal> PrincipalCache::getAvailableLumiPrincipalPtr() {
0020     return lumiHolder_.tryToGet();
0021   }
0022 
0023   void PrincipalCache::setNumberOfConcurrentPrincipals(PreallocationConfiguration const& iConfig) {
0024     eventPrincipals_.resize(iConfig.numberOfStreams());
0025   }
0026 
0027   void PrincipalCache::insert(std::unique_ptr<ProcessBlockPrincipal> pb) { processBlockPrincipal_ = std::move(pb); }
0028 
0029   void PrincipalCache::insertForInput(std::unique_ptr<ProcessBlockPrincipal> pb) {
0030     inputProcessBlockPrincipal_ = std::move(pb);
0031   }
0032 
0033   void PrincipalCache::insert(std::unique_ptr<RunPrincipal> rp) { runHolder_.add(std::move(rp)); }
0034 
0035   void PrincipalCache::insert(std::unique_ptr<LuminosityBlockPrincipal> lbp) { lumiHolder_.add(std::move(lbp)); }
0036 
0037   void PrincipalCache::insert(std::shared_ptr<EventPrincipal> ep) {
0038     unsigned int iStreamIndex = ep->streamID().value();
0039     assert(iStreamIndex < eventPrincipals_.size());
0040     eventPrincipals_[iStreamIndex] = ep;
0041   }
0042 }  // namespace edm