14 ProductProvenance::ProductProvenance() =
default;
15 ProductProvenance::~ProductProvenance() =
default;
17 ProductProvenance::ProductProvenance(
ProductID const& bid,
24 vector<ProductID>
const& parents)
27 transients_.get().parentagePtr_ = make_shared<Parentage>(parents);
68 transients_.get().parentagePtr_ = make_shared<Parentage>();
77 os <<
"product ID = " <<
productID() <<
'\n';
78 os <<
"product status = " <<
static_cast<int>(
productStatus_) <<
'\n';
80 os <<
"entry description ID = " <<
parentageID() <<
'\n';
94 if (
a.noParentage() !=
b.noParentage()) {
97 if (
a.noParentage()) {
98 return (
a.productID() ==
b.productID()) &&
99 (
a.productStatus() ==
b.productStatus());
101 return (
a.productID() ==
b.productID()) &&
102 (
a.productStatus() ==
b.productStatus()) &&
103 (
a.parentageID() ==
b.parentageID());
117 return a.productID() <
b.productID();
bool operator==(Provenance const &a, Provenance const &b) noexcept
bool operator!=(debugging_allocator< X > const &, debugging_allocator< Y > const &)
ParentageID const & parentageID() const noexcept
ProductID productID() const noexcept
std::ostream & operator<<(std::ostream &os, const GroupSelector &gs)
bool operator<(ProductInfo const &a, ProductInfo const &b)
static collection_type const & get()
Parentage const & parentage() const
ProductStatus productStatus_
bool noParentage() const noexcept
Transient< Transients > transients_
unsigned char ProductStatus
ProductStatus productStatus() const noexcept
ProductProvenance & operator=(ProductProvenance const &)
void write(std::ostream &) const
static auto emplace(value_type const &value)