14 ProductProvenance::ProductProvenance() =
default;
15 ProductProvenance::~ProductProvenance() =
default;
17 ProductProvenance::ProductProvenance(
ProductID const& bid,
24 vector<ProductID>
const& parents)
75 os <<
"product ID = " <<
productID() <<
'\n';
76 os <<
"product status = " <<
static_cast<int>(
productStatus_) <<
'\n';
78 os <<
"entry description ID = " <<
parentageID() <<
'\n';
92 if (a.noParentage() != b.noParentage()) {
95 if (a.noParentage()) {
96 return (a.productID() == b.productID()) &&
97 (a.productStatus() == b.productStatus());
99 return (a.productID() == b.productID()) &&
100 (a.productStatus() == b.productStatus()) &&
101 (a.parentageID() == b.parentageID());
115 return a.productID() < b.productID();
bool operator==(Provenance const &a, Provenance const &b) noexcept
bool operator!=(ScheduleID const left, ScheduleID const right) noexcept
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)