1 #ifndef FWCore_Framework_Principal_h
2 #define FWCore_Framework_Principal_h
34 #include "boost/iterator/filter_iterator.hpp"
35 #include "boost/shared_ptr.hpp"
45 class HistoryAppender;
46 class ModuleCallingContext;
47 class ProcessHistoryRegistry;
48 class ProductHolderIndexHelper;
52 bool operator()(boost::shared_ptr<ProductHolderBase>
const& iObj) {
return bool(iObj);}
58 typedef boost::filter_iterator<FilledProductPtr, ProductHolderCollection::const_iterator>
const_iterator;
67 Principal(boost::shared_ptr<ProductRegistry const> reg,
68 boost::shared_ptr<ProductHolderIndexHelper const>
productLookup,
126 bool skipCurrentProcess,
131 bool skipCurrentProcess,
202 void addProduct_(std::auto_ptr<ProductHolderBase> phb);
217 void findProducts(std::vector<ProductHolderBase const*>
const& holders,
251 boost::shared_ptr<ProductRegistry const>
preg_;
275 template <
typename PROD>
277 boost::shared_ptr<Wrapper<PROD>
const>
281 if(result ==
nullptr) {
282 return boost::shared_ptr<Wrapper<PROD>
const>();
collection_type::const_iterator const_iterator
ProductRegistry const & productRegistry() const
WrapperInterfaceBase const * getInterface() const
HistoryAppender * historyAppender_
std::vector< boost::shared_ptr< ProductHolderBase > > ProductHolderCollection
ConstProductHolderPtr getProductHolder(BranchID const &oid) const
void addInputProduct(boost::shared_ptr< BranchDescription const > bd)
void putOrMerge(WrapperOwningHolder const &prod, ProductHolderBase const *productHolder) const
void readFromSource(ProductHolderBase const &phb, ModuleCallingContext const *mcc) const
const_iterator end() const
ProductHolderBase const * ConstProductHolderPtr
static PFTauRenderPlugin instance
ProcessHistoryID processHistoryID_
virtual bool isComplete_() const
void getAllProvenance(std::vector< Provenance const * > &provenances) const
void checkUniquenessAndType(WrapperOwningHolder const &prod, ProductHolderBase const *productHolder) const
Provenance getProvenance(BranchID const &bid, ModuleCallingContext const *mcc) const
boost::shared_ptr< ProductRegistry const > preg_
std::type_info const & dynamicTypeInfo() const
void getManyByType(TypeID const &typeID, BasicHandleVec &results, EDConsumerBase const *consumes, ModuleCallingContext const *mcc) const
Principal(boost::shared_ptr< ProductRegistry const > reg, boost::shared_ptr< ProductHolderIndexHelper const > productLookup, ProcessConfiguration const &pc, BranchType bt, HistoryAppender *historyAppender)
CacheIdentifier_t cacheIdentifier() const
unsigned int ProductHolderIndex
boost::shared_ptr< ProductHolderBase > SharedProductPtr
ProcessHistory const & processHistory() const
void addAliasedProduct(boost::shared_ptr< BranchDescription const > bd)
std::vector< unsigned int > lookupProcessOrder_
void addScheduledProduct(boost::shared_ptr< BranchDescription const > bd)
void throwConvertTypeError(std::type_info const &expected, std::type_info const &actual)
virtual bool unscheduledFill(std::string const &moduleLabel, ModuleCallingContext const *mcc) const =0
BasicHandle getByToken(KindOfType kindOfType, TypeID const &typeID, ProductHolderIndex index, bool skipCurrentProcess, bool &ambiguous, ModuleCallingContext const *mcc) const
ProductData const * findProductByTag(TypeID const &typeID, InputTag const &tag, ModuleCallingContext const *mcc) const
ConstProductHolderPtr getProductHolderByIndex(ProductHolderIndex const &oid) const
ProcessHistoryID const & processHistoryID() const
boost::shared_ptr< ProductHolderIndexHelper const > productLookup_
ProductData const * findProductByLabel(KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag, EDConsumerBase const *consumer, ModuleCallingContext const *mcc) const
CacheIdentifier_t cacheIdentifier_
BranchType const & branchType() const
std::vector< unsigned int > const & lookupProcessOrder() const
ProductHolderCollection productHolders_
void addProduct_(std::auto_ptr< ProductHolderBase > phb)
boost::shared_ptr< ProcessHistory const > processHistoryPtr_
ProcessHistoryID orderProcessHistoryID_
boost::shared_ptr< void const > wrapper_
void findProducts(std::vector< ProductHolderBase const * > const &holders, TypeID const &typeID, BasicHandleVec &results, ModuleCallingContext const *mcc) const
ProcessConfiguration const & processConfiguration() const
std::set< void const * > productPtrs_
OutputHandle getForOutput(BranchID const &bid, bool getProd, ModuleCallingContext const *mcc) const
void addUnscheduledProduct(boost::shared_ptr< BranchDescription const > bd)
DelayedReader * reader() const
void prefetch(ProductHolderIndex index, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
ProductHolderCollection::size_type size_type
ProcessHistory::const_iterator ProcessNameConstIterator
void addSourceProduct(boost::shared_ptr< BranchDescription const > bd)
const_iterator begin() const
virtual WrapperHolder getIt(ProductID const &) const
bool operator()(boost::shared_ptr< ProductHolderBase > const &iObj)
boost::shared_ptr< Wrapper< PROD > const > getProductByTag(Principal const &ep, InputTag const &tag, ModuleCallingContext const *mcc)
unsigned long CacheIdentifier_t
void addProductOrThrow(std::auto_ptr< ProductHolderBase > phb)
boost::filter_iterator< FilledProductPtr, ProductHolderCollection::const_iterator > const_iterator
bool adjustToNewProductRegistry(ProductRegistry const ®)
virtual void readFromSource_(ProductHolderBase const &phb, ModuleCallingContext const *mcc) const
void adjustIndexesAfterProductRegistryAddition()
BasicHandle getByLabel(KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag, EDConsumerBase const *consumes, ModuleCallingContext const *mcc) const
void fillPrincipal(ProcessHistoryID const &hist, ProcessHistoryRegistry const &phr, DelayedReader *reader)
EDProductGetter const * prodGetter() const
void recombine(Principal &other, std::vector< BranchID > const &bids)
ProcessConfiguration const * processConfiguration_
std::vector< BasicHandle > BasicHandleVec
ProductHolderBase * getExistingProduct(BranchID const &branchID)
ProductHolderIndexHelper const & productLookup() const
void deleteProduct(BranchID const &id)