1 #ifndef FWCore_Framework_Principal_h
2 #define FWCore_Framework_Principal_h
26 #include "boost/iterator/filter_iterator.hpp"
27 #include "boost/shared_ptr.hpp"
42 bool operator()(boost::shared_ptr<Group>
const& iObj) {
return bool(iObj);}
48 typedef boost::filter_iterator<FilledGroupPtr, GroupCollection::const_iterator>
const_iterator;
57 Principal(boost::shared_ptr<ProductRegistry const> reg,
71 void addGroupInput(boost::shared_ptr<ConstBranchDescription> bd);
87 std::string
const&
label,
88 std::string
const& productInstanceName,
89 std::string
const& processName,
91 int& fillCount)
const;
147 bool fillOnDemand)
const;
163 bool fillOnDemand)
const;
179 void putOrMerge(std::auto_ptr<EDProduct>
prod, std::auto_ptr<ProductProvenance> prov,
Group* group);
199 std::string
const& productInstanceName,
200 std::string
const& processName,
201 size_t& cachedOffset,
224 boost::shared_ptr<ProductRegistry const>
preg_;
240 template <
typename PROD>
242 boost::shared_ptr<Wrapper<PROD>
const>
collection_type::const_iterator const_iterator
void maybeFlushCache(TypeID const &tid, InputTag const &tag) const
ProductRegistry const & productRegistry() const
boost::shared_ptr< BranchMapper > branchMapperPtr_
void swapBase(Principal &)
boost::shared_ptr< Wrapper< PROD > const > getProductByTag(Principal const &ep, InputTag const &tag)
size_t findGroup(TypeID const &typeID, TypeLookup const &typeLookup, SelectorBase const &selector, BasicHandle &result) const
void addGroupScheduled(boost::shared_ptr< ConstBranchDescription > bd)
boost::shared_ptr< DelayedReader > store() const
SharedConstGroupPtr const getGroupByIndex(ProductTransientIndex const &oid, bool resolveProd, bool fillOnDemand) const
BasicHandle getByLabel(TypeID const &tid, std::string const &label, std::string const &productInstanceName, std::string const &processName, size_t &cachedOffset, int &fillCount) const
Principal(boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, BranchType bt)
const_iterator end() const
void addGroup_(std::auto_ptr< Group > g)
Group * getExistingGroup(BranchID const &branchID)
void putOrMerge(std::auto_ptr< EDProduct > prod, Group const *group) const
void addGroupOrThrow(std::auto_ptr< Group > g)
ProcessHistoryID processHistoryID_
void getAllProvenance(std::vector< Provenance const * > &provenances) const
boost::shared_ptr< ProductRegistry const > preg_
GroupCollection::size_type size_type
void addGroupSource(boost::shared_ptr< ConstBranchDescription > bd)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
ProcessHistory const & processHistory() const
boost::shared_ptr< ProcessHistory > processHistoryPtr_
void resolveProduct(Group const &g, bool fillOnDemand) const
boost::shared_ptr< Group > SharedGroupPtr
void getMany(TypeID const &tid, SelectorBase const &, BasicHandleVec &results) const
ProcessHistoryID const & processHistoryID() const
void setProcessHistory(Principal const &principal)
BranchType const & branchType() const
size_t findGroups(TypeID const &typeID, TypeLookup const &typeLookup, SelectorBase const &selector, BasicHandleVec &results) const
void fillPrincipal(ProcessHistoryID const &hist, boost::shared_ptr< BranchMapper > mapper, boost::shared_ptr< DelayedReader > rtrv)
void checkUniquenessAndType(std::auto_ptr< EDProduct > &prod, Group const *group) const
size_t getMatchingSequence(TypeID const &typeID, SelectorBase const &selector, BasicHandle &result) const
bool operator()(boost::shared_ptr< Group > const &iObj)
OutputHandle getForOutput(BranchID const &bid, bool getProd) const
virtual void resolveProduct_(Group const &g, bool fillOnDemand) const
ProcessConfiguration const & processConfiguration() const
virtual EDProduct const * getIt(ProductID const &) const
ProcessHistory::const_iterator ProcessNameConstIterator
const_iterator begin() const
SharedConstGroupPtr const getGroup(BranchID const &oid, bool resolveProd, bool fillOnDemand) const
void getManyByType(TypeID const &tid, BasicHandleVec &results) const
std::set< EDProduct * > productPtrs_
void addGroupInput(boost::shared_ptr< ConstBranchDescription > bd)
BasicHandle getByType(TypeID const &tid) const
boost::filter_iterator< FilledGroupPtr, GroupCollection::const_iterator > const_iterator
author Stefano ARGIRO author Bill Tanenbaum
virtual bool unscheduledFill(std::string const &moduleLabel) const =0
bool adjustToNewProductRegistry(ProductRegistry const ®)
BasicHandle getBySelector(TypeID const &tid, SelectorBase const &s) const
bool findGroupByLabel(TypeID const &typeID, TypeLookup const &typeLookup, std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, size_t &cachedOffset, int &fillCount, BasicHandle &result) const
std::vector< boost::shared_ptr< Group > > GroupCollection
boost::shared_ptr< BranchMapper > branchMapperPtr() const
TransientProductLookupMap TypeLookup
void adjustIndexesAfterProductRegistryAddition()
EDProductGetter const * prodGetter() const
Provenance getProvenance(BranchID const &bid) const
void recombine(Principal &other, std::vector< BranchID > const &bids)
boost::shared_ptr< Group const > SharedConstGroupPtr
ProcessConfiguration const * processConfiguration_
ProcessHistory & processHistoryUpdate()
std::vector< BasicHandle > BasicHandleVec
boost::shared_ptr< DelayedReader > store_
void addOnDemandGroup(boost::shared_ptr< ConstBranchDescription > bd)
const std::string * moduleLabel() const