1 #ifndef art_Framework_Principal_Principal_h 2 #define art_Framework_Principal_Principal_h 38 #include "cetlib/exempt_ptr.h" 63 cet::exempt_ptr<ProductTable const> presentProducts,
65 std::unique_ptr<DelayedReader>&& reader =
66 std::make_unique<NoDelayedReader>());
88 std::string
const& label,
89 std::string
const& productInstanceName,
128 bool const alwaysEnableLookupOfProducedProducts =
false)
const;
172 std::unique_ptr<ProductProvenance const>&&,
173 std::unique_ptr<EDProduct>&&,
174 std::unique_ptr<RangeSet>&&);
194 std::vector<cet::exempt_ptr<Group>>& results)
const;
198 std::vector<cet::exempt_ptr<Group>>& groups)
const;
200 std::vector<ProductID>
const& vpid,
203 std::vector<cet::exempt_ptr<Group>>& groups)
const;
Principal & operator=(Principal const &)=delete
std::optional< ProductInserter > makeInserter(ModuleContext const &mc)
const_iterator cend() const
std::atomic< bool > processHistoryModified_
size_t findGroups(ProcessLookup const &, ModuleContext const &, SelectorBase const &, std::vector< cet::exempt_ptr< Group >> &groups) const
virtual ~Principal() noexcept=default
std::map< std::string, std::vector< ProductID >> ProcessLookup
std::atomic< bool > enableLookupOfProducedProducts_
auto tryNextSecondaryFile() const
const_iterator end() const
Principal(BranchType, ProcessConfiguration const &, cet::exempt_ptr< ProductTable const > presentProducts, ProcessHistoryID const &id, std::unique_ptr< DelayedReader > &&reader=std::make_unique< NoDelayedReader >())
std::vector< InputTag > getInputTags(ModuleContext const &mc, WrappedTypeID const &wrapped, SelectorBase const &, ProcessTag const &) const
ProcessHistory processHistory_
void addToProcessHistory()
std::vector< cet::exempt_ptr< Group > > matchingSequenceFromInputFile(ModuleContext const &, SelectorBase const &) const
size_t findGroupsFromInputFile(ModuleContext const &, WrappedTypeID const &wrapped, SelectorBase const &, std::vector< cet::exempt_ptr< Group >> &results) const
void updateSeenRanges(RangeSet const &rs)
std::recursive_mutex groupMutex_
void readImmediate() const
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
GroupQueryResult getBySelector(ModuleContext const &mc, WrappedTypeID const &wrapped, SelectorBase const &, ProcessTag const &) const
void createGroupsForProducedProducts(ProductTables const &producedProducts)
bool presentFromSource(ProductID) const
RangeSet seenRanges() const
std::atomic< ProductTable const * > producedProducts_
OutputHandle getForOutput(ProductID const &, bool resolveProd) const
cet::exempt_ptr< BranchDescription const > getProductDescription(ProductID const pid, bool const alwaysEnableLookupOfProducedProducts=false) const
EDProductGetter const * productGetter(ProductID id) const
ProcessHistoryID const & processHistoryID() const
EDProductGetter const * getEDProductGetter_(ProductID const &) const override
void setProcessHistoryIDcombined(ProcessHistoryID const &)
void put(BranchDescription const &, std::unique_ptr< ProductProvenance const > &&, std::unique_ptr< EDProduct > &&, std::unique_ptr< RangeSet > &&)
std::vector< cet::exempt_ptr< Group > > getMatchingSequence(ModuleContext const &, SelectorBase const &, ProcessTag const &) const
std::atomic< ProductTable const * > presentProducts_
void ctor_fetch_process_history(ProcessHistoryID const &)
std::vector< cet::exempt_ptr< Group > > findGroupsForProduct(ModuleContext const &mc, WrappedTypeID const &wrapped, SelectorBase const &, ProcessTag const &) const
void ctor_create_groups(cet::exempt_ptr< ProductTable const >)
ProcessHistory const & processHistory() const
cet::exempt_ptr< ProductProvenance const > branchToProductProvenance(ProductID const &) const
void enableLookupOfProducedProducts()
ProcessConfiguration const & processConfiguration() const
cet::exempt_ptr< Group > getGroupTryAllFiles(ProductID const) const
int nextSecondaryFileIdx_
ProcessConfiguration const & processConfiguration_
static RangeSet invalid()
void ctor_read_provenance()
cet::exempt_ptr< Group > getGroupLocal(ProductID const) const
std::vector< GroupQueryResult > getMany(ModuleContext const &mc, WrappedTypeID const &wrapped, SelectorBase const &, ProcessTag const &) const
std::map< ProductID, std::unique_ptr< Group >> GroupCollection
void fillGroup(BranchDescription const &)
GroupQueryResult getByLabel(ModuleContext const &mc, WrappedTypeID const &wrapped, std::string const &label, std::string const &productInstanceName, ProcessTag const &processTag) const
std::unique_ptr< DelayedReader > delayedReader_
void markProcessHistoryAsModified()
GroupQueryResult getByProductID(ProductID const pid) const
std::vector< std::unique_ptr< Principal > > secondaryPrincipals_
GroupCollection::const_iterator const_iterator
ProcessHistoryID const & id() const
bool producedInProcess(ProductID) const
const_iterator cbegin() const
size_t findGroupsForProcess(std::vector< ProductID > const &vpid, ModuleContext const &mc, SelectorBase const &selector, std::vector< cet::exempt_ptr< Group >> &groups) const
const_iterator begin() const
BranchType branchType() const
Provenance provenance(ProductID id) const