ChartRuntimeDiagnostics.fromResolvedConfig constructor
ChartRuntimeDiagnostics.fromResolvedConfig({
- required BaseChartConfig config,
- required bool jsonDriven,
- required Duration configResolveDuration,
- required Duration chartBuildDuration,
- required Duration totalBuildDuration,
- Map<
String, dynamic> ? effectiveJson, - PayloadNormalizationResult? normalizationResult,
- ChartDataProcessingReport? processingReport,
- ChartRuntimePerformancePolicy performancePolicy = ChartRuntimePerformancePolicy.defaults,
- ChartRuntimePerformancePolicyResolution? performancePolicyResolution,
Implementation
factory ChartRuntimeDiagnostics.fromResolvedConfig({
required BaseChartConfig config,
required bool jsonDriven,
required Duration configResolveDuration,
required Duration chartBuildDuration,
required Duration totalBuildDuration,
Map<String, dynamic>? effectiveJson,
PayloadNormalizationResult? normalizationResult,
ChartDataProcessingReport? processingReport,
ChartRuntimePerformancePolicy performancePolicy =
ChartRuntimePerformancePolicy.defaults,
ChartRuntimePerformancePolicyResolution? performancePolicyResolution,
}) {
final resolvedPerformancePolicy =
performancePolicyResolution ??
ChartRuntimePerformancePolicyResolution.fallback(performancePolicy);
final configSignature = ChartDataSignature.fromConfig(config);
final inputSignature = effectiveJson != null
? ChartDataSignature.fromJson(effectiveJson)
: configSignature;
final rawInputSignature = normalizationResult != null
? ChartDataSignature.fromJson(normalizationResult.rawPayload)
: null;
final sourceCount = inputSignature.dataPointCount;
final renderedCount =
processingReport?.outputPointCount ?? configSignature.dataPointCount;
final effectiveCount = processingReport?.effectiveDataPointCount;
final sampleInputCount = processingReport?.sampleInputPointCount;
final processingCacheStats = ChartDataProcessor.processingCacheStats;
final renderCacheStats = chartRenderCacheStats;
final pictureCacheStats = pictureCache.stats;
return ChartRuntimeDiagnostics(
type: config.type,
typeString: chartTypeToString(config.type),
jsonDriven: jsonDriven,
inputSignature: inputSignature,
configSignature: configSignature,
sourceDataPointCount: sourceCount,
effectiveDataPointCount: effectiveCount,
sampleInputPointCount: sampleInputCount,
renderedDataPointCount: renderedCount,
seriesCount: configSignature.seriesCount,
configSampledData: renderedCount < sourceCount,
rawInputSignature: rawInputSignature,
payloadWasNormalized: normalizationResult?.wasNormalized ?? false,
payloadChanged: normalizationResult?.changed ?? false,
payloadDiffCount: normalizationResult?.summary.total ?? 0,
payloadChangedPaths: normalizationResult?.changedPaths ?? const [],
dataMode: effectiveJson?['dataMode']?.toString(),
sampling: effectiveJson?['sampling'],
configResolveDuration: configResolveDuration,
chartBuildDuration: chartBuildDuration,
totalBuildDuration: totalBuildDuration,
processingCacheStats: processingCacheStats,
renderCacheStats: renderCacheStats,
pictureCacheStats: pictureCacheStats,
performanceSummary: ChartRuntimePerformanceSummary.fromRuntimeInputs(
sourceDataPointCount: sourceCount,
effectiveDataPointCount: effectiveCount,
sampleInputPointCount: sampleInputCount,
renderedDataPointCount: renderedCount,
seriesCount: configSignature.seriesCount,
configSampledData: renderedCount < sourceCount,
payloadWasNormalized: normalizationResult?.wasNormalized ?? false,
payloadChanged: normalizationResult?.changed ?? false,
processingCacheStats: processingCacheStats,
renderCacheStats: renderCacheStats,
pictureCacheStats: pictureCacheStats,
policy: resolvedPerformancePolicy.policy,
),
performancePolicyResolution: resolvedPerformancePolicy,
);
}