Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:02

0001 #ifndef DataFormats_Provenance_StoredProcessBlockHelper_h
0002 #define DataFormats_Provenance_StoredProcessBlockHelper_h
0003 
0004 /** \class edm::StoredProcessBlockHelper
0005 
0006 This contains the information from the ProcessBlockHelper
0007 that is persistent. The processBlockCacheIndices_ data
0008 member is a flattened  version of the vector of vectors
0009 in the ProcessBlockHelper. It is flattened mainly for
0010 I/O performance reasons. This is intended to be directly
0011 used only by the IOPool code responsible for reading
0012 and writing the persistent files. Everything else should
0013 interact with the ProcessBlockHelper.
0014 
0015 \author W. David Dagenhart, created 1 Oct, 2020
0016 
0017 */
0018 
0019 #include <string>
0020 #include <utility>
0021 #include <vector>
0022 
0023 namespace edm {
0024 
0025   class StoredProcessBlockHelper {
0026   public:
0027     // This constructor exists for ROOT I/O
0028     StoredProcessBlockHelper();
0029 
0030     explicit StoredProcessBlockHelper(std::vector<std::string> const& processesWithProcessBlockProducts);
0031 
0032     std::vector<std::string> const& processesWithProcessBlockProducts() const {
0033       return processesWithProcessBlockProducts_;
0034     }
0035     void setProcessesWithProcessBlockProducts(std::vector<std::string> val) {
0036       processesWithProcessBlockProducts_ = std::move(val);
0037     }
0038 
0039     std::vector<unsigned int> const& processBlockCacheIndices() const { return processBlockCacheIndices_; }
0040     void setProcessBlockCacheIndices(std::vector<unsigned int> val) { processBlockCacheIndices_ = std::move(val); }
0041 
0042   private:
0043     std::vector<std::string> processesWithProcessBlockProducts_;
0044 
0045     std::vector<unsigned int> processBlockCacheIndices_;
0046   };
0047 }  // namespace edm
0048 #endif