encodeNavigation method
Encodes a RITONVQ1 navigation request.
Implementation
Uint8List encodeNavigation(RitoNavigationRequest request) {
final writer = _Writer.message(ascii.encode('RITONVQ1'), 1);
writer.externalId(request.sessionId, 'session id');
switch (request.query) {
case RitoTocEntryAtPageQuery(:final artifactId, :final pageIndex):
writer.uint8(0);
writer.externalId(artifactId, 'artifact id');
writer.uint32(pageIndex, 'page index');
case RitoTocEntryAtPositionQuery(:final href, :final point):
writer.uint8(1);
writer.string(href, 'position href');
_sourcePointRecord(writer, point);
case RitoLocateQuery(:final artifactId, :final locator):
writer.uint8(2);
writer.externalId(artifactId, 'artifact id');
writer.record((writer) => _locator(writer, locator));
case final RitoCompareQuery query:
writer.uint8(3);
writer.string(query.firstHref, 'first href');
_sourcePointRecord(writer, query.first);
writer.string(query.secondHref, 'second href');
_sourcePointRecord(writer, query.second);
case RitoLayoutQuery(:final artifactId, :final whole):
writer.uint8(4);
writer.externalId(artifactId, 'artifact id');
writer.boolean(whole);
}
return writer.finish();
}