CMS 3D CMS Logo

ProductResolvers.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_ProductResolvers_h
2 #define FWCore_Framework_ProductResolvers_h
3 
4 /*----------------------------------------------------------------------
5 
6 ProductResolver: A collection of information related to a single WrapperBase or
7 a set of related EDProducts. This is the storage unit of such information.
8 
9 ----------------------------------------------------------------------*/
20 
21 #include <memory>
22 #include <atomic>
23 
24 #include <string>
25 
26 namespace edm {
27  class MergeableRunProductMetadata;
28  class ProductProvenanceRetriever;
29  class DelayedReader;
30  class ModuleCallingContext;
32  class Principal;
34  class Worker;
35  class ServiceToken;
36 
38  public:
40 
41  // Give AliasProductResolver and SwitchBaseProductResolver access by moving this method to public
42  void resetProductData_(bool deleteEarly) override = 0;
43  virtual ProductData const& getProductData() const = 0;
44  };
45 
47  public:
49 
50  DataManagingProductResolver(std::shared_ptr<BranchDescription const> bd, ProductStatus iDefaultStatus)
53  theStatus_(iDefaultStatus),
54  defaultStatus_(iDefaultStatus) {}
55 
56  void connectTo(ProductResolverBase const&, Principal const*) final;
57 
59 
60  void resetProductData_(bool deleteEarly) override;
61 
62  protected:
63  void setProduct(std::unique_ptr<WrapperBase> edp) const;
64  ProductStatus status() const { return theStatus_; }
67  //Handle the boilerplate code needed for resolveProduct_
68  template <bool callResolver, typename FUNC>
69  Resolution resolveProductImpl(FUNC resolver) const;
70  ProductData const& getProductData() const final { return productData_; }
72 
73  private:
74  void throwProductDeletedException() const;
75  void checkType(WrapperBase const& prod) const;
76  virtual bool isFromCurrentProcess() const = 0;
77  // merges the product with the pre-existing product
78  void mergeProduct(std::unique_ptr<WrapperBase> edp, MergeableRunProductMetadata const*) const;
79 
80  void putOrMergeProduct_(std::unique_ptr<WrapperBase> prod,
81  MergeableRunProductMetadata const* mergeableRunProductMetadata) const final;
82  bool productUnavailable_() const final;
83  bool productResolved_() const final;
84  bool productWasDeleted_() const final;
85  bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final;
86 
88  void resetBranchDescription_(std::shared_ptr<BranchDescription const> bd) final {
90  }
91  Provenance const* provenance_() const final { return &productData_.provenance(); }
92 
93  std::string const& resolvedModuleLabel_() const final { return moduleLabel(); }
94  void setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) final;
95  void setProductID_(ProductID const& pid) final;
97  bool singleProduct_() const final;
98 
100  mutable std::atomic<ProductStatus> theStatus_;
102  };
103 
105  public:
106  explicit InputProductResolver(std::shared_ptr<BranchDescription const> bd)
107  : DataManagingProductResolver(bd, ProductStatus::ResolveNotRun), m_prefetchRequested{false}, aux_{nullptr} {}
108 
109  void setupUnscheduled(UnscheduledConfigurator const&) final;
110 
111  private:
112  bool isFromCurrentProcess() const final;
113 
114  Resolution resolveProduct_(Principal const& principal,
115  bool skipCurrentProcess,
117  ModuleCallingContext const* mcc) const override;
118  void prefetchAsync_(WaitingTask* waitTask,
119  Principal const& principal,
120  bool skipCurrentProcess,
123  ModuleCallingContext const* mcc) const override;
124  void putProduct_(std::unique_ptr<WrapperBase> edp) const override;
125 
126  void retrieveAndMerge_(Principal const& principal,
127  MergeableRunProductMetadata const* mergeableRunProductMetadata) const override;
128 
129  void setMergeableRunProductMetadata_(MergeableRunProductMetadata const*) override;
130 
131  bool unscheduledWasNotRun_() const final { return false; }
132 
133  void resetProductData_(bool deleteEarly) override;
134 
135  mutable std::atomic<bool> m_prefetchRequested;
137  UnscheduledAuxiliary const* aux_; //provides access to the delayedGet signals
138  };
139 
141  public:
142  ProducedProductResolver(std::shared_ptr<BranchDescription const> bd, ProductStatus iDefaultStatus)
143  : DataManagingProductResolver(bd, iDefaultStatus) {
144  assert(bd->produced());
145  }
146 
147  protected:
148  void putProduct_(std::unique_ptr<WrapperBase> edp) const override;
149 
150  private:
151  bool isFromCurrentProcess() const final;
152  };
153 
155  public:
156  explicit PuttableProductResolver(std::shared_ptr<BranchDescription const> bd)
157  : ProducedProductResolver(bd, ProductStatus::NotPut), worker_(nullptr), prefetchRequested_(false) {}
158 
159  void setupUnscheduled(UnscheduledConfigurator const&) final;
160 
161  private:
162  Resolution resolveProduct_(Principal const& principal,
163  bool skipCurrentProcess,
165  ModuleCallingContext const* mcc) const override;
166  void prefetchAsync_(WaitingTask* waitTask,
167  Principal const& principal,
168  bool skipCurrentProcess,
169  ServiceToken const& token,
171  ModuleCallingContext const* mcc) const override;
172  bool unscheduledWasNotRun_() const override { return false; }
173 
174  void putProduct_(std::unique_ptr<WrapperBase> edp) const override;
175  void resetProductData_(bool deleteEarly) override;
176 
179  mutable std::atomic<bool> prefetchRequested_;
180  };
181 
183  public:
184  explicit UnscheduledProductResolver(std::shared_ptr<BranchDescription const> bd)
185  : ProducedProductResolver(bd, ProductStatus::ResolveNotRun), aux_(nullptr), prefetchRequested_(false) {}
186 
187  void setupUnscheduled(UnscheduledConfigurator const&) final;
188 
189  private:
190  Resolution resolveProduct_(Principal const& principal,
191  bool skipCurrentProcess,
193  ModuleCallingContext const* mcc) const override;
194  void prefetchAsync_(WaitingTask* waitTask,
195  Principal const& principal,
196  bool skipCurrentProcess,
197  ServiceToken const& token,
199  ModuleCallingContext const* mcc) const override;
200  bool unscheduledWasNotRun_() const override { return status() == ProductStatus::ResolveNotRun; }
201 
202  void resetProductData_(bool deleteEarly) override;
203 
207  mutable std::atomic<bool> prefetchRequested_;
208  };
209 
211  public:
213  explicit AliasProductResolver(std::shared_ptr<BranchDescription const> bd,
215  : DataManagingOrAliasProductResolver(), realProduct_(realProduct), bd_(bd) {}
216 
217  void connectTo(ProductResolverBase const& iOther, Principal const* iParentPrincipal) final {
218  realProduct_.connectTo(iOther, iParentPrincipal);
219  };
220 
221  private:
223  bool skipCurrentProcess,
225  ModuleCallingContext const* mcc) const override {
226  return realProduct_.resolveProduct(principal, skipCurrentProcess, sra, mcc);
227  }
228  void prefetchAsync_(WaitingTask* waitTask,
229  Principal const& principal,
230  bool skipCurrentProcess,
231  ServiceToken const& token,
233  ModuleCallingContext const* mcc) const override {
234  realProduct_.prefetchAsync(waitTask, principal, skipCurrentProcess, token, sra, mcc);
235  }
236  bool unscheduledWasNotRun_() const override { return realProduct_.unscheduledWasNotRun(); }
237  bool productUnavailable_() const override { return realProduct_.productUnavailable(); }
238  bool productResolved_() const final { return realProduct_.productResolved(); }
239  bool productWasDeleted_() const override { return realProduct_.productWasDeleted(); }
240  bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final {
241  return realProduct_.productWasFetchedAndIsValid(iSkipCurrentProcess);
242  }
243 
244  void putProduct_(std::unique_ptr<WrapperBase> edp) const override;
245  void putOrMergeProduct_(std::unique_ptr<WrapperBase> prod,
246  MergeableRunProductMetadata const* mergeableRunProductMetadata) const final;
247  BranchDescription const& branchDescription_() const override { return *bd_; }
248  void resetBranchDescription_(std::shared_ptr<BranchDescription const> bd) override { bd_ = bd; }
249  Provenance const* provenance_() const final { return realProduct_.provenance(); }
250 
251  std::string const& resolvedModuleLabel_() const override { return realProduct_.moduleLabel(); }
252  void setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) override;
253  void setProductID_(ProductID const& pid) override;
254  ProductProvenance const* productProvenancePtr_() const override;
255  void resetProductData_(bool deleteEarly) override;
256  ProductData const& getProductData() const final { return realProduct_.getProductData(); }
257  bool singleProduct_() const override;
258 
260  std::shared_ptr<BranchDescription const> bd_;
261  };
262 
263  // Switch is a mixture of DataManaging (for worker and provenance) and Alias (for product)
265  public:
267  SwitchBaseProductResolver(std::shared_ptr<BranchDescription const> bd,
269 
270  void connectTo(ProductResolverBase const& iOther, Principal const* iParentPrincipal) final;
271  void setupUnscheduled(UnscheduledConfigurator const& iConfigure) final;
272 
273  protected:
275  WaitingTaskList& waitingTasks() const { return waitingTasks_; }
276  Worker* worker() const { return worker_; }
277  DataManagingOrAliasProductResolver const& realProduct() const { return realProduct_; }
278  std::atomic<bool>& prefetchRequested() const { return prefetchRequested_; }
279  void unsafe_setWrapperAndProvenance() const;
280  void resetProductData_(bool deleteEarly) override;
281 
282  private:
283  bool productResolved_() const final;
284  bool productWasDeleted_() const final { return realProduct_.productWasDeleted(); }
285  bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final {
286  return realProduct_.productWasFetchedAndIsValid(iSkipCurrentProcess);
287  }
288  void putOrMergeProduct_(std::unique_ptr<WrapperBase> edp,
289  MergeableRunProductMetadata const* mergeableRunProductMetadata) const final;
292  ;
293  }
294  void resetBranchDescription_(std::shared_ptr<BranchDescription const> bd) final {
296  }
297  Provenance const* provenance_() const final { return &productData_.provenance(); }
298  std::string const& resolvedModuleLabel_() const final { return moduleLabel(); }
299  void setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) final;
300  void setProductID_(ProductID const& pid) final;
302  ProductData const& getProductData() const final { return productData_; }
303  bool singleProduct_() const final { return true; }
304 
305  // for "alias" view
307  // for "product" view
309  Worker* worker_ = nullptr;
311  mutable std::atomic<bool> prefetchRequested_;
312  // for provenance
314  };
315 
316  // For the case when SwitchProducer is on a Path
318  public:
319  SwitchProducerProductResolver(std::shared_ptr<BranchDescription const> bd,
321 
322  private:
323  Resolution resolveProduct_(Principal const& principal,
324  bool skipCurrentProcess,
326  ModuleCallingContext const* mcc) const final;
327  void prefetchAsync_(WaitingTask* waitTask,
328  Principal const& principal,
329  bool skipCurrentProcess,
330  ServiceToken const& token,
332  ModuleCallingContext const* mcc) const final;
333  void putProduct_(std::unique_ptr<WrapperBase> edp) const final;
334  bool unscheduledWasNotRun_() const final { return false; }
335  bool productUnavailable_() const final;
336  void resetProductData_(bool deleteEarly) final;
337 
338  constexpr static const ProductStatus defaultStatus_ = ProductStatus::NotPut;
339 
340  // for filter in a Path
341  // The variable is only modified or read at times where the
342  // framework has guaranteed synchronization between write and read
344  };
345 
346  // For the case when SwitchProducer is not on any Path
348  public:
349  SwitchAliasProductResolver(std::shared_ptr<BranchDescription const> bd,
351  : SwitchBaseProductResolver(std::move(bd), realProduct) {}
352 
353  private:
354  Resolution resolveProduct_(Principal const& principal,
355  bool skipCurrentProcess,
357  ModuleCallingContext const* mcc) const final;
358  void prefetchAsync_(WaitingTask* waitTask,
359  Principal const& principal,
360  bool skipCurrentProcess,
361  ServiceToken const& token,
363  ModuleCallingContext const* mcc) const final;
364  void putProduct_(std::unique_ptr<WrapperBase> edp) const final;
365  bool unscheduledWasNotRun_() const final { return realProduct().unscheduledWasNotRun(); }
366  bool productUnavailable_() const final { return realProduct().productUnavailable(); }
367  };
368 
370  public:
372  explicit ParentProcessProductResolver(std::shared_ptr<BranchDescription const> bd)
373  : ProductResolverBase(), realProduct_(nullptr), bd_(bd), provRetriever_(nullptr), parentPrincipal_(nullptr) {}
374 
375  void connectTo(ProductResolverBase const& iOther, Principal const* iParentPrincipal) final {
376  realProduct_ = &iOther;
377  parentPrincipal_ = iParentPrincipal;
378  };
379 
380  private:
382  bool skipCurrentProcess,
384  ModuleCallingContext const* mcc) const override {
385  skipCurrentProcess = false;
386  return realProduct_->resolveProduct(*parentPrincipal_, skipCurrentProcess, sra, mcc);
387  }
388  void prefetchAsync_(WaitingTask* waitTask,
389  Principal const& principal,
390  bool skipCurrentProcess,
391  ServiceToken const& token,
393  ModuleCallingContext const* mcc) const override {
394  skipCurrentProcess = false;
395  realProduct_->prefetchAsync(waitTask, *parentPrincipal_, skipCurrentProcess, token, sra, mcc);
396  }
397  bool unscheduledWasNotRun_() const override {
398  if (realProduct_)
399  return realProduct_->unscheduledWasNotRun();
400  throwNullRealProduct();
401  return false;
402  }
403  bool productUnavailable_() const override { return realProduct_->productUnavailable(); }
404  bool productResolved_() const final { return realProduct_->productResolved(); }
405  bool productWasDeleted_() const override { return realProduct_->productWasDeleted(); }
406  bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const override {
407  iSkipCurrentProcess = false;
408  return realProduct_->productWasFetchedAndIsValid(iSkipCurrentProcess);
409  }
410 
411  void putProduct_(std::unique_ptr<WrapperBase> edp) const override;
412  void putOrMergeProduct_(std::unique_ptr<WrapperBase> prod,
413  MergeableRunProductMetadata const* mergeableRunProductMetadata) const final;
414  BranchDescription const& branchDescription_() const override { return *bd_; }
415  void resetBranchDescription_(std::shared_ptr<BranchDescription const> bd) override { bd_ = bd; }
416  Provenance const* provenance_() const final { return realProduct_->provenance(); }
417  std::string const& resolvedModuleLabel_() const override { return realProduct_->moduleLabel(); }
418  void setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) override;
419  void setProductID_(ProductID const& pid) override;
420  ProductProvenance const* productProvenancePtr_() const override;
421  void resetProductData_(bool deleteEarly) override;
422  bool singleProduct_() const override;
423  void throwNullRealProduct() const;
424 
426  std::shared_ptr<BranchDescription const> bd_;
429  };
430 
432  public:
434  NoProcessProductResolver(std::vector<ProductResolverIndex> const& matchingHolders,
435  std::vector<bool> const& ambiguous,
436  bool madeAtEnd);
437 
438  void connectTo(ProductResolverBase const& iOther, Principal const*) final;
439 
440  void tryPrefetchResolverAsync(unsigned int iProcessingIndex,
441  Principal const& principal,
442  bool skipCurrentProcess,
444  ModuleCallingContext const* mcc,
445  ServiceToken token) const;
446 
447  bool dataValidFromResolver(unsigned int iProcessingIndex,
448  Principal const& principal,
449  bool iSkipCurrentProcess) const;
450 
451  void prefetchFailed(unsigned int iProcessingIndex,
452  Principal const& principal,
453  bool iSkipCurrentProcess,
454  std::exception_ptr iExceptPtr) const;
455 
456  private:
457  unsigned int unsetIndexValue() const;
458  Resolution resolveProduct_(Principal const& principal,
459  bool skipCurrentProcess,
461  ModuleCallingContext const* mcc) const override;
462  void prefetchAsync_(WaitingTask* waitTask,
463  Principal const& principal,
464  bool skipCurrentProcess,
465  ServiceToken const& token,
467  ModuleCallingContext const* mcc) const override;
468  bool unscheduledWasNotRun_() const override;
469  bool productUnavailable_() const override;
470  bool productWasDeleted_() const override;
471  bool productResolved_() const final;
472  bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const override;
473 
474  void putProduct_(std::unique_ptr<WrapperBase> edp) const override;
476  MergeableRunProductMetadata const* mergeableRunProductMetadata) const final;
478  void resetBranchDescription_(std::shared_ptr<BranchDescription const> bd) override;
479  Provenance const* provenance_() const override;
480 
481  std::string const& resolvedModuleLabel_() const override { return moduleLabel(); }
482  void setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) override;
483  void setProductID_(ProductID const& pid) override;
484  ProductProvenance const* productProvenancePtr_() const override;
485  void resetProductData_(bool deleteEarly) override;
486  bool singleProduct_() const override;
487 
488  Resolution tryResolver(unsigned int index,
489  Principal const& principal,
490  bool skipCurrentProcess,
492  ModuleCallingContext const* mcc) const;
493 
494  void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const;
495 
496  std::vector<ProductResolverIndex> matchingHolders_;
497  std::vector<bool> ambiguous_;
500  mutable std::atomic<unsigned int> lastCheckIndex_;
501  mutable std::atomic<unsigned int> lastSkipCurrentCheckIndex_;
502  mutable std::atomic<bool> prefetchRequested_;
503  mutable std::atomic<bool> skippingPrefetchRequested_;
504  const bool madeAtEnd_;
505  };
506 
508  public:
511  : ProductResolverBase(), realResolverIndex_(iChoice) {}
512 
513  void connectTo(ProductResolverBase const& iOther, Principal const*) final;
514 
515  private:
516  Resolution resolveProduct_(Principal const& principal,
517  bool skipCurrentProcess,
519  ModuleCallingContext const* mcc) const override;
520  void prefetchAsync_(WaitingTask* waitTask,
521  Principal const& principal,
522  bool skipCurrentProcess,
523  ServiceToken const& token,
525  ModuleCallingContext const* mcc) const override;
526  bool unscheduledWasNotRun_() const override;
527  bool productUnavailable_() const override;
528  bool productWasDeleted_() const override;
529  bool productResolved_() const final;
530  bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const override;
531 
532  void putProduct_(std::unique_ptr<WrapperBase> edp) const override;
534  MergeableRunProductMetadata const* mergeableRunProductMetadata) const final;
536  void resetBranchDescription_(std::shared_ptr<BranchDescription const> bd) override;
537  Provenance const* provenance_() const override;
538 
539  std::string const& resolvedModuleLabel_() const override { return moduleLabel(); }
540  void setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) override;
541  void setProductID_(ProductID const& pid) override;
542  ProductProvenance const* productProvenancePtr_() const override;
543  void resetProductData_(bool deleteEarly) override;
544  bool singleProduct_() const override;
545 
547  };
548 
549 } // namespace edm
550 
551 #endif
edm::SwitchAliasProductResolver::SwitchAliasProductResolver
SwitchAliasProductResolver(std::shared_ptr< BranchDescription const > bd, DataManagingOrAliasProductResolver &realProduct)
Definition: ProductResolvers.h:349
edm::ProductResolverBase::provenance
Provenance const * provenance() const
Definition: ProductResolverBase.cc:31
edm::SharedResourcesAcquirer
Definition: SharedResourcesAcquirer.h:34
edm::DataManagingOrAliasProductResolver::DataManagingOrAliasProductResolver
DataManagingOrAliasProductResolver()
Definition: ProductResolvers.h:39
edm::DataManagingProductResolver::resolvedModuleLabel_
std::string const & resolvedModuleLabel_() const final
Definition: ProductResolvers.h:93
edm::DataManagingProductResolver::productWasFetchedAndIsValid_
bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final
Definition: ProductResolvers.cc:546
edm::ParentProcessProductResolver::ParentProcessProductResolver
ParentProcessProductResolver(std::shared_ptr< BranchDescription const > bd)
Definition: ProductResolvers.h:372
edm::ProducedProductResolver::ProducedProductResolver
ProducedProductResolver(std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus)
Definition: ProductResolvers.h:142
edm::AliasProductResolver::resetBranchDescription_
void resetBranchDescription_(std::shared_ptr< BranchDescription const > bd) override
Definition: ProductResolvers.h:248
ProductResolverBase.h
edm::ProductResolverIndex
unsigned int ProductResolverIndex
Definition: ProductResolverIndex.h:8
funct::false
false
Definition: Factorize.h:29
edm::DataManagingProductResolver::DataManagingProductResolver
DataManagingProductResolver(std::shared_ptr< BranchDescription const > bd, ProductStatus iDefaultStatus)
Definition: ProductResolvers.h:50
edm::AliasProductResolver::connectTo
void connectTo(ProductResolverBase const &iOther, Principal const *iParentPrincipal) final
Definition: ProductResolvers.h:217
edm::NoProcessProductResolver::matchingHolders_
std::vector< ProductResolverIndex > matchingHolders_
Definition: ProductResolvers.h:496
edm::ParentProcessProductResolver::bd_
std::shared_ptr< BranchDescription const > bd_
Definition: ProductResolvers.h:426
edm::SwitchBaseProductResolver::singleProduct_
bool singleProduct_() const final
Definition: ProductResolvers.h:303
bd
deep_tau::DeepTauBase::BasicDiscriminator bd
Definition: DeepTauId.cc:1047
edm::ParentProcessProductResolver::productResolved_
bool productResolved_() const final
Definition: ProductResolvers.h:404
edm::NoProcessProductResolver::ambiguous_
std::vector< bool > ambiguous_
Definition: ProductResolvers.h:497
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::DataManagingOrAliasProductResolver
Definition: ProductResolvers.h:37
edm::SingleChoiceNoProcessProductResolver::ProductStatus
ProducedProductResolver::ProductStatus ProductStatus
Definition: ProductResolvers.h:509
deep_tau::DeepTauBase::BasicDiscriminator
BasicDiscriminator
Definition: DeepTauBase.h:115
edm::Provenance::productProvenance
ProductProvenance const * productProvenance() const
Definition: Provenance.cc:24
edm::NoProcessProductResolver::lastSkipCurrentCheckIndex_
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
Definition: ProductResolvers.h:501
edm::SwitchBaseProductResolver::waitingTasks_
WaitingTaskList waitingTasks_
Definition: ProductResolvers.h:310
ProductResolverIndex.h
BranchID.h
edm::PuttableProductResolver::PuttableProductResolver
PuttableProductResolver(std::shared_ptr< BranchDescription const > bd)
Definition: ProductResolvers.h:156
edm::DataManagingProductResolver::theStatus_
std::atomic< ProductStatus > theStatus_
Definition: ProductResolvers.h:100
edm::SwitchBaseProductResolver::worker
Worker * worker() const
Definition: ProductResolvers.h:276
cms::cuda::assert
assert(be >=bs)
edm::ProductResolverBase::putProduct_
virtual void putProduct_(std::unique_ptr< WrapperBase > edp) const =0
TypeID.h
edm::Principal
Definition: Principal.h:57
edm::AliasProductResolver::prefetchAsync_
void prefetchAsync_(WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const override
Definition: ProductResolvers.h:228
edm::SwitchAliasProductResolver::unscheduledWasNotRun_
bool unscheduledWasNotRun_() const final
Definition: ProductResolvers.h:365
edm::DataManagingProductResolver::setMergeableRunProductMetadataInProductData
void setMergeableRunProductMetadataInProductData(MergeableRunProductMetadata const *)
Definition: ProductResolvers.cc:564
edm::DataManagingProductResolver::ProductStatus::ProductDeleted
edm::ParentProcessProductResolver::provRetriever_
ProductProvenanceRetriever const * provRetriever_
Definition: ProductResolvers.h:427
edm::ParentProcessProductResolver::prefetchAsync_
void prefetchAsync_(WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const override
Definition: ProductResolvers.h:388
edm::ParentProcessProductResolver::realProduct_
ProductResolverBase const * realProduct_
Definition: ProductResolvers.h:425
edm::NoProcessProductResolver::lastCheckIndex_
std::atomic< unsigned int > lastCheckIndex_
Definition: ProductResolvers.h:500
edm::ParentProcessProductResolver
Definition: ProductResolvers.h:369
watchdog.const
const
Definition: watchdog.py:83
edm::DataManagingProductResolver::defaultStatus_
const ProductStatus defaultStatus_
Definition: ProductResolvers.h:101
edm::DataManagingProductResolver::defaultStatus
ProductStatus defaultStatus() const
Definition: ProductResolvers.h:65
edm::SwitchBaseProductResolver::productWasFetchedAndIsValid_
bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final
Definition: ProductResolvers.h:285
edm::SwitchBaseProductResolver::waitingTasks
WaitingTaskList & waitingTasks() const
Definition: ProductResolvers.h:275
edm::SingleChoiceNoProcessProductResolver
Definition: ProductResolvers.h:507
edm::ProductData::provenance
Provenance const & provenance() const
Definition: ProductData.h:33
edm::AliasProductResolver::productWasFetchedAndIsValid_
bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final
Definition: ProductResolvers.h:240
edm::DataManagingProductResolver::ProductStatus::NotPut
edm::ProductResolverBase::productUnavailable
bool productUnavailable() const
Definition: ProductResolverBase.h:87
edm::DataManagingProductResolver::productData_
ProductData productData_
Definition: ProductResolvers.h:99
edm::AliasProductResolver::bd_
std::shared_ptr< BranchDescription const > bd_
Definition: ProductResolvers.h:260
edm::WaitingTaskList
Definition: WaitingTaskList.h:101
edm::NoProcessProductResolver::skippingPrefetchRequested_
std::atomic< bool > skippingPrefetchRequested_
Definition: ProductResolvers.h:503
edm::ServiceToken
Definition: ServiceToken.h:40
edm::ParentProcessProductResolver::productWasFetchedAndIsValid_
bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const override
Definition: ProductResolvers.h:406
edm::AliasProductResolver::productResolved_
bool productResolved_() const final
Definition: ProductResolvers.h:238
edm::AliasProductResolver::provenance_
Provenance const * provenance_() const final
Definition: ProductResolvers.h:249
edm::ProductData::resetBranchDescription
void resetBranchDescription(std::shared_ptr< BranchDescription const > bd)
Definition: ProductData.cc:20
edm::DataManagingProductResolver::setProduct
void setProduct(std::unique_ptr< WrapperBase > edp) const
Definition: ProductResolvers.cc:518
edm::ProductProvenance
Definition: ProductProvenance.h:24
edm::ParentProcessProductResolver::parentPrincipal_
Principal const * parentPrincipal_
Definition: ProductResolvers.h:428
edm::SwitchAliasProductResolver::productUnavailable_
bool productUnavailable_() const final
Definition: ProductResolvers.h:366
edm::AliasProductResolver::ProductStatus
ProducedProductResolver::ProductStatus ProductStatus
Definition: ProductResolvers.h:212
WaitingTask
edm::ProductResolverBase::unscheduledWasNotRun
bool unscheduledWasNotRun() const
Definition: ProductResolverBase.h:97
edm::DataManagingProductResolver::mergeProduct
void mergeProduct(std::unique_ptr< WrapperBase > edp, MergeableRunProductMetadata const *) const
Definition: ProductResolvers.cc:80
edm::ProductResolverBase::unscheduledWasNotRun_
virtual bool unscheduledWasNotRun_() const =0
edm::DataManagingProductResolver::resolveProductImpl
Resolution resolveProductImpl(FUNC resolver) const
Provenance.h
dumpMFGeometry_cfg.prod
prod
Definition: dumpMFGeometry_cfg.py:24
edm::DataManagingProductResolver::productUnavailable_
bool productUnavailable_() const final
Definition: ProductResolvers.cc:530
edm::MergeableRunProductMetadata
Definition: MergeableRunProductMetadata.h:52
edm::SwitchBaseProductResolver::realProduct
DataManagingOrAliasProductResolver const & realProduct() const
Definition: ProductResolvers.h:277
edm::Hash< ParentageType >
edm::UnscheduledProductResolver::waitingTasks_
WaitingTaskList waitingTasks_
Definition: ProductResolvers.h:204
edm::ParentProcessProductResolver::ProductStatus
ProducedProductResolver::ProductStatus ProductStatus
Definition: ProductResolvers.h:371
CMS_THREAD_SAFE
#define CMS_THREAD_SAFE
Definition: thread_safety_macros.h:4
edm::UnscheduledProductResolver::aux_
UnscheduledAuxiliary const * aux_
Definition: ProductResolvers.h:205
edm::InputProductResolver::m_prefetchRequested
std::atomic< bool > m_prefetchRequested
Definition: ProductResolvers.h:135
edm::Worker
Definition: Worker.h:88
edm::DataManagingProductResolver::throwProductDeletedException
void throwProductDeletedException() const
Definition: ProductResolvers.cc:34
edm::SingleChoiceNoProcessProductResolver::realResolverIndex_
ProductResolverIndex realResolverIndex_
Definition: ProductResolvers.h:546
edm::ProducedProductResolver
Definition: ProductResolvers.h:140
edm::DataManagingOrAliasProductResolver::getProductData
virtual ProductData const & getProductData() const =0
edm::AliasProductResolver::resolveProduct_
Resolution resolveProduct_(Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const override
Definition: ProductResolvers.h:222
edm::DataManagingProductResolver::setProductProvenanceRetriever_
void setProductProvenanceRetriever_(ProductProvenanceRetriever const *provRetriever) final
Definition: ProductResolvers.cc:558
WrapperBase.h
edm::AliasProductResolver::unscheduledWasNotRun_
bool unscheduledWasNotRun_() const override
Definition: ProductResolvers.h:236
SharedResourcesAcquirer
edm::SwitchBaseProductResolver::realProduct_
DataManagingOrAliasProductResolver & realProduct_
Definition: ProductResolvers.h:306
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::PuttableProductResolver::unscheduledWasNotRun_
bool unscheduledWasNotRun_() const override
Definition: ProductResolvers.h:172
edm::AliasProductResolver::branchDescription_
BranchDescription const & branchDescription_() const override
Definition: ProductResolvers.h:247
edm::ProductResolverBase::setMergeableRunProductMetadata_
virtual void setMergeableRunProductMetadata_(MergeableRunProductMetadata const *)
Definition: ProductResolverBase.cc:35
edm::DataManagingProductResolver::provenance_
Provenance const * provenance_() const final
Definition: ProductResolvers.h:91
Resolution
Definition: trackSplitPlot.h:33
BranchDescription.h
edm::InputProductResolver::aux_
UnscheduledAuxiliary const * aux_
Definition: ProductResolvers.h:137
edm::SwitchBaseProductResolver::prefetchRequested_
std::atomic< bool > prefetchRequested_
Definition: ProductResolvers.h:311
edm::SwitchAliasProductResolver
Definition: ProductResolvers.h:347
edm::DataManagingProductResolver::ProductStatus
ProductStatus
Definition: ProductResolvers.h:48
edm::SwitchBaseProductResolver::productData_
ProductData productData_
Definition: ProductResolvers.h:308
edm::UnscheduledProductResolver
Definition: ProductResolvers.h:182
edm::DataManagingProductResolver
Definition: ProductResolvers.h:46
UnscheduledAuxiliary
edm::UnscheduledProductResolver::unscheduledWasNotRun_
bool unscheduledWasNotRun_() const override
Definition: ProductResolvers.h:200
thread_safety_macros.h
edm::ParentProcessProductResolver::connectTo
void connectTo(ProductResolverBase const &iOther, Principal const *iParentPrincipal) final
Definition: ProductResolvers.h:375
edm::DataManagingProductResolver::ProductStatus::ProductSet
edm::PuttableProductResolver::prefetchRequested_
std::atomic< bool > prefetchRequested_
Definition: ProductResolvers.h:179
edm::SwitchProducerProductResolver
Definition: ProductResolvers.h:317
edm::SwitchProducerProductResolver::unscheduledWasNotRun_
bool unscheduledWasNotRun_() const final
Definition: ProductResolvers.h:334
edm::SingleChoiceNoProcessProductResolver::SingleChoiceNoProcessProductResolver
SingleChoiceNoProcessProductResolver(ProductResolverIndex iChoice)
Definition: ProductResolvers.h:510
edm::DataManagingProductResolver::setProductID_
void setProductID_(ProductID const &pid) final
Definition: ProductResolvers.cc:562
edm::DataManagingOrAliasProductResolver::resetProductData_
void resetProductData_(bool deleteEarly) override=0
edm::NoProcessProductResolver::ProductStatus
ProducedProductResolver::ProductStatus ProductStatus
Definition: ProductResolvers.h:433
edm::ParentProcessProductResolver::resetBranchDescription_
void resetBranchDescription_(std::shared_ptr< BranchDescription const > bd) override
Definition: ProductResolvers.h:415
edm::DataManagingProductResolver::ProductStatus::ResolveNotRun
ProductData.h
edm::WrapperBase
Definition: WrapperBase.h:23
edm::ParentProcessProductResolver::resolveProduct_
Resolution resolveProduct_(Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const override
Definition: ProductResolvers.h:381
edm::AliasProductResolver::productWasDeleted_
bool productWasDeleted_() const override
Definition: ProductResolvers.h:239
edm::PuttableProductResolver::m_waitingTasks
WaitingTaskList m_waitingTasks
Definition: ProductResolvers.h:177
edm::UnscheduledConfigurator
Definition: UnscheduledConfigurator.h:32
edm::NoProcessProductResolver::madeAtEnd_
const bool madeAtEnd_
Definition: ProductResolvers.h:504
edm::UnscheduledAuxiliary
Definition: UnscheduledAuxiliary.h:33
ServiceToken
edm::DataManagingProductResolver::putOrMergeProduct_
void putOrMergeProduct_(std::unique_ptr< WrapperBase > prod, MergeableRunProductMetadata const *mergeableRunProductMetadata) const final
Definition: ProductResolvers.cc:493
edm::ParentProcessProductResolver::productUnavailable_
bool productUnavailable_() const override
Definition: ProductResolvers.h:403
edm::NoProcessProductResolver::waitingTasks_
WaitingTaskList waitingTasks_
Definition: ProductResolvers.h:498
edm::SwitchBaseProductResolver::resolvedModuleLabel_
std::string const & resolvedModuleLabel_() const final
Definition: ProductResolvers.h:298
edm::ProductResolverBase::moduleLabel
std::string const & moduleLabel() const
Definition: ProductResolverBase.h:119
edm::DataManagingProductResolver::resetProductData_
void resetProductData_(bool deleteEarly) override
Definition: ProductResolvers.cc:573
edm::ProductResolverBase::retrieveAndMerge_
virtual void retrieveAndMerge_(Principal const &principal, MergeableRunProductMetadata const *mergeableRunProductMetadata) const
Definition: ProductResolverBase.cc:33
edm::DataManagingProductResolver::singleProduct_
bool singleProduct_() const final
Definition: ProductResolvers.cc:584
edm::ProductResolverBase::prefetchAsync_
virtual void prefetchAsync_(WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const =0
cms::cuda::device::unique_ptr
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
Definition: device_unique_ptr.h:33
edm::PuttableProductResolver
Definition: ProductResolvers.h:154
edm::AliasProductResolver::productUnavailable_
bool productUnavailable_() const override
Definition: ProductResolvers.h:237
edm::AliasProductResolver
Definition: ProductResolvers.h:210
edm::DataManagingProductResolver::branchDescription_
BranchDescription const & branchDescription_() const final
Definition: ProductResolvers.h:87
edm::ProductProvenanceRetriever
Definition: ProductProvenanceRetriever.h:56
edm::DataManagingProductResolver::checkType
void checkType(WrapperBase const &prod) const
Definition: ProductResolvers.cc:506
edm::WaitingTask
Definition: WaitingTask.h:36
edm::DataManagingProductResolver::status
ProductStatus status() const
Definition: ProductResolvers.h:64
edm::AliasProductResolver::resolvedModuleLabel_
std::string const & resolvedModuleLabel_() const override
Definition: ProductResolvers.h:251
edm::ProductResolverBase::resolveProduct_
virtual Resolution resolveProduct_(Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const =0
edm::DataManagingProductResolver::getProductData
ProductData const & getProductData() const final
Definition: ProductResolvers.h:70
edm::AliasProductResolver::AliasProductResolver
AliasProductResolver(std::shared_ptr< BranchDescription const > bd, DataManagingOrAliasProductResolver &realProduct)
Definition: ProductResolvers.h:213
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
edm::NoProcessProductResolver::skippingWaitingTasks_
WaitingTaskList skippingWaitingTasks_
Definition: ProductResolvers.h:499
edm::SwitchBaseProductResolver::resetBranchDescription_
void resetBranchDescription_(std::shared_ptr< BranchDescription const > bd) final
Definition: ProductResolvers.h:294
edm::ParentProcessProductResolver::resolvedModuleLabel_
std::string const & resolvedModuleLabel_() const override
Definition: ProductResolvers.h:417
edm::SwitchBaseProductResolver::getProductData
ProductData const & getProductData() const final
Definition: ProductResolvers.h:302
edm::UnscheduledProductResolver::worker_
Worker * worker_
Definition: ProductResolvers.h:206
edm::ParentProcessProductResolver::provenance_
Provenance const * provenance_() const final
Definition: ProductResolvers.h:416
edm::ProductResolverBase
Definition: ProductResolverBase.h:34
edm::ParentProcessProductResolver::branchDescription_
BranchDescription const & branchDescription_() const override
Definition: ProductResolvers.h:414
edm::ProductData::branchDescription
std::shared_ptr< BranchDescription const > const & branchDescription() const
Definition: ProductData.h:29
edm::SwitchBaseProductResolver::branchDescription_
BranchDescription const & branchDescription_() const final
Definition: ProductResolvers.h:290
edm::SwitchBaseProductResolver::parentageID_
ParentageID parentageID_
Definition: ProductResolvers.h:313
edm::ProductData
Definition: ProductData.h:20
UnscheduledConfigurator
edm::DataManagingProductResolver::setFailedStatus
void setFailedStatus() const
Definition: ProductResolvers.h:66
edm::PuttableProductResolver::worker_
Worker * worker_
Definition: ProductResolvers.h:178
edm::NoProcessProductResolver
Definition: ProductResolvers.h:431
edm::AliasProductResolver::getProductData
ProductData const & getProductData() const final
Definition: ProductResolvers.h:256
edm::ProductResolverBase::setupUnscheduled
virtual void setupUnscheduled(UnscheduledConfigurator const &)
Definition: ProductResolverBase.cc:43
edm::ParentProcessProductResolver::productWasDeleted_
bool productWasDeleted_() const override
Definition: ProductResolvers.h:405
edm::NoProcessProductResolver::prefetchRequested_
std::atomic< bool > prefetchRequested_
Definition: ProductResolvers.h:502
edm::DataManagingProductResolver::resetBranchDescription_
void resetBranchDescription_(std::shared_ptr< BranchDescription const > bd) final
Definition: ProductResolvers.h:88
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::DataManagingProductResolver::resetStatus
void resetStatus()
Definition: ProductResolvers.h:58
edm::SwitchBaseProductResolver::prefetchRequested
std::atomic< bool > & prefetchRequested() const
Definition: ProductResolvers.h:278
edm::BranchDescription
Definition: BranchDescription.h:32
edm::AliasProductResolver::realProduct_
DataManagingOrAliasProductResolver & realProduct_
Definition: ProductResolvers.h:259
edm::DataManagingProductResolver::connectTo
void connectTo(ProductResolverBase const &, Principal const *) final
Definition: ProductResolvers.cc:491
edm::UnscheduledProductResolver::UnscheduledProductResolver
UnscheduledProductResolver(std::shared_ptr< BranchDescription const > bd)
Definition: ProductResolvers.h:184
WaitingTaskList.h
edm::DataManagingProductResolver::productResolved_
bool productResolved_() const final
Definition: ProductResolvers.cc:538
edm::DataManagingProductResolver::productProvenancePtr_
ProductProvenance const * productProvenancePtr_() const final
Definition: ProductResolvers.cc:569
edm::SwitchBaseProductResolver::provenance_
Provenance const * provenance_() const final
Definition: ProductResolvers.h:297
edm::ProductResolverBase::Resolution
Definition: ProductResolverBase.h:36
edm::Provenance
Definition: Provenance.h:34
edm::InputProductResolver::m_waitingTasks
WaitingTaskList m_waitingTasks
Definition: ProductResolvers.h:136
edm::ParentProcessProductResolver::unscheduledWasNotRun_
bool unscheduledWasNotRun_() const override
Definition: ProductResolvers.h:397
edm::SwitchBaseProductResolver::productProvenancePtr_
ProductProvenance const * productProvenancePtr_() const final
Definition: ProductResolvers.h:301
edm::InputProductResolver::InputProductResolver
InputProductResolver(std::shared_ptr< BranchDescription const > bd)
Definition: ProductResolvers.h:106
edm::DataManagingProductResolver::productWasDeleted_
bool productWasDeleted_() const final
Definition: ProductResolvers.cc:544
edm::SwitchBaseProductResolver
Definition: ProductResolvers.h:264
edm::DataManagingProductResolver::isFromCurrentProcess
virtual bool isFromCurrentProcess() const =0
edm::ProductID
Definition: ProductID.h:27
edm::DataManagingProductResolver::ProductStatus::ResolveFailed
edm::UnscheduledProductResolver::prefetchRequested_
std::atomic< bool > prefetchRequested_
Definition: ProductResolvers.h:207
edm::InputProductResolver
Definition: ProductResolvers.h:104
edm::ModuleCallingContext
Definition: ModuleCallingContext.h:29
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:318