readResource method

RitoResource readResource({
  1. required int sessionId,
  2. required int artifactId,
  3. required RitoResourceKind kind,
  4. required String href,
})

Implementation

RitoResource readResource({
  required int sessionId,
  required int artifactId,
  required RitoResourceKind kind,
  required String href,
}) {
  final owned = _readResourceWire(
    sessionId: sessionId,
    artifactId: artifactId,
    kind: kind,
    href: href,
  );
  try {
    final resource = resourceDecoder.decode(owned);
    if (resource.artifactId != artifactId ||
        resource.kind != kind ||
        resource.href != href) {
      throw const RitoNativeException(
        status: 4,
        message: 'Native resource identity does not match its request.',
      );
    }
    return resource;
  } on Object catch (error, stackTrace) {
    _disposeAfterFailedSessionOutput(sessionId);
    Error.throwWithStackTrace(
      _terminatedSessionResultError('resource', error),
      stackTrace,
    );
  }
}