88 #include "../r_code/utils.h"
91 #include "pgm_overlay.h"
101 Timestamp target_time_;
102 virtual bool update(Timestamp &next_target) = 0;
103 virtual bool is_alive()
const;
104 virtual void report(std::chrono::microseconds lag)
const;
105 uint32 get_job_id()
const {
return job_id_; }
116 return x->target_time_ < y->target_time_;
121 static uint32 job_count_;
130 bool update(Timestamp &next_target)
override;
131 void report(int64 lag)
const;
140 bool is_alive()
const override;
147 bool update(Timestamp &next_target)
override;
148 void report(int64 lag)
const;
155 bool update(Timestamp &next_target)
override;
156 void report(int64 lag)
const;
174 bool update(Timestamp &next_target)
override;
175 void report(int64 lag)
const;
177 bool is_from_io_device_;
185 bool update(Timestamp &next_target)
override;
186 void report(int64 lag)
const;
194 float32 source_sln_thr_;
196 bool update(Timestamp &next_target)
override;
197 void report(int64 lag)
const;
204 bool update(Timestamp &next_target)
override;
212 #ifdef WITH_DETAIL_OID
213 OUTPUT_LINE((TraceLevel)0,
" make MonitoringJob::TimeJob " << get_job_id() <<
214 "(" << get_detail_oid() <<
") for monitor(" << monitor_->get_detail_oid() <<
"), deadline " <<
215 r_code::Utils::RelativeTime(deadline));
218 bool update(Timestamp &next_target)
override {
220 #ifdef WITH_DETAIL_OID
221 OUTPUT_LINE((TraceLevel)0, r_code::Utils::RelativeTime(r_exec::Now()) <<
" MonitoringJob::TimeJob " << get_job_id() <<
222 ": monitor(" << monitor_->get_detail_oid() <<
")->update()");
224 monitor_->update(next_target);
227 bool is_alive()
const override {
229 return monitor_->is_alive();
231 void report(std::chrono::microseconds lag)
const override {
233 std::cout <<
"> late monitoring: " << lag.count() <<
" us behind." << std::endl;
240 std::chrono::microseconds period_;
242 bool is_alive()
const override;
243 bool update(Timestamp &next_target)
override;