entryPoint static method

void entryPoint(
  1. IsolateInferenceArgument argument
)

Implementation

static void entryPoint(IsolateInferenceArgument argument) async {
  final port = ReceivePort();
  argument.sendPort.send(port.sendPort);
  await for (final InferenceModel message in port) {
    /// メッセージから入力データを取得
    try {
      final inputData = message.inputData;

      /// メッセージからインタープリターを取得
      argument.fromAddress(message.interpreterAddress);

      /// メッセージから出力データの形状を取得
      final outputData = List.generate(message.outputShape[0],
          (i) => List<double>.filled(message.outputShape[1], 0));

      /// 推論を実行
      argument.run(inputData, outputData);

      /// EvaluatePoseを生成
      final evaluatePose = EvaluatePose(
        inputData: inputData,
        outputData: outputData,
      );

      /// EvaluatePoseを送信
      message.responsePort.send(evaluatePose);
    } catch (_) {
      // エラーが発生した場合はnullを送信
      message.responsePort.send(null);
    }
  }
}