CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ProductHolder.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_ProductHolder_h
2 #define FWCore_Framework_ProductHolder_h
3 
4 /*----------------------------------------------------------------------
5 
6 ProductHolder: A collection of information related to a single EDProduct or
7 a set of related EDProducts. This is the storage unit of such information.
8 
9 ----------------------------------------------------------------------*/
10 
19 
20 #include "boost/shared_ptr.hpp"
21 
22 #include <string>
23 
24 namespace edm {
25  class ProductProvenanceRetriever;
26  class DelayedReader;
27  class ModuleCallingContext;
28  class Principal;
29  class WrapperInterfaceBase;
30 
32  public:
33 
35 
37  virtual ~ProductHolderBase();
38 
39  ProductHolderBase(ProductHolderBase const&) = delete; // Disallow copying and moving
40  ProductHolderBase& operator=(ProductHolderBase const&) = delete; // Disallow copying and moving
41 
42  ProductData const& productData() const {
43  return getProductData();
44  }
45 
47  return getProductData();
48  }
49 
50  ProductData const* resolveProduct(ResolveStatus& resolveStatus, bool skipCurrentProcess,
51  ModuleCallingContext const* mcc) const {
52  return resolveProduct_(resolveStatus, skipCurrentProcess, mcc);
53  }
54 
55  void resetStatus () {
56  resetStatus_();
57  }
58 
61  }
62 
64 
65  void deleteProduct() {
68  }
69 
70  // product is not available (dropped or never created)
71  bool productUnavailable() const {return productUnavailable_();}
72 
73  // provenance is currently available
74  bool provenanceAvailable() const;
75 
76  // Scheduled for on demand production
77  bool onDemand() const {return onDemand_();}
78 
79  // Product was deleted early in order to save memory
80  bool productWasDeleted() const {return productWasDeleted_();}
81 
82  // Retrieves a shared pointer to the wrapped product.
83  boost::shared_ptr<void const> product() const { return getProductData().wrapper_; }
84 
85  // Retrieves the wrapped product and type. (non-owning);
86  WrapperHolder wrapper() const { return WrapperHolder(getProductData().wrapper_.get(), getProductData().getInterface()); }
87 
88  // Retrieves pointer to the per event(lumi)(run) provenance.
90 
91  // Sets the the per event(lumi)(run) provenance.
92  void setProductProvenance(ProductProvenance const& prov) const;
93 
94  // Retrieves a reference to the event independent provenance.
96 
97  // Retrieves a reference to the event independent provenance.
98  bool singleProduct() const {return singleProduct_();}
99 
101 
102  // Sets the pointer to the event independent provenance.
103  void resetBranchDescription(boost::shared_ptr<BranchDescription const> bd) {resetBranchDescription_(bd);}
104 
105  // Retrieves a reference to the module label.
107 
108  // Same as moduleLabel except in the case of an AliasProductHolder, in which
109  // case it resolves the module which actually produces the product and returns
110  // its module label
112 
113  // Retrieves a reference to the product instance name
115 
116  // Retrieves a reference to the process name
118 
119  // Retrieves pointer to a class containing both the event independent and the per even provenance.
120  Provenance* provenance() const;
121 
122  // Initializes the event independent portion of the provenance, plus the process history ID, the product ID, and the provRetriever.
123  void setProvenance(boost::shared_ptr<ProductProvenanceRetriever> provRetriever, ProcessHistory const& ph, ProductID const& pid) { setProvenance_(provRetriever, ph, pid); }
124 
125  // Initializes the process history.
127 
128  // Write the product to the stream.
129  void write(std::ostream& os) const;
130 
131  // Return the type of the product stored in this ProductHolder.
132  // We are relying on the fact that Type instances are small, and
133  // so we are free to copy them at will.
134  TypeID productType() const;
135 
136  // Retrieves the product ID of the product.
137  ProductID const& productID() const {return getProductData().prov_.productID();}
138 
139  // Puts the product and its per event(lumi)(run) provenance into the ProductHolder.
140  void putProduct(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance) {
141  putProduct_(edp, productProvenance);
142  }
143 
144  // Puts the product into the ProductHolder.
145  void putProduct(WrapperOwningHolder const& edp) const {
146  putProduct_(edp);
147  }
148 
149  // This returns true if it will be put, false if it will be merged
150  bool putOrMergeProduct() const {
151  return putOrMergeProduct_();
152  }
153 
154  // merges the product with the pre-existing product
155  void mergeProduct(WrapperOwningHolder const& edp, ProductProvenance& productProvenance) {
156  mergeProduct_(edp, productProvenance);
157  }
158 
159  void mergeProduct(WrapperOwningHolder const& edp) const {
160  mergeProduct_(edp);
161  }
162 
163  // Merges two instances of the product.
164  void mergeTheProduct(WrapperOwningHolder const& edp) const;
165 
166  void reallyCheckType(WrapperOwningHolder const& prod) const;
167 
168  void checkType(WrapperOwningHolder const& prod) const {
169  checkType_(prod);
170  }
171 
172  void swap(ProductHolderBase& rhs) {swap_(rhs);}
173 
174  void throwProductDeletedException() const;
175 
176  private:
177  virtual ProductData const& getProductData() const = 0;
178  virtual ProductData& getProductData() = 0;
179  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess,
180  ModuleCallingContext const* mcc) const = 0;
181  virtual void swap_(ProductHolderBase& rhs) = 0;
182  virtual bool onDemand_() const = 0;
183  virtual bool productUnavailable_() const = 0;
184  virtual bool productWasDeleted_() const = 0;
185  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance) = 0;
186  virtual void putProduct_(WrapperOwningHolder const& edp) const = 0;
187  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance) = 0;
188  virtual void mergeProduct_(WrapperOwningHolder const& edp) const = 0;
189  virtual bool putOrMergeProduct_() const = 0;
190  virtual void checkType_(WrapperOwningHolder const& prod) const = 0;
191  virtual void resetStatus_() = 0;
192  virtual void setProductDeleted_() = 0;
193  virtual BranchDescription const& branchDescription_() const = 0;
194  virtual void resetBranchDescription_(boost::shared_ptr<BranchDescription const> bd) = 0;
195  virtual std::string const& resolvedModuleLabel_() const = 0;
196  virtual void setProvenance_(boost::shared_ptr<ProductProvenanceRetriever> provRetriever, ProcessHistory const& ph, ProductID const& pid) = 0;
197  virtual void setProcessHistory_(ProcessHistory const& ph) = 0;
198  virtual ProductProvenance* productProvenancePtr_() const = 0;
199  virtual void resetProductData_() = 0;
200  virtual bool singleProduct_() const = 0;
201  virtual void setPrincipal_(Principal* principal) = 0;
202  };
203 
204  inline
205  std::ostream&
206  operator<<(std::ostream& os, ProductHolderBase const& phb) {
207  phb.write(os);
208  return os;
209  }
210 
212  public:
213  explicit InputProductHolder(boost::shared_ptr<BranchDescription const> bd, Principal* principal) :
215  productHasBeenDeleted_(false), principal_(principal) {}
216  virtual ~InputProductHolder();
217 
218  // The following is const because we can add an EDProduct to the
219  // cache after creation of the ProductHolder, without changing the meaning
220  // of the ProductHolder.
221  void setProduct(WrapperOwningHolder const& prod) const;
224 
225  private:
226  virtual void swap_(ProductHolderBase& rhs) {
227  InputProductHolder& other = dynamic_cast<InputProductHolder&>(rhs);
230  }
231  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess,
232  ModuleCallingContext const* mcc) const;
233  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance);
234  virtual void putProduct_(WrapperOwningHolder const& edp) const;
235  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance);
236  virtual void mergeProduct_(WrapperOwningHolder const& edp) const;
237  virtual bool putOrMergeProduct_() const;
238  virtual void checkType_(WrapperOwningHolder const&) const {}
239  virtual void resetStatus_() {productIsUnavailable_ = false;
240  productHasBeenDeleted_=false;}
241  virtual bool onDemand_() const {return false;}
242  virtual bool productUnavailable_() const;
243  virtual bool productWasDeleted_() const {return productHasBeenDeleted_;}
244  virtual ProductData const& getProductData() const {return productData_;}
248  virtual void resetBranchDescription_(boost::shared_ptr<BranchDescription const> bd) {productData().resetBranchDescription(bd);}
249  virtual std::string const& resolvedModuleLabel_() const {return moduleLabel();}
250  virtual void setProvenance_(boost::shared_ptr<ProductProvenanceRetriever> provRetriever, ProcessHistory const& ph, ProductID const& pid);
251  virtual void setProcessHistory_(ProcessHistory const& ph);
252  virtual ProductProvenance* productProvenancePtr_() const;
253  virtual void resetProductData_();
254  virtual bool singleProduct_() const;
255  virtual void setPrincipal_(Principal* principal);
256 
258  mutable bool productIsUnavailable_;
261  };
262 
263  // Free swap function
265  a.swap(b);
266  }
267 
269  public:
271  Present = 0,
272  NotRun = 3,
274  NotPut = 5,
278  };
280  virtual ~ProducedProductHolder();
281  void producerStarted();
282  void producerCompleted();
283  ProductStatus& status() const {return status_();}
284  private:
285  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance);
286  virtual void putProduct_(WrapperOwningHolder const& edp) const;
287  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance);
288  virtual void mergeProduct_(WrapperOwningHolder const& edp) const;
289  virtual bool putOrMergeProduct_() const;
290  virtual void checkType_(WrapperOwningHolder const& prod) const {
291  reallyCheckType(prod);
292  }
293  virtual ProductStatus& status_() const = 0;
294  virtual bool productUnavailable_() const;
295  virtual bool productWasDeleted_() const;
296  virtual void setProductDeleted_();
298  virtual void resetBranchDescription_(boost::shared_ptr<BranchDescription const> bd) {productData().resetBranchDescription(bd);}
299  virtual std::string const& resolvedModuleLabel_() const {return moduleLabel();}
300  virtual void setProvenance_(boost::shared_ptr<ProductProvenanceRetriever> provRetriever, ProcessHistory const& ph, ProductID const& pid);
301  virtual void setProcessHistory_(ProcessHistory const& ph);
302  virtual ProductProvenance* productProvenancePtr_() const;
303  virtual void resetProductData_();
304  virtual bool singleProduct_() const;
305  virtual void setPrincipal_(Principal* principal);
306  };
307 
309  public:
310  explicit ScheduledProductHolder(boost::shared_ptr<BranchDescription const> bd) : ProducedProductHolder(), productData_(bd), theStatus_(NotRun) {}
311  virtual ~ScheduledProductHolder();
312  private:
313  virtual void swap_(ProductHolderBase& rhs) {
314  ScheduledProductHolder& other = dynamic_cast<ScheduledProductHolder&>(rhs);
317  }
318  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess,
319  ModuleCallingContext const* mcc) const;
320  virtual void resetStatus_() {theStatus_ = NotRun;}
321  virtual bool onDemand_() const {return false;}
322  virtual ProductData const& getProductData() const {return productData_;}
324  virtual ProductStatus& status_() const {return theStatus_;}
325 
328  };
329 
330  // Free swap function
332  a.swap(b);
333  }
334 
336  public:
337  explicit UnscheduledProductHolder(boost::shared_ptr<BranchDescription const> bd, Principal* principal) :
339  virtual ~UnscheduledProductHolder();
340  private:
341  virtual void swap_(ProductHolderBase& rhs) {
342  UnscheduledProductHolder& other = dynamic_cast<UnscheduledProductHolder&>(rhs);
345  }
346  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess,
347  ModuleCallingContext const* mcc) const;
349  virtual bool onDemand_() const {return status() == UnscheduledNotRun;}
350  virtual ProductData const& getProductData() const {return productData_;}
352  virtual ProductStatus& status_() const {return theStatus_;}
353 
357  };
358 
359  // Free swap function
361  a.swap(b);
362  }
363 
365  public:
366  explicit SourceProductHolder(boost::shared_ptr<BranchDescription const> bd) : ProducedProductHolder(), productData_(bd), theStatus_(NotPut) {}
367  virtual ~SourceProductHolder();
368  private:
369  virtual void swap_(ProductHolderBase& rhs) {
370  SourceProductHolder& other = dynamic_cast<SourceProductHolder&>(rhs);
373  }
374  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess,
375  ModuleCallingContext const* mcc) const;
376  virtual void resetStatus_() {theStatus_ = NotPut;}
377  virtual bool onDemand_() const {return false;}
378  virtual ProductData const& getProductData() const {return productData_;}
380  virtual ProductStatus& status_() const {return theStatus_;}
381 
384  };
385 
387  public:
389  explicit AliasProductHolder(boost::shared_ptr<BranchDescription const> bd, ProducedProductHolder& realProduct) : ProductHolderBase(), realProduct_(realProduct), bd_(bd) {}
390  virtual ~AliasProductHolder();
391  private:
392  virtual void swap_(ProductHolderBase& rhs) {
393  AliasProductHolder& other = dynamic_cast<AliasProductHolder&>(rhs);
395  std::swap(bd_, other.bd_);
396  }
397  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess,
398  ModuleCallingContext const* mcc) const {return realProduct_.resolveProduct(resolveStatus, skipCurrentProcess, mcc);}
399  virtual bool onDemand_() const {return realProduct_.onDemand();}
400  virtual ProductStatus& status_() const {return realProduct_.status();}
402  virtual bool productUnavailable_() const {return realProduct_.productUnavailable();}
403  virtual bool productWasDeleted_() const {return realProduct_.productWasDeleted();}
404  virtual void checkType_(WrapperOwningHolder const& prod) const {realProduct_.checkType(prod);}
405  virtual ProductData const& getProductData() const {return realProduct_.productData();}
408  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance) {
409  realProduct_.putProduct(edp, productProvenance);
410  }
411  virtual void putProduct_(WrapperOwningHolder const& edp) const {
413  }
414  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance) {
415  realProduct_.mergeProduct(edp, productProvenance);
416  }
417  virtual void mergeProduct_(WrapperOwningHolder const& edp) const {
419  }
420  virtual bool putOrMergeProduct_() const {
422  }
423  virtual BranchDescription const& branchDescription_() const {return *bd_;}
424  virtual void resetBranchDescription_(boost::shared_ptr<BranchDescription const> bd) {bd_ = bd;}
425  virtual std::string const& resolvedModuleLabel_() const {return realProduct_.moduleLabel();}
426  virtual void setProvenance_(boost::shared_ptr<ProductProvenanceRetriever> provRetriever, ProcessHistory const& ph, ProductID const& pid);
427  virtual void setProcessHistory_(ProcessHistory const& ph);
428  virtual ProductProvenance* productProvenancePtr_() const;
429  virtual void resetProductData_();
430  virtual bool singleProduct_() const;
431  virtual void setPrincipal_(Principal* principal);
432 
434  boost::shared_ptr<BranchDescription const> bd_;
435  };
436 
438  public:
440  NoProcessProductHolder(std::vector<ProductHolderIndex> const& matchingHolders,
441  std::vector<bool> const& ambiguous,
443  virtual ~NoProcessProductHolder();
444  private:
445  virtual ProductData const& getProductData() const;
446  virtual ProductData& getProductData();
447  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess,
448  ModuleCallingContext const* mcc) const;
449  virtual void swap_(ProductHolderBase& rhs);
450  virtual bool onDemand_() const;
451  virtual bool productUnavailable_() const;
452  virtual bool productWasDeleted_() const;
453  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance);
454  virtual void putProduct_(WrapperOwningHolder const& edp) const;
455  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance);
456  virtual void mergeProduct_(WrapperOwningHolder const& edp) const;
457  virtual bool putOrMergeProduct_() const;
458  virtual void checkType_(WrapperOwningHolder const& prod) const;
459  virtual void resetStatus_();
460  virtual void setProductDeleted_();
461  virtual BranchDescription const& branchDescription_() const;
462  virtual void resetBranchDescription_(boost::shared_ptr<BranchDescription const> bd);
463  virtual std::string const& resolvedModuleLabel_() const {return moduleLabel();}
464  virtual void setProvenance_(boost::shared_ptr<ProductProvenanceRetriever> provRetriever, ProcessHistory const& ph, ProductID const& pid);
465  virtual void setProcessHistory_(ProcessHistory const& ph);
466  virtual ProductProvenance* productProvenancePtr_() const;
467  virtual void resetProductData_();
468  virtual bool singleProduct_() const;
469  virtual void setPrincipal_(Principal* principal);
470 
471  std::vector<ProductHolderIndex> matchingHolders_;
472  std::vector<bool> ambiguous_;
474  };
475 
476  // Free swap function
478  a.swap(b);
479  }
480 }
481 
482 #endif
virtual bool productUnavailable_() const
virtual bool singleProduct_() const
virtual bool onDemand_() const
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)=0
virtual ProductStatus & status_() const =0
void setPrincipal(Principal *principal)
virtual void setProcessHistory_(ProcessHistory const &ph)
virtual ProductData & getProductData()
virtual bool onDemand_() const =0
virtual void setProvenance_(boost::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid)
virtual void swap_(ProductHolderBase &rhs)
virtual void setPrincipal_(Principal *principal)
virtual bool onDemand_() const
virtual void resetProductData_()
bool provenanceAvailable() const
virtual void swap_(ProductHolderBase &rhs)
WrapperInterfaceBase const * getInterface() const
Definition: ProductData.h:25
virtual void checkType_(WrapperOwningHolder const &prod) const
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
virtual bool singleProduct_() const
void mergeProduct(WrapperOwningHolder const &edp) const
void resetBranchDescription(boost::shared_ptr< BranchDescription const > bd)
AliasProductHolder(boost::shared_ptr< BranchDescription const > bd, ProducedProductHolder &realProduct)
virtual ProductProvenance * productProvenancePtr_() const
std::vector< ProductHolderIndex > matchingHolders_
virtual BranchDescription const & branchDescription_() const
void setProvenance(boost::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid)
ProducedProductHolder::ProductStatus ProductStatus
virtual void resetStatus_()
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)=0
virtual bool productUnavailable_() const
virtual BranchDescription const & branchDescription_() const
virtual ProductData const & getProductData() const
virtual void swap_(ProductHolderBase &rhs)
ProducedProductHolder::ProductStatus ProductStatus
ProductHolderBase & operator=(ProductHolderBase const &)=delete
virtual void setProcessHistory_(ProcessHistory const &ph)=0
virtual void resetBranchDescription_(boost::shared_ptr< BranchDescription const > bd)
ProductData const * resolveProduct(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
Definition: ProductHolder.h:50
NoProcessProductHolder(std::vector< ProductHolderIndex > const &matchingHolders, std::vector< bool > const &ambiguous, Principal *principal)
std::string const & processName() const
virtual ProductProvenance * productProvenancePtr_() const
virtual void setProductDeleted_()
virtual bool putOrMergeProduct_() const
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const =0
virtual bool productWasDeleted_() const
virtual BranchDescription const & branchDescription_() const =0
virtual bool productUnavailable_() const
virtual ProductData & getProductData()
void write(std::ostream &os) const
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:116
virtual void setPrincipal_(Principal *principal)
void checkType(WrapperOwningHolder const &prod) const
boost::shared_ptr< void const > product() const
Definition: ProductHolder.h:83
std::string const & moduleLabel() const
bool productIsUnavailable() const
virtual void setProductDeleted_()
virtual ProductStatus & status_() const
virtual void mergeProduct_(WrapperOwningHolder const &edp) const
virtual bool singleProduct_() const =0
virtual std::string const & resolvedModuleLabel_() const
virtual void setProcessHistory_(ProcessHistory const &ph)
virtual void swap_(ProductHolderBase &rhs)
Provenance * provenance() const
virtual void swap_(ProductHolderBase &rhs)
Provenance prov_
Definition: ProductData.h:51
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
ProductProvenance * productProvenancePtr() const
Definition: ProductHolder.h:89
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
bool singleProduct() const
Definition: ProductHolder.h:98
BranchDescription const & branchDescription() const
Definition: ProductHolder.h:95
virtual bool putOrMergeProduct_() const
virtual ProductData const & getProductData() const
virtual ProductData & getProductData()
virtual void setProvenance_(boost::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid)
virtual void setPrincipal_(Principal *principal)
std::string const & moduleLabel() const
virtual void checkType_(WrapperOwningHolder const &) const
virtual bool productUnavailable_() const =0
std::string const & productInstanceName() const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
virtual void swap_(ProductHolderBase &rhs)=0
virtual ProductProvenance * productProvenancePtr_() const =0
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
bool onDemand() const
Definition: ProductHolder.h:77
virtual void setProductDeleted_()
virtual void setProductDeleted_()
virtual bool singleProduct_() const
virtual bool onDemand_() const
boost::shared_ptr< void const > wrapper_
Definition: ProductData.h:50
ProductID const & productID() const
void mergeProduct(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
virtual void checkType_(WrapperOwningHolder const &prod) const
void swap(ProductHolderBase &rhs)
bool productWasDeleted() const
Definition: ProductHolder.h:80
ProductData const & productData() const
Definition: ProductHolder.h:42
virtual void resetBranchDescription_(boost::shared_ptr< BranchDescription const > bd)
virtual void setProvenance_(boost::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid)
virtual ProductData const & getProductData() const =0
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
virtual bool putOrMergeProduct_() const
void setProductUnavailable() const
virtual void resetStatus_()
virtual void resetBranchDescription_(boost::shared_ptr< BranchDescription const > bd)
virtual ProductStatus & status_() const
virtual bool singleProduct_() const
virtual void setProvenance_(boost::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid)
void resetProductData()
Definition: ProductData.h:40
virtual std::string const & resolvedModuleLabel_() const
virtual void resetStatus_()=0
virtual void setProcessHistory_(ProcessHistory const &ph)
virtual ProductData const & getProductData() const
void mergeTheProduct(WrapperOwningHolder const &edp) const
std::string const & resolvedModuleLabel() const
virtual ProductStatus & status_() const
virtual bool putOrMergeProduct_() const =0
void throwProductDeletedException() const
void setProductProvenance(ProductProvenance const &prov) const
virtual void resetProductData_()=0
virtual void resetProductData_()
std::string const & processName() const
virtual void resetStatus_()
UnscheduledProductHolder(boost::shared_ptr< BranchDescription const > bd, Principal *principal)
virtual std::string const & resolvedModuleLabel_() const
virtual ProductStatus & status_() const
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
bool putOrMergeProduct() const
void putProduct(WrapperOwningHolder const &edp) const
void reallyCheckType(WrapperOwningHolder const &prod) const
tuple pid
Definition: sysUtil.py:22
double b
Definition: hdecay.h:120
virtual void setProcessHistory_(ProcessHistory const &ph)
boost::shared_ptr< BranchDescription const > bd_
virtual bool putOrMergeProduct_() const
std::vector< bool > ambiguous_
virtual bool productWasDeleted_() const
virtual void swap_(ProductHolderBase &rhs)
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
virtual ProductData & getProductData()
virtual ProductData & getProductData()
virtual bool productWasDeleted_() const
ScheduledProductHolder(boost::shared_ptr< BranchDescription const > bd)
void setProduct(WrapperOwningHolder const &prod) const
void resetBranchDescription(boost::shared_ptr< BranchDescription const > bd)
Definition: ProductData.cc:26
virtual void resetBranchDescription_(boost::shared_ptr< BranchDescription const > bd)
virtual ProductData const & getProductData() const
virtual void putProduct_(WrapperOwningHolder const &edp) const
virtual bool onDemand_() const
virtual void resetProductData_()
double a
Definition: hdecay.h:121
virtual std::string const & resolvedModuleLabel_() const
virtual ProductData const & getProductData() const
virtual ProductData const & getProductData() const
boost::shared_ptr< BranchDescription const > const & branchDescription() const
Definition: ProductData.h:29
void putProduct(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
virtual BranchDescription const & branchDescription_() const
ProductData & productData()
Definition: ProductHolder.h:46
virtual void setPrincipal_(Principal *principal)
ProductStatus & status() const
virtual BranchDescription const & branchDescription_() const
virtual bool onDemand_() const
virtual bool productWasDeleted_() const =0
virtual void setProductDeleted_()=0
ProductID const & productID() const
Definition: Provenance.h:78
virtual void checkType_(WrapperOwningHolder const &prod) const
virtual ProductProvenance * productProvenancePtr_() const
volatile std::atomic< bool > shutdown_flag false
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
virtual void checkType_(WrapperOwningHolder const &prod) const =0
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess, ModuleCallingContext const *mcc) const
virtual void resetBranchDescription_(boost::shared_ptr< BranchDescription const > bd)=0
virtual bool onDemand_() const
std::ostream & operator<<(std::ostream &ost, const HLTGlobalStatus &hlt)
Formatted printout of trigger tbale.
void setProcessHistory(ProcessHistory const &ph)
TypeID productType() const
SourceProductHolder(boost::shared_ptr< BranchDescription const > bd)
virtual void setProvenance_(boost::shared_ptr< ProductProvenanceRetriever > provRetriever, ProcessHistory const &ph, ProductID const &pid)=0
virtual bool productUnavailable_() const
virtual ProductProvenance * productProvenancePtr_() const
std::string const & productInstanceName() const
InputProductHolder(boost::shared_ptr< BranchDescription const > bd, Principal *principal)
ProducedProductHolder & realProduct_
virtual void setPrincipal_(Principal *principal)=0
virtual std::string const & resolvedModuleLabel_() const =0
virtual bool productWasDeleted_() const
WrapperHolder wrapper() const
Definition: ProductHolder.h:86
virtual void resetProductData_()
bool productUnavailable() const
Definition: ProductHolder.h:71