コード例 #1
0
 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()
コード例 #2
0
 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()
コード例 #3
0
 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()