20 boost::shared_ptr<ProductRegistry const> reg,
24 luminosityBlockPrincipal_(),
25 unscheduledHandler_(),
26 moduleLabelsRunning_(),
29 branchListIndexToProcessIndex_() {}
45 boost::shared_ptr<LuminosityBlockPrincipal> lbp,
46 boost::shared_ptr<EventSelectionIDVector> eventSelectionIDs,
47 boost::shared_ptr<BranchListIndexes> branchListIndexes,
48 boost::shared_ptr<BranchMapper> mapper,
49 boost::shared_ptr<DelayedReader> rtrv) {
51 aux_.reset(aux.release());
70 for(BranchListIndexes::const_iterator
96 std::auto_ptr<EDProduct> edp,
97 std::auto_ptr<ProductProvenance> productProvenance) {
102 <<
"put: Cannot put because auto_ptr to product is null."
116 std::auto_ptr<EDProduct> edp,
117 std::auto_ptr<ProductProvenance> productProvenance) {
155 <<
"get by product ID: invalid ProductID supplied\n";
164 <<
"branchIDToProductID: invalid BranchID supplied\n";
167 typedef BIDToIndexMap::const_iterator Iter;
168 typedef std::pair<Iter, Iter> IndexRange;
171 IndexRange range = branchIDToIndexMap.equal_range(bid);
172 for(Iter it = range.first; it != range.second; ++it) {
178 return ProductID(processIndex+1, productIndex+1);
192 <<
"get by product ID: no product with given id: " << pid <<
"\n";
201 <<
"get by product ID: no product with given id: " << pid <<
"\n"
202 <<
"onDemand production failed to produce it.\n";
224 boost::shared_ptr<UnscheduledHandler>
247 std::vector<std::string>::const_iterator
i =
252 <<
"Hit circular dependency while trying to run an unscheduled module.\n"
253 <<
"Current implementation of unscheduled execution cannot always determine\n"
254 <<
"the proper order for module execution. It is also possible the modules\n"
255 <<
"have a built in circular dependence that will not work with any order.\n"
256 <<
"In the first case, scheduling some or all required modules in paths will help.\n"
257 <<
"In the second case, the modules themselves will have to be fixed.\n";
272 if(!bid.
isValid())
return oldProductID;
RunPrincipal const & runPrincipal() const
ProductRegistry const & productRegistry() const
unsigned short BranchListIndex
boost::shared_ptr< DelayedReader > store() const
EventSelectionIDVector const & eventSelectionIDs() const
boost::shared_ptr< LuminosityBlockPrincipal > luminosityBlockPrincipal_
void putOnRead(ConstBranchDescription const &bd, std::auto_ptr< EDProduct > edp, std::auto_ptr< ProductProvenance > productProvenance)
const_iterator end() const
Group * getExistingGroup(BranchID const &branchID)
BasicHandle getByProductID(ProductID const &oid) const
BranchID pidToBid(ProductID const &pid) const
bool const & produced() const
std::map< BranchListIndex, ProcessIndex > branchListIndexToProcessIndex_
EDProduct const * wrapper() const
BranchListIndexes const & branchListIndexes() const
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
ProductID branchIDToProductID(BranchID const &bid) const
static void fixBranchListIndexes(BranchListIndexes &indexes)
Base::SharedConstGroupPtr SharedConstGroupPtr
RunPrincipal const & runPrincipal() const
std::vector< EventSelectionID > EventSelectionIDVector
std::vector< BranchListIndex > BranchListIndexes
virtual void resolveProduct_(Group const &g, bool fillOnDemand) const
BranchID productIDToBranchID(ProductID const &pid, BranchIDLists const &lists, BranchListIndexes const &indexes)
boost::shared_ptr< UnscheduledHandler > unscheduledHandler() const
EventPrincipal(boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc)
boost::scoped_ptr< EventAuxiliary > aux_
ProcessHistoryID const & processHistoryID() const
void putProduct(std::auto_ptr< EDProduct > edp, boost::shared_ptr< ProductProvenance > productProvenance)
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
void setProcessHistory(Principal const &principal)
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
BranchID const & branchID() const
T const * getProduct(RefCore const &ref)
boost::shared_ptr< UnscheduledHandler > unscheduledHandler_
std::multimap< BranchID, IndexPair > BranchIDToIndexMap
boost::shared_ptr< EventSelectionIDVector > eventSelectionIDs_
void put(ConstBranchDescription const &bd, std::auto_ptr< EDProduct > edp, std::auto_ptr< ProductProvenance > productProvenance)
unsigned short ProcessIndex
void fillEventPrincipal(std::auto_ptr< EventAuxiliary > aux, boost::shared_ptr< LuminosityBlockPrincipal > lbp, boost::shared_ptr< EventSelectionIDVector > eventSelectionIDs=boost::shared_ptr< EventSelectionIDVector >(new EventSelectionIDVector), boost::shared_ptr< BranchListIndexes > branchListIndexes=boost::shared_ptr< BranchListIndexes >(new BranchListIndexes), boost::shared_ptr< BranchMapper > mapper=boost::shared_ptr< BranchMapper >(new BranchMapper), boost::shared_ptr< DelayedReader > rtrv=boost::shared_ptr< DelayedReader >(new NoDelayedReader))
Provenance getProvenance(ProductID const &pid) const
ForwardSequence::const_iterator find_in_all(ForwardSequence const &s, Datum const &d)
wrappers for std::find
void clearEventPrincipal()
boost::shared_ptr< BranchListIndexes > branchListIndexes_
const_iterator begin() const
SharedConstGroupPtr const getGroup(BranchID const &oid, bool resolveProd, bool fillOnDemand) const
virtual bool unscheduledFill(std::string const &moduleLabel) const
boost::shared_ptr< EDProduct > product() const
boost::filter_iterator< FilledGroupPtr, GroupCollection::const_iterator > const_iterator
virtual EDProduct const * getIt(ProductID const &pid) const
static ThreadSafeIndexedRegistry * instance()
boost::shared_ptr< BranchMapper > branchMapperPtr() const
unsigned short ProductIndex
void setUnscheduledHandler(boost::shared_ptr< UnscheduledHandler > iHandler)
bool productUnavailable() const
ConstBranchDescription const & branchDescription() const
virtual ProductID oldToNewProductID_(ProductID const &oldProductID) const
std::vector< std::string > moduleLabelsRunning_
std::string const & moduleLabel() const
const std::string * moduleLabel() const