def handle(self): """ Communicate with remote client. Reference protocol between them at PR#3821 and PR#3935 """ arg = self.get_message() if arg.startswith('TBE'): self.tbe_handle(arg) elif arg.startswith('AKG'): self.akg_builder.handle(self, arg, "ASCEND") elif arg == 'FORMAT': self.send_ack() json = self.get_message() self.send_res(op_select_format(json)) elif arg == 'SUPPORT': self.send_ack() json = self.get_message() get_logger().debug(f"[SUPPORT] {json}") try: res = check_supported(json) except json.decoder.JSONDecodeError: self.send_ack(False) self.exit() finally: pass self.send_res(res) else: self.send_ack(False) self.exit()
def handle(self): """ Communicate with remote client. Reference protocol between them at PR#3821 and PR#3935 """ arg = self.get_message() if arg == 'TBE/PRE': ans = self.tbe_builder.create() self.send_res(ans) elif arg == "TBE/TUNE": self.send_ack() tune_mode = self.get_message() ans = self.tbe_builder.init_auto_tune_env(tune_mode) self.send_res(ans) elif arg == 'TBE/START': self.send_ack() json = self.get_message() res = self.tbe_builder.start(json) self.send_res(res) elif arg == 'TBE/WAIT': self.send_ack() task_id, res, pre = self.tbe_builder.wait() get_logger().debug( f"[TRACE] {str(task_id)} / {str(res)} / {str(pre)}") if self.get_message() != 'CONTINUE': self.send_ack(False) self.exit() self.send_res(task_id) if self.get_message() != 'CONTINUE': self.send_ack(False) self.exit() self.send_res(res) if self.get_message() != 'CONTINUE': self.send_ack(False) self.exit() self.send_res(pre) elif arg == 'TBE/RESET': self.tbe_builder.reset() self.send_ack() elif arg == 'AKG/START': self.send_ack() process_num_str = self.get_message() self.send_ack() wait_time_str = self.get_message() self.akg_builder.create(int(process_num_str), int(wait_time_str), "ASCEND") self.send_ack() elif arg == 'AKG/DATA': self.send_ack() while True: req = self.get_message() if req.startswith('{'): self.akg_builder.accept_json(req) self.send_ack() elif req == 'AKG/WAIT': res = self.akg_builder.compile() self.send_res(res) break else: self.send_ack(False) break elif arg == 'FORMAT': self.send_ack() json = self.get_message() self.send_res(op_select_format(json)) elif arg == 'SUPPORT': self.send_ack() json = self.get_message() get_logger().debug(f"[SUPPORT] {json}") try: res = check_supported(json) except json.decoder.JSONDecodeError: self.send_ack(False) self.exit() finally: pass self.send_res(res) else: self.send_ack(False) self.exit()
def handle(self): """ Communicate with remote """ arg = self.get_message() if arg == 'TBE/START': self.send_ack() json = self.get_message() res = self.tbe_builder.start(json) self.send_res(res) elif arg == 'TBE/WAIT': self.send_ack() task_id, res, pre = self.tbe_builder.wait() logger.debug('[TRACE]', str(task_id) + '/' + str(res) + '/' + str(pre)) if self.get_message() != 'CONT': self.send_ack(False) self.exit() self.send_res(task_id) if self.get_message() != 'CONT': self.send_ack(False) self.exit() self.send_res(res) if self.get_message() != 'CONT': self.send_ack(False) self.exit() self.send_res(pre) elif arg == 'TBE/RESET': self.tbe_builder.reset() self.send_ack() elif arg == 'AKG/START': self.send_ack() process_num_str = self.get_message() self.send_ack() wait_time_str = self.get_message() self.akg_builder.create(int(process_num_str), int(wait_time_str)) self.send_ack() elif arg == 'AKG/DATA': self.send_ack() while True: req = self.get_message() if req.startswith('{'): self.akg_builder.accept_json(req) self.send_ack() elif req == 'AKG/WAIT': res = self.akg_builder.compile() self.send_res(res) break else: self.send_ack(False) break elif arg == 'FORMAT': self.send_ack() json = self.get_message() self.send_res(op_select_format(json)) elif arg == 'SUPPORT': self.send_ack() json = self.get_message() logger.debug('[SUPPORT]', json) try: res = check_supported(json) except json.decoder.JSONDecodeError: self.send_ack(False) self.exit() finally: pass self.send_res(res) else: self.send_ack(False) self.exit()