openEncoded method
RitoArtifact
openEncoded({
- required Uint8List publicationBytes,
- required Uint8List requestBytes,
- RitoPinnedFontPolicy? pinnedFontPolicy,
Implementation
RitoArtifact openEncoded({
required Uint8List publicationBytes,
required Uint8List requestBytes,
RitoPinnedFontPolicy? pinnedFontPolicy,
}) {
final owned = _openEncodedWire(
publicationBytes: publicationBytes,
requestBytes: requestBytes,
pinnedFontPolicy: pinnedFontPolicy,
);
try {
final artifact = artifactDecoder.decode(owned);
_validateArtifactIdentity(
artifact,
sessionId: _acceptedRequestSessionId(requestBytes),
requestId: _acceptedRequestId(requestBytes),
);
return artifact;
} on Object catch (error, stackTrace) {
// A successful open has already registered the native session. If the
// returned artifact is malformed, no RitoReaderSession exists to own
// that session, so roll it back before surfacing the decode failure.
_disposeAfterFailedSessionOutput(_acceptedRequestSessionId(requestBytes));
Error.throwWithStackTrace(
_terminatedSessionResultError('initial artifact', error),
stackTrace,
);
}
}