KDMCertificatePeriod
-check_kdm_and_certificate_validity_periods(dcp::Certificate const& recipient, dcp::LocalTime kdm_from, dcp::LocalTime kdm_to)
+check_kdm_and_certificate_validity_periods(
+ string const& cinema_name,
+ string const& screen_name,
+ dcp::Certificate const& recipient,
+ dcp::LocalTime kdm_from,
+ dcp::LocalTime kdm_to
+ )
{
auto overlaps = [](dcp::LocalTime from_a, dcp::LocalTime to_a, dcp::LocalTime from_b, dcp::LocalTime to_b) {
return std::max(from_a, from_b) < std::min(to_a, to_b);
return bigger_from <= smaller_from && bigger_to >= smaller_to;
};
+ KDMCertificatePeriod period(
+ cinema_name,
+ screen_name,
+ recipient.not_before(),
+ recipient.not_after()
+ );
+
if (contains(recipient.not_before(), recipient.not_after(), kdm_from, kdm_to)) {
- return KDMCertificatePeriod::KDM_WITHIN_CERTIFICATE;
+ period.overlap = KDMCertificateOverlap::KDM_WITHIN_CERTIFICATE;
+ return period;
}
if (overlaps(recipient.not_before(), recipient.not_after(), kdm_from, kdm_to)) {
/* The KDM overlaps the certificate validity: maybe not the end of the world */
- return KDMCertificatePeriod::KDM_OVERLAPS_CERTIFICATE;
+ period.overlap = KDMCertificateOverlap::KDM_OVERLAPS_CERTIFICATE;
+ return period;
} else {
/* The KDM validity is totally outside the certificate validity: bad news */
- return KDMCertificatePeriod::KDM_OUTSIDE_CERTIFICATE;
+ period.overlap = KDMCertificateOverlap::KDM_OUTSIDE_CERTIFICATE;
+ return period;
}
}