kdfMainStatus method

Future<MainStatus> kdfMainStatus()

Implementation

Future<MainStatus> kdfMainStatus() async {
  final status = await _kdfOperations.kdfMainStatus();
  _log('KDF main status: $status');

  // Checking if KDF is running using `version` method covers the case
  // where implementations do not run as a singleton. E.g. `kdfMainStatus`
  // for `kdfOperationsLocalExecutable` will return `MainStatus.notRunning`
  // if that instance does not have a process running even if KDF is
  // running in another instance. Consider refactoring the architecture
  // to take this into account.
  if (status == MainStatus.notRunning) {
    final version = await _kdfOperations.version();
    if (version != null) {
      return MainStatus.rpcIsUp;
    }
  }

  return status;
}