1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
#include "DataFormats/Common/interface/ProductData.h"
#include "DataFormats/Provenance/interface/ProductID.h"
#include "DataFormats/Common/interface/WrapperBase.h"
#include "FWCore/Utilities/interface/do_nothing_deleter.h"
#include <algorithm>
namespace edm {
ProductData::ProductData() : wrapper_(), prov_() {}
ProductData::ProductData(std::shared_ptr<ProductDescription const> bd) : wrapper_(), prov_(bd, ProductID()) {}
// For use by FWLite
ProductData::ProductData(WrapperBase* product, Provenance const& prov)
: wrapper_(product, do_nothing_deleter()), prov_(prov) {}
void ProductData::resetProductDescription(std::shared_ptr<ProductDescription const> bd) {
prov_.setProductDescription(bd);
}
void ProductData::setWrapper(std::unique_ptr<WrapperBase> iValue) { wrapper_ = std::move(iValue); }
//Not const thread-safe update
void ProductData::unsafe_setWrapper(std::unique_ptr<WrapperBase> iValue) const { wrapper_ = std::move(iValue); }
void ProductData::unsafe_setWrapper(std::shared_ptr<WrapperBase const> iValue) const { wrapper_ = std::move(iValue); }
} // namespace edm
|