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 BranchMapper;
26  class DelayedReader;
27  class Principal;
28  class WrapperInterfaceBase;
29 
31  public:
32 
34 
36  virtual ~ProductHolderBase();
37 
38  ProductHolderBase(ProductHolderBase const&) = delete; // Disallow copying and moving
39  ProductHolderBase& operator=(ProductHolderBase const&) = delete; // Disallow copying and moving
40 
41  ProductData const& productData() const {
42  return getProductData();
43  }
44 
46  return getProductData();
47  }
48 
49  ProductData const* resolveProduct(ResolveStatus& resolveStatus, bool skipCurrentProcess) const {
50  return resolveProduct_(resolveStatus, skipCurrentProcess);
51  }
52 
53  void resetStatus () {
54  resetStatus_();
55  }
56 
59  }
60 
62 
63  void deleteProduct() {
66  }
67 
68  // product is not available (dropped or never created)
69  bool productUnavailable() const {return productUnavailable_();}
70 
71  // provenance is currently available
72  bool provenanceAvailable() const;
73 
74  // Scheduled for on demand production
75  bool onDemand() const {return onDemand_();}
76 
77  // Product was deleted early in order to save memory
78  bool productWasDeleted() const {return productWasDeleted_();}
79 
80  // Retrieves a shared pointer to the wrapped product.
81  boost::shared_ptr<void const> product() const { return getProductData().wrapper_; }
82 
83  // Retrieves the wrapped product and type. (non-owning);
84  WrapperHolder wrapper() const { return WrapperHolder(getProductData().wrapper_.get(), getProductData().getInterface()); }
85 
86  // Retrieves pointer to the per event(lumi)(run) provenance.
88 
89  // Sets the the per event(lumi)(run) provenance.
90  void setProductProvenance(ProductProvenance const& prov) const;
91 
92  // Retrieves a reference to the event independent provenance.
94 
95  // Retrieves a reference to the event independent provenance.
96  bool singleProduct() const {return singleProduct_();}
97 
99 
100  // Sets the pointer to the event independent provenance.
101  void resetBranchDescription(boost::shared_ptr<ConstBranchDescription> bd) {resetBranchDescription_(bd);}
102 
103  // Retrieves a reference to the module label.
105 
106  // Same as moduleLabel except in the case of an AliasProductHolder, in which
107  // case it resolves the module which actually produces the product and returns
108  // its module label
110 
111  // Retrieves a reference to the product instance name
113 
114  // Retrieves a reference to the process name
116 
117  // Retrieves pointer to a class containing both the event independent and the per even provenance.
118  Provenance* provenance() const;
119 
120  // Initializes the event independent portion of the provenance, plus the process history ID, the product ID, and the mapper.
121  void setProvenance(boost::shared_ptr<BranchMapper> mapper, ProcessHistoryID const& phid, ProductID const& pid) { setProvenance_(mapper, phid, pid); }
122 
123  // Initializes the process history ID.
125 
126  // Write the product to the stream.
127  void write(std::ostream& os) const;
128 
129  // Return the type of the product stored in this ProductHolder.
130  // We are relying on the fact that Type instances are small, and
131  // so we are free to copy them at will.
132  TypeID productType() const;
133 
134  // Retrieves the product ID of the product.
135  ProductID const& productID() const {return getProductData().prov_.productID();}
136 
137  // Puts the product and its per event(lumi)(run) provenance into the ProductHolder.
138  void putProduct(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance) {
139  putProduct_(edp, productProvenance);
140  }
141 
142  // Puts the product into the ProductHolder.
143  void putProduct(WrapperOwningHolder const& edp) const {
144  putProduct_(edp);
145  }
146 
147  // This returns true if it will be put, false if it will be merged
148  bool putOrMergeProduct() const {
149  return putOrMergeProduct_();
150  }
151 
152  // merges the product with the pre-existing product
153  void mergeProduct(WrapperOwningHolder const& edp, ProductProvenance& productProvenance) {
154  mergeProduct_(edp, productProvenance);
155  }
156 
157  void mergeProduct(WrapperOwningHolder const& edp) const {
158  mergeProduct_(edp);
159  }
160 
161  // Merges two instances of the product.
162  void mergeTheProduct(WrapperOwningHolder const& edp) const;
163 
164  void reallyCheckType(WrapperOwningHolder const& prod) const;
165 
166  void checkType(WrapperOwningHolder const& prod) const {
167  checkType_(prod);
168  }
169 
170  void swap(ProductHolderBase& rhs) {swap_(rhs);}
171 
172  void throwProductDeletedException() const;
173 
174  private:
175  virtual ProductData const& getProductData() const = 0;
176  virtual ProductData& getProductData() = 0;
177  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess) const = 0;
178  virtual void swap_(ProductHolderBase& rhs) = 0;
179  virtual bool onDemand_() const = 0;
180  virtual bool productUnavailable_() const = 0;
181  virtual bool productWasDeleted_() const = 0;
182  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance) = 0;
183  virtual void putProduct_(WrapperOwningHolder const& edp) const = 0;
184  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance) = 0;
185  virtual void mergeProduct_(WrapperOwningHolder const& edp) const = 0;
186  virtual bool putOrMergeProduct_() const = 0;
187  virtual void checkType_(WrapperOwningHolder const& prod) const = 0;
188  virtual void resetStatus_() = 0;
189  virtual void setProductDeleted_() = 0;
190  virtual ConstBranchDescription const& branchDescription_() const = 0;
191  virtual void resetBranchDescription_(boost::shared_ptr<ConstBranchDescription> bd) = 0;
192  virtual std::string const& resolvedModuleLabel_() const = 0;
193  virtual void setProvenance_(boost::shared_ptr<BranchMapper> mapper, ProcessHistoryID const& phid, ProductID const& pid) = 0;
194  virtual void setProcessHistoryID_(ProcessHistoryID const& phid) = 0;
195  virtual ProductProvenance* productProvenancePtr_() const = 0;
196  virtual void resetProductData_() = 0;
197  virtual bool singleProduct_() const = 0;
198  virtual void setPrincipal_(Principal* principal) = 0;
199  };
200 
201  inline
202  std::ostream&
203  operator<<(std::ostream& os, ProductHolderBase const& phb) {
204  phb.write(os);
205  return os;
206  }
207 
209  public:
210  explicit InputProductHolder(boost::shared_ptr<ConstBranchDescription> bd, Principal* principal) :
212  productHasBeenDeleted_(false), principal_(principal) {}
213  virtual ~InputProductHolder();
214 
215  // The following is const because we can add an EDProduct to the
216  // cache after creation of the ProductHolder, without changing the meaning
217  // of the ProductHolder.
218  void setProduct(WrapperOwningHolder const& prod) const;
221 
222  private:
223  virtual void swap_(ProductHolderBase& rhs) {
224  InputProductHolder& other = dynamic_cast<InputProductHolder&>(rhs);
227  }
228  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess) const;
229  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance);
230  virtual void putProduct_(WrapperOwningHolder const& edp) const;
231  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance);
232  virtual void mergeProduct_(WrapperOwningHolder const& edp) const;
233  virtual bool putOrMergeProduct_() const;
234  virtual void checkType_(WrapperOwningHolder const&) const {}
235  virtual void resetStatus_() {productIsUnavailable_ = false;
236  productHasBeenDeleted_=false;}
237  virtual bool onDemand_() const {return false;}
238  virtual bool productUnavailable_() const;
239  virtual bool productWasDeleted_() const {return productHasBeenDeleted_;}
240  virtual ProductData const& getProductData() const {return productData_;}
244  virtual void resetBranchDescription_(boost::shared_ptr<ConstBranchDescription> bd) {productData().resetBranchDescription(bd);}
245  virtual std::string const& resolvedModuleLabel_() const {return moduleLabel();}
246  virtual void setProvenance_(boost::shared_ptr<BranchMapper> mapper, ProcessHistoryID const& phid, ProductID const& pid);
247  virtual void setProcessHistoryID_(ProcessHistoryID const& phid);
248  virtual ProductProvenance* productProvenancePtr_() const;
249  virtual void resetProductData_();
250  virtual bool singleProduct_() const;
251  virtual void setPrincipal_(Principal* principal);
252 
254  mutable bool productIsUnavailable_;
257  };
258 
259  // Free swap function
261  a.swap(b);
262  }
263 
265  public:
267  Present = 0,
268  NotRun = 3,
270  NotPut = 5,
274  };
276  virtual ~ProducedProductHolder();
277  void producerStarted();
278  void producerCompleted();
279  ProductStatus& status() const {return status_();}
280  private:
281  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance);
282  virtual void putProduct_(WrapperOwningHolder const& edp) const;
283  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance);
284  virtual void mergeProduct_(WrapperOwningHolder const& edp) const;
285  virtual bool putOrMergeProduct_() const;
286  virtual void checkType_(WrapperOwningHolder const& prod) const {
287  reallyCheckType(prod);
288  }
289  virtual ProductStatus& status_() const = 0;
290  virtual bool productUnavailable_() const;
291  virtual bool productWasDeleted_() const;
292  virtual void setProductDeleted_();
294  virtual void resetBranchDescription_(boost::shared_ptr<ConstBranchDescription> bd) {productData().resetBranchDescription(bd);}
295  virtual std::string const& resolvedModuleLabel_() const {return moduleLabel();}
296  virtual void setProvenance_(boost::shared_ptr<BranchMapper> mapper, ProcessHistoryID const& phid, ProductID const& pid);
297  virtual void setProcessHistoryID_(ProcessHistoryID const& phid);
298  virtual ProductProvenance* productProvenancePtr_() const;
299  virtual void resetProductData_();
300  virtual bool singleProduct_() const;
301  virtual void setPrincipal_(Principal* principal);
302  };
303 
305  public:
306  explicit ScheduledProductHolder(boost::shared_ptr<ConstBranchDescription> bd) : ProducedProductHolder(), productData_(bd), theStatus_(NotRun) {}
307  virtual ~ScheduledProductHolder();
308  private:
309  virtual void swap_(ProductHolderBase& rhs) {
310  ScheduledProductHolder& other = dynamic_cast<ScheduledProductHolder&>(rhs);
313  }
314  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess) const;
315  virtual void resetStatus_() {theStatus_ = NotRun;}
316  virtual bool onDemand_() const {return false;}
317  virtual ProductData const& getProductData() const {return productData_;}
319  virtual ProductStatus& status_() const {return theStatus_;}
320 
323  };
324 
325  // Free swap function
327  a.swap(b);
328  }
329 
331  public:
332  explicit UnscheduledProductHolder(boost::shared_ptr<ConstBranchDescription> bd, Principal* principal) :
334  virtual ~UnscheduledProductHolder();
335  private:
336  virtual void swap_(ProductHolderBase& rhs) {
337  UnscheduledProductHolder& other = dynamic_cast<UnscheduledProductHolder&>(rhs);
340  }
341  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess) const;
343  virtual bool onDemand_() const {return status() == UnscheduledNotRun;}
344  virtual ProductData const& getProductData() const {return productData_;}
346  virtual ProductStatus& status_() const {return theStatus_;}
347 
351  };
352 
353  // Free swap function
355  a.swap(b);
356  }
357 
359  public:
360  explicit SourceProductHolder(boost::shared_ptr<ConstBranchDescription> bd) : ProducedProductHolder(), productData_(bd), theStatus_(NotPut) {}
361  virtual ~SourceProductHolder();
362  private:
363  virtual void swap_(ProductHolderBase& rhs) {
364  SourceProductHolder& other = dynamic_cast<SourceProductHolder&>(rhs);
367  }
368  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess) const;
369  virtual void resetStatus_() {theStatus_ = NotPut;}
370  virtual bool onDemand_() const {return false;}
371  virtual ProductData const& getProductData() const {return productData_;}
373  virtual ProductStatus& status_() const {return theStatus_;}
374 
377  };
378 
380  public:
382  explicit AliasProductHolder(boost::shared_ptr<ConstBranchDescription> bd, ProducedProductHolder& realProduct) : ProductHolderBase(), realProduct_(realProduct), bd_(bd) {}
383  virtual ~AliasProductHolder();
384  private:
385  virtual void swap_(ProductHolderBase& rhs) {
386  AliasProductHolder& other = dynamic_cast<AliasProductHolder&>(rhs);
388  std::swap(bd_, other.bd_);
389  }
390  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess) const {return realProduct_.resolveProduct(resolveStatus, skipCurrentProcess);}
391  virtual bool onDemand_() const {return realProduct_.onDemand();}
392  virtual ProductStatus& status_() const {return realProduct_.status();}
394  virtual bool productUnavailable_() const {return realProduct_.productUnavailable();}
395  virtual bool productWasDeleted_() const {return realProduct_.productWasDeleted();}
396  virtual void checkType_(WrapperOwningHolder const& prod) const {realProduct_.checkType(prod);}
397  virtual ProductData const& getProductData() const {return realProduct_.productData();}
400  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance) {
401  realProduct_.putProduct(edp, productProvenance);
402  }
403  virtual void putProduct_(WrapperOwningHolder const& edp) const {
405  }
406  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance) {
407  realProduct_.mergeProduct(edp, productProvenance);
408  }
409  virtual void mergeProduct_(WrapperOwningHolder const& edp) const {
411  }
412  virtual bool putOrMergeProduct_() const {
414  }
415  virtual ConstBranchDescription const& branchDescription_() const {return *bd_;}
416  virtual void resetBranchDescription_(boost::shared_ptr<ConstBranchDescription> bd) {bd_ = bd;}
417  virtual std::string const& resolvedModuleLabel_() const {return realProduct_.moduleLabel();}
418  virtual void setProvenance_(boost::shared_ptr<BranchMapper> mapper, ProcessHistoryID const& phid, ProductID const& pid);
419  virtual void setProcessHistoryID_(ProcessHistoryID const& phid);
420  virtual ProductProvenance* productProvenancePtr_() const;
421  virtual void resetProductData_();
422  virtual bool singleProduct_() const;
423  virtual void setPrincipal_(Principal* principal);
424 
426  boost::shared_ptr<ConstBranchDescription> bd_;
427  };
428 
430  public:
432  NoProcessProductHolder(std::vector<ProductHolderIndex> const& matchingHolders,
433  std::vector<bool> const& ambiguous,
435  virtual ~NoProcessProductHolder();
436  private:
437  virtual ProductData const& getProductData() const;
438  virtual ProductData& getProductData();
439  virtual ProductData const* resolveProduct_(ResolveStatus& resolveStatus, bool skipCurrentProcess) const;
440  virtual void swap_(ProductHolderBase& rhs);
441  virtual bool onDemand_() const;
442  virtual bool productUnavailable_() const;
443  virtual bool productWasDeleted_() const;
444  virtual void putProduct_(WrapperOwningHolder const& edp, ProductProvenance const& productProvenance);
445  virtual void putProduct_(WrapperOwningHolder const& edp) const;
446  virtual void mergeProduct_(WrapperOwningHolder const& edp, ProductProvenance& productProvenance);
447  virtual void mergeProduct_(WrapperOwningHolder const& edp) const;
448  virtual bool putOrMergeProduct_() const;
449  virtual void checkType_(WrapperOwningHolder const& prod) const;
450  virtual void resetStatus_();
451  virtual void setProductDeleted_();
452  virtual ConstBranchDescription const& branchDescription_() const;
453  virtual void resetBranchDescription_(boost::shared_ptr<ConstBranchDescription> bd);
454  virtual std::string const& resolvedModuleLabel_() const {return moduleLabel();}
455  virtual void setProvenance_(boost::shared_ptr<BranchMapper> mapper, ProcessHistoryID const& phid, ProductID const& pid);
456  virtual void setProcessHistoryID_(ProcessHistoryID const& phid);
457  virtual ProductProvenance* productProvenancePtr_() const;
458  virtual void resetProductData_();
459  virtual bool singleProduct_() const;
460  virtual void setPrincipal_(Principal* principal);
461 
462  std::vector<ProductHolderIndex> matchingHolders_;
463  std::vector<bool> ambiguous_;
465  };
466 
467  // Free swap function
469  a.swap(b);
470  }
471 }
472 
473 #endif
std::string const & processName() const
virtual bool productUnavailable_() const
virtual bool singleProduct_() const
virtual bool onDemand_() const
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)=0
virtual void setProcessHistoryID_(ProcessHistoryID const &phid)
virtual ProductStatus & status_() const =0
void setPrincipal(Principal *principal)
Definition: ProductHolder.h:98
virtual ProductData & getProductData()
virtual void setProvenance_(boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid)
boost::shared_ptr< ConstBranchDescription > bd_
virtual bool onDemand_() const =0
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 setProcessHistoryID_(ProcessHistoryID const &phid)=0
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
virtual bool singleProduct_() const
virtual ConstBranchDescription const & branchDescription_() const
void mergeProduct(WrapperOwningHolder const &edp) const
virtual ProductProvenance * productProvenancePtr_() const
std::vector< ProductHolderIndex > matchingHolders_
ProducedProductHolder::ProductStatus ProductStatus
virtual void resetStatus_()
virtual void setProcessHistoryID_(ProcessHistoryID const &phid)
ConstBranchDescription const & branchDescription() const
Definition: ProductHolder.h:93
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)=0
virtual bool productUnavailable_() const
virtual ProductData const & getProductData() const
virtual void setProcessHistoryID_(ProcessHistoryID const &phid)
virtual void swap_(ProductHolderBase &rhs)
void setProcessHistoryID(ProcessHistoryID const &phid)
ProducedProductHolder::ProductStatus ProductStatus
ProductHolderBase & operator=(ProductHolderBase const &)=delete
AliasProductHolder(boost::shared_ptr< ConstBranchDescription > bd, ProducedProductHolder &realProduct)
NoProcessProductHolder(std::vector< ProductHolderIndex > const &matchingHolders, std::vector< bool > const &ambiguous, Principal *principal)
virtual void resetBranchDescription_(boost::shared_ptr< ConstBranchDescription > bd)=0
virtual ProductProvenance * productProvenancePtr_() const
virtual void setProductDeleted_()
virtual bool putOrMergeProduct_() const
virtual bool productWasDeleted_() const
virtual bool productUnavailable_() const
virtual ProductData & getProductData()
void write(std::ostream &os) const
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:117
virtual void setPrincipal_(Principal *principal)
void checkType(WrapperOwningHolder const &prod) const
boost::shared_ptr< void const > product() const
Definition: ProductHolder.h:81
std::string const & moduleLabel() const
virtual void resetBranchDescription_(boost::shared_ptr< ConstBranchDescription > bd)
bool productIsUnavailable() const
virtual void setProductDeleted_()
virtual ProductStatus & status_() const
virtual ConstBranchDescription const & branchDescription_() const
virtual void mergeProduct_(WrapperOwningHolder const &edp) const
virtual bool singleProduct_() const =0
virtual std::string const & resolvedModuleLabel_() const
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess) const
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) const
ProductProvenance * productProvenancePtr() const
Definition: ProductHolder.h:87
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
bool singleProduct() const
Definition: ProductHolder.h:96
virtual bool putOrMergeProduct_() const
virtual ProductData const & getProductData() const
virtual ProductData & getProductData()
virtual void setPrincipal_(Principal *principal)
virtual void checkType_(WrapperOwningHolder const &) const
virtual bool productUnavailable_() const =0
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
std::string const & productInstanceName() const
ProductData const * resolveProduct(ResolveStatus &resolveStatus, bool skipCurrentProcess) const
Definition: ProductHolder.h:49
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:75
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 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:78
UnscheduledProductHolder(boost::shared_ptr< ConstBranchDescription > bd, Principal *principal)
ProductData const & productData() const
Definition: ProductHolder.h:41
virtual void resetBranchDescription_(boost::shared_ptr< ConstBranchDescription > bd)
virtual void setProcessHistoryID_(ProcessHistoryID const &phid)
virtual ProductData const & getProductData() const =0
virtual bool putOrMergeProduct_() const
void setProductUnavailable() const
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess) const
virtual ConstBranchDescription const & branchDescription_() const
virtual void resetStatus_()
virtual ProductStatus & status_() const
virtual bool singleProduct_() const
void resetProductData()
Definition: ProductData.h:40
virtual void setProvenance_(boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid)
virtual std::string const & resolvedModuleLabel_() const
virtual void resetStatus_()=0
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
InputProductHolder(boost::shared_ptr< ConstBranchDescription > bd, Principal *principal)
virtual void resetProductData_()=0
virtual void resetProductData_()
virtual void setProvenance_(boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid)
std::string const & processName() const
virtual void setProvenance_(boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid)=0
virtual void resetStatus_()
virtual std::string const & resolvedModuleLabel_() const
virtual ProductStatus & status_() const
virtual void mergeProduct_(WrapperOwningHolder const &edp, ProductProvenance &productProvenance)
bool putOrMergeProduct() const
void resetBranchDescription(boost::shared_ptr< ConstBranchDescription > bd)
Definition: ProductData.cc:26
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess) const
void putProduct(WrapperOwningHolder const &edp) const
void reallyCheckType(WrapperOwningHolder const &prod) const
virtual void resetBranchDescription_(boost::shared_ptr< ConstBranchDescription > bd)
double b
Definition: hdecay.h:120
void setProvenance(boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid)
virtual bool putOrMergeProduct_() const
std::vector< bool > ambiguous_
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess) const =0
virtual bool productWasDeleted_() const
void resetBranchDescription(boost::shared_ptr< ConstBranchDescription > bd)
virtual void swap_(ProductHolderBase &rhs)
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
virtual ProductData & getProductData()
virtual void resetBranchDescription_(boost::shared_ptr< ConstBranchDescription > bd)
virtual ProductData & getProductData()
virtual bool productWasDeleted_() const
void setProduct(WrapperOwningHolder const &prod) const
virtual ProductData const & getProductData() const
virtual void putProduct_(WrapperOwningHolder const &edp) const
virtual bool onDemand_() const
virtual void resetProductData_()
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess) const
boost::shared_ptr< ConstBranchDescription > const & branchDescription() const
Definition: ProductData.h:29
double a
Definition: hdecay.h:121
virtual void setProvenance_(boost::shared_ptr< BranchMapper > mapper, ProcessHistoryID const &phid, ProductID const &pid)
virtual std::string const & resolvedModuleLabel_() const
virtual ProductData const & getProductData() const
virtual ProductData const & getProductData() const
virtual ProductData const * resolveProduct_(ResolveStatus &resolveStatus, bool skipCurrentProcess) const
void putProduct(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
ProductData & productData()
Definition: ProductHolder.h:45
virtual void setPrincipal_(Principal *principal)
ProductStatus & status() const
virtual ConstBranchDescription const & branchDescription_() const
virtual bool onDemand_() const
virtual bool productWasDeleted_() const =0
virtual void setProductDeleted_()=0
ProductID const & productID() const
Definition: Provenance.h:88
virtual void checkType_(WrapperOwningHolder const &prod) const
virtual ProductProvenance * productProvenancePtr_() const
virtual void putProduct_(WrapperOwningHolder const &edp, ProductProvenance const &productProvenance)
virtual void checkType_(WrapperOwningHolder const &prod) const =0
virtual ConstBranchDescription const & branchDescription_() const =0
SourceProductHolder(boost::shared_ptr< ConstBranchDescription > bd)
virtual bool onDemand_() const
std::ostream & operator<<(std::ostream &ost, const HLTGlobalStatus &hlt)
Formatted printout of trigger tbale.
TypeID productType() const
virtual bool productUnavailable_() const
virtual ProductProvenance * productProvenancePtr_() const
std::string const & productInstanceName() const
ProducedProductHolder & realProduct_
std::string const & moduleLabel() const
virtual void setPrincipal_(Principal *principal)=0
ScheduledProductHolder(boost::shared_ptr< ConstBranchDescription > bd)
virtual std::string const & resolvedModuleLabel_() const =0
virtual bool productWasDeleted_() const
WrapperHolder wrapper() const
Definition: ProductHolder.h:84
virtual void resetProductData_()
bool productUnavailable() const
Definition: ProductHolder.h:69