exportAll static method
Future<ChartExportBatchResult>
exportAll(
- Iterable<
ChartExportRequest> requests, { - ChartExportBatchOptions options = const ChartExportBatchOptions(),
Export several requests and return a single summary object.
Each request is isolated: one failed export does not prevent later exports from running, which is important for mixed data + image batches.
Implementation
static Future<ChartExportBatchResult> exportAll(
Iterable<ChartExportRequest> requests, {
ChartExportBatchOptions options = const ChartExportBatchOptions(),
}) async {
final allRequests = List<ChartExportRequest>.unmodifiable(requests);
final requestList = <ChartExportRequest>[];
final skippedUnavailable = <ChartExportCapability>[];
for (final request in allRequests) {
final capability = capabilityForRequest(request);
if (options.skipUnavailable && !capability.canExport) {
skippedUnavailable.add(capability);
} else {
requestList.add(request);
}
}
final results = <ChartExportResult>[];
for (final request in requestList) {
final result = await export(
request.withBatchControls(
timeout: options.timeout,
cancellationToken: options.cancellationToken,
),
);
results.add(result);
_emitBatchProgress(
options,
ChartExportBatchProgress(
completed: results.length,
total: requestList.length,
result: result,
),
);
if (options.stopOnFirstFailure && !result.success) break;
}
return ChartExportBatchResult(
results,
skippedUnavailable: skippedUnavailable,
requestedCount: allRequests.length,
);
}