}
return ret;
}
- virtual pd_t *clone() const override { return nullptr; }
+ virtual pd_t *clone() const override { return new pd_t(*this); }
virtual const char *name() const override { return "ref:any"; }
virtual status_t init() override {
}
}
}
- return success;
+ return (size_t)n_ == reorder_pds_.size() ? success : unimplemented;
}
nstl::vector<const reorder_pd_t *> reorder_pds_;
};
- ref_concat_t(const pd_t *conf, const input_vector &inputs,
+ ref_concat_t(const pd_t *apd, const input_vector &inputs,
const output_vector &outputs, nstl::vector<primitive_t *> reorders)
- : cpu_primitive_t(&conf_, inputs, outputs), conf_(*conf),
+ : cpu_primitive_t(apd, inputs, outputs),
reorders_(reorders) {}
~ref_concat_t() {
delete reorders_[i];
}
- virtual void execute(event_t *e) {
+ virtual void execute(event_t *e) const {
for (size_t i = 0; i < reorders_.size(); ++i) {
event_t ei;
reorders_[i]->execute(&ei);
}
private:
- pd_t conf_;
+ const pd_t *pd() const { return (const pd_t *)primitive_t::pd(); }
nstl::vector<primitive_t *> reorders_;
};