85 #ifndef reduction_job_h
86 #define reduction_job_h
88 #include "../r_code/utils.h"
90 #include "mem_output.h"
99 void register_latency(Timestamp now);
102 virtual bool update(Timestamp now) = 0;
103 virtual void debug() {}
104 uint32 get_job_id()
const {
return job_id_; }
106 static uint32 job_count_;
116 bool update(Timestamp now)
override {
118 register_latency(now);
119 #ifdef WITH_DETAIL_OID
120 OUTPUT_LINE((TraceLevel)0, r_code::Utils::RelativeTime(now) <<
" ReductionJob " << get_job_id() <<
121 ": controller(" << processor_->get_detail_oid() <<
")->reduce(View(fact_" <<
122 input_->object_->get_oid() <<
"))");
124 processor_->reduce(input_);
127 void debug()
override {
129 processor_->debug(input_);
139 BatchReductionJob(_P *processor, T *trigger, C *controller) :
_ReductionJob(), processor_(processor), trigger_(trigger), controller_(controller) {}
140 bool update(Timestamp now)
override {
142 register_latency(now);
143 #ifdef WITH_DETAIL_OID
144 OUTPUT_LINE((TraceLevel)0, r_code::Utils::RelativeTime(now) <<
" BatchReductionJob " << get_job_id() <<
145 ": controller(" << controller_->get_detail_oid() <<
"), trigger fact(" <<
146 trigger_->get_detail_oid() <<
")");
148 processor_->reduce_batch(trigger_, controller_);
156 bool update(Timestamp now)
override;
164 bool update(Timestamp now)
override;