3 * Copyright (C) 2021 Samsung Electronics
4 * Copyright (C) 2021 Dongju Chae <dongju.chae@samsung.com>
9 * @brief Internal data structure for requests.
10 * @see https://code.sec.samsung.net/confluence/display/ODLC/2020+Overall+Software+Stack
11 * @author Dongju Chae <dongju.chae@samsung.com>
12 * @bug No known bugs except for NYI items
14 #ifndef NE_REQUEST_H__
15 #define NE_REQUEST_H__
24 /** @brief class def. of requests created from host handler */
28 Request (int req_id = 0);
31 void setModel (const Model *model) { model_ = model; }
32 const Model *getModel () const { return model_; }
34 void setInferData (HWmem *data) { data_ = data; }
35 HWmem *getInferData () const { return data_; }
37 void setCallback (outputCallback cb) { cb_ = cb; }
38 outputCallback getCallback () const { return cb_; }
40 void setForceStop (bool force_stop) { force_stop_ = force_stop; }
41 bool getForceStop () const { return force_stop_; }
43 void setPreserved (bool preserved) { preserved_ = preserved; }
44 bool isPreserved () const { return preserved_; }
46 void setSubmitted (bool submitted) { submitted_ = submitted; }
47 bool isSubmitted () const { return submitted_; }
49 void setOpmode (npu_input_opmode opmode) { opmode_ = opmode; }
50 npu_input_opmode getOpmode () const { return opmode_; }
51 int getID () const { return request_id_; }
53 void setStopped () { stopped_ = true; }
54 bool isStopped () const { return stopped_; }
56 void setHwDevice (std::string hw_dev) { hw_dev_ = hw_dev; }
57 std::string getHwDevice () const { return hw_dev_; }
59 void setOutputBuffers (output_buffers *out_bufs) { out_bufs_ = out_bufs; }
60 output_buffers *getOutputBuffers () const { return out_bufs_; }
62 void setInferMode (npu_infer_mode infer_mode) { infer_mode_ = infer_mode; }
63 npu_infer_mode getInferMode () const { return infer_mode_; }
65 void setScheduler (const npu_scheduler &sched,
66 const npu_scheduler_param &sched_param) {
68 sched_param_ = sched_param;
70 npu_scheduler getScheduler () const { return sched_; }
71 npu_scheduler_param getSchedulerParam () const { return sched_param_; }
74 int request_id_; /**< request id */
76 npu_input_opmode opmode_; /**< opmode of the request */
77 bool force_stop_; /**< indicates force stop */
78 bool stopped_; /**< stopped request */
79 bool preserved_; /**< preserved request */
80 bool submitted_; /**< submitted request */
82 const Model *model_; /**< model of the request */
83 HWmem *data_; /**< inference data of the request */
85 outputCallback cb_; /**< request callback */
86 output_buffers *out_bufs_; /**< output buffers */
87 std::string hw_dev_; /**< HW device path */
89 npu_infer_mode infer_mode_;
92 npu_scheduler_param sched_param_;
95 #endif /* NE_REQUEST_H__ */