return GetProblem() && (IsInDowntime() || IsAcknowledged());
}
+Timestamp Checkable::GetNextUpdate() const
+{
+ auto cr (GetLastCheckResult());
+
+ if (cr) {
+ return GetNextCheck()
+ + (GetProblem() && GetStateType() == StateTypeSoft ? GetRetryInterval() : GetCheckInterval())
+ + 2 * (cr->GetExecutionEnd() - cr->GetScheduleStart());
+ } else {
+ return GetNextCheck() + GetCheckInterval();
+ }
+}
+
void Checkable::NotifyFixedDowntimeStart(const Downtime::Ptr& downtime)
{
if (!downtime->GetFixed())
int GetSeverity() const override;
bool GetProblem() const override;
bool GetHandled() const override;
+ Timestamp GetNextUpdate() const override;
/* Checks */
intrusive_ptr<CheckCommand> GetCheckCommand() const;
[no_storage] bool handled {
get;
};
+ [no_storage] Timestamp next_update {
+ get;
+ };
[state] bool force_next_check;
[state] int acknowledgement (AcknowledgementRaw) {