processingCacheAdmissionReason static method

ChartDataCacheAdmissionReason processingCacheAdmissionReason(
  1. List<Series> series, {
  2. bool? useCache,
  3. int? startIndex,
  4. int? endIndex,
  5. ChartDataProcessingCachePolicySnapshot? policy,
})

Implementation

static ChartDataCacheAdmissionReason processingCacheAdmissionReason(
  List<Series> series, {
  bool? useCache,
  int? startIndex,
  int? endIndex,
  ChartDataProcessingCachePolicySnapshot? policy,
}) {
  final cachePolicy =
      policy ?? ChartDataProcessingCachePolicySnapshot.fromCurrentConfig();
  if (useCache != null) {
    if (!useCache) return ChartDataCacheAdmissionReason.forcedOff;
    if (cachePolicy.maxEntries <= 0) {
      return ChartDataCacheAdmissionReason.noEntryCapacity;
    }
    if (cachePolicy.maxBytes <= 0) {
      return ChartDataCacheAdmissionReason.noByteCapacity;
    }
    return ChartDataCacheAdmissionReason.forcedOn;
  }
  if (!cachePolicy.enabled) {
    return ChartDataCacheAdmissionReason.disabled;
  }
  if (cachePolicy.maxEntries <= 0) {
    return ChartDataCacheAdmissionReason.noEntryCapacity;
  }
  if (cachePolicy.maxBytes <= 0) {
    return ChartDataCacheAdmissionReason.noByteCapacity;
  }
  final effectivePointCount = effectiveDataPointCount(
    series,
    startIndex: startIndex,
    endIndex: endIndex,
  );
  if (effectivePointCount <= 0) {
    return ChartDataCacheAdmissionReason.emptyEffectiveWindow;
  }
  if (effectivePointCount < cachePolicy.minPointCount) {
    return ChartDataCacheAdmissionReason.belowEffectivePointThreshold;
  }
  return ChartDataCacheAdmissionReason.eligible;
}