1 #ifndef FWCore_Framework_Principal_h
2 #define FWCore_Framework_Principal_h
35 #include "boost/iterator/filter_iterator.hpp"
36 #include "boost/shared_ptr.hpp"
46 class HistoryAppender;
49 bool operator()(boost::shared_ptr<Group>
const& iObj) {
return bool(iObj);}
55 typedef boost::filter_iterator<FilledGroupPtr, GroupCollection::const_iterator>
const_iterator;
64 Principal(boost::shared_ptr<ProductRegistry const> reg,
79 void addGroupInput(boost::shared_ptr<ConstBranchDescription> bd);
97 std::string
const&
label,
98 std::string
const& productInstanceName,
99 std::string
const& processName,
100 size_t& cachedOffset,
101 int& fillCount)
const;
155 bool fillOnDemand)
const;
171 bool fillOnDemand)
const;
190 virtual bool unscheduledFill(std::string
const& moduleLabel)
const = 0;
202 std::string
const& moduleLabel,
203 std::string
const& productInstanceName,
204 std::string
const& processName,
205 size_t& cachedOffset,
206 int& fillCount)
const;
227 boost::shared_ptr<ProductRegistry const>
preg_;
246 template <
typename PROD>
248 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< 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)
WrapperInterfaceBase const * getInterface() const
HistoryAppender * historyAppender_
BasicHandle getByLabel(TypeID const &tid, std::string const &label, std::string const &productInstanceName, std::string const &processName, size_t &cachedOffset, int &fillCount) const
const_iterator end() const
void addGroup_(std::auto_ptr< Group > g)
Group * getExistingGroup(BranchID const &branchID)
void addGroupOrThrow(std::auto_ptr< Group > g)
ConstGroupPtr getGroup(BranchID const &oid, bool resolveProd, bool fillOnDemand) const
ProcessHistoryID processHistoryID_
void getAllProvenance(std::vector< Provenance const * > &provenances) const
boost::shared_ptr< ProductRegistry const > preg_
std::type_info const & dynamicTypeInfo() const
ProcessHistory const * processHistoryPtr_
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
ProductData const * findGroupByTag(TypeID const &typeID, InputTag const &tag) const
void resolveProduct(Group const &g, bool fillOnDemand) const
Group const * ConstGroupPtr
virtual void resolveProduct_(Group const &, bool) const
void throwConvertTypeError(std::type_info const &expected, std::type_info const &actual)
boost::shared_ptr< Group > SharedGroupPtr
void getMany(TypeID const &tid, SelectorBase const &, BasicHandleVec &results) const
ProcessHistoryID const & processHistoryID() const
BranchType const & branchType() const
size_t findGroups(TypeID const &typeID, TypeLookup const &typeLookup, SelectorBase const &selector, BasicHandleVec &results) const
ProductData const * findGroupByLabel(TypeID const &typeID, TypeLookup const &typeLookup, std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, size_t &cachedOffset, int &fillCount) const
size_t getMatchingSequence(TypeID const &typeID, SelectorBase const &selector, BasicHandle &result) const
boost::shared_ptr< void const > wrapper_
bool operator()(boost::shared_ptr< Group > const &iObj)
OutputHandle getForOutput(BranchID const &bid, bool getProd) const
ProcessConfiguration const & processConfiguration() const
std::set< void const * > productPtrs_
DelayedReader * reader() const
ConstGroupPtr getGroupByIndex(ProductTransientIndex const &oid, bool resolveProd, bool fillOnDemand) const
ProcessHistory::const_iterator ProcessNameConstIterator
const_iterator begin() const
virtual WrapperHolder getIt(ProductID const &) const
void getManyByType(TypeID const &tid, BasicHandleVec &results) const
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
Principal(boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, BranchType bt, HistoryAppender *historyAppender)
std::vector< boost::shared_ptr< Group > > GroupCollection
void fillPrincipal(ProcessHistoryID const &hist, DelayedReader *reader)
TransientProductLookupMap TypeLookup
void adjustIndexesAfterProductRegistryAddition()
static ProcessHistory emptyProcessHistory_
EDProductGetter const * prodGetter() const
Provenance getProvenance(BranchID const &bid) const
void recombine(Principal &other, std::vector< BranchID > const &bids)
void checkUniquenessAndType(WrapperOwningHolder const &prod, Group const *group) const
ProcessConfiguration const * processConfiguration_
std::vector< BasicHandle > BasicHandleVec
void addOnDemandGroup(boost::shared_ptr< ConstBranchDescription > bd)
void putOrMerge(WrapperOwningHolder const &prod, Group const *group) const
void deleteProduct(BranchID const &id)