toJson method

Map<String, Object?> toJson()

JSON-like representation for debug UIs.

Implementation

Map<String, Object?> toJson() {
  return <String, Object?>{
    'isConfigured': isConfigured,
    'config': <String, Object?>{
      'memoryCacheBytes': config.memoryCacheBytes,
      'diskCacheBytes': config.diskCacheBytes,
      'networkConcurrency': config.networkConcurrency,
      'decodeConcurrency': config.decodeConcurrency,
      'maxImageCompletionsPerFrame': config.maxImageCompletionsPerFrame,
      'maxQueuedRuntimeLoads': config.maxQueuedRuntimeLoads,
      'maxQueuedDecodes': config.maxQueuedDecodes,
      'decodedCacheMaximumSize': config.decodedCacheMaximumSize,
      'decodedCacheMaximumSizeBytes': config.decodedCacheMaximumSizeBytes,
      'hasCustomCacheRoot': config.cacheRootPath != null,
      'pluginCount': config.plugins.length,
      'observerCount': config.observers.length,
      'observerProgressIntervalMicros':
          config.observerSamplingPolicy.progressInterval.inMicroseconds,
      'observerProgressSampleRate':
          config.observerSamplingPolicy.progressSampleRate,
    },
    'displayDecoder': displayDecoder.toJson(),
    'capabilities': <String, Object?>{
      'platform': capabilities.platformStatus.platform,
      'isWeb': capabilities.platformStatus.isWeb,
      'isSupportedPlatform': capabilities.platformStatus.isSupportedPlatform,
      'runtimeAvailable': capabilities.platformStatus.runtimeAvailable,
      'platformMessage': capabilities.platformStatus.message,
      'platformContract': capabilities.platformStatus.contract?.toJson(),
      'diskCache': capabilities.diskCache,
      'httpTransport': capabilities.httpTransport,
      'exifParser': capabilities.exifParser,
      'pixelProcessors': capabilities.pixelProcessors,
      'runtimePluginAbiVersion': capabilities.runtimePluginAbiVersion,
      'runtimePluginRegistryStats': capabilities.runtimePluginRegistryStats
          .toJson(),
      'imageFormats': capabilities.imageFormats
          .map(
            (PixaRuntimeImageFormatCapability capability) =>
                capability.toJson(),
          )
          .toList(growable: false),
      'platformSelfCheck': platformSelfCheck.toJson(),
    },
    'registryArchitecture': registryArchitecture.toJson(),
    'registryRoutePlan': registryRoutePlan,
    'cacheStats': cacheStats == null
        ? null
        : <String, Object?>{
            'memoryEntries': cacheStats!.memoryEntries,
            'memoryBytes': cacheStats!.memoryBytes,
            'encodedMemoryEntries': cacheStats!.encodedMemoryEntries,
            'encodedMemoryBytes': cacheStats!.encodedMemoryBytes,
            'memoryHits': cacheStats!.memoryHits,
            'memoryMisses': cacheStats!.memoryMisses,
            'diskHits': cacheStats!.diskHits,
            'diskMisses': cacheStats!.diskMisses,
            'diskWrites': cacheStats!.diskWrites,
            'diskCorruptionRecoveries': cacheStats!.diskCorruptionRecoveries,
            'evictions': cacheStats!.evictions,
            'hitRate': cacheStats!.hitRate,
            'staleRevalidatesStarted': cacheStats!.staleRevalidatesStarted,
            'staleRevalidatesCompleted':
                cacheStats!.staleRevalidatesCompleted,
            'staleRevalidatesFailed': cacheStats!.staleRevalidatesFailed,
            'staleRevalidatesSkipped': cacheStats!.staleRevalidatesSkipped,
            'staleRevalidatesInFlight': cacheStats!.staleRevalidatesInFlight,
            'processedMemoryEntries': cacheStats!.processedMemoryEntries,
            'processedMemoryBytes': cacheStats!.processedMemoryBytes,
            'processedMemoryHits': cacheStats!.processedMemoryHits,
            'processedMemoryMisses': cacheStats!.processedMemoryMisses,
            'processedMemoryEvictions': cacheStats!.processedMemoryEvictions,
            'processedDiskHits': cacheStats!.processedDiskHits,
            'processedDiskMisses': cacheStats!.processedDiskMisses,
            'processedDiskStaleHits': cacheStats!.processedDiskStaleHits,
            'processedDiskWrites': cacheStats!.processedDiskWrites,
            'processedDiskCorruptionRecoveries':
                cacheStats!.processedDiskCorruptionRecoveries,
            'processedHitRate': cacheStats!.processedHitRate,
            'ownedBufferHandlesCreated':
                cacheStats!.ownedBufferHandlesCreated,
            'ownedBufferHandlesFreed': cacheStats!.ownedBufferHandlesFreed,
            'ownedBufferBytesExposed': cacheStats!.ownedBufferBytesExposed,
            'liveOwnedBufferHandles': cacheStats!.liveOwnedBufferHandles,
            'progressSessionsCreated': cacheStats!.progressSessionsCreated,
            'progressSessionsFreed': cacheStats!.progressSessionsFreed,
            'liveProgressSessions': cacheStats!.liveProgressSessions,
            'progressEventsEmitted': cacheStats!.progressEventsEmitted,
            'progressEventsDropped': cacheStats!.progressEventsDropped,
            'progressEventsDrained': cacheStats!.progressEventsDrained,
          },
    'decodedCacheStats': <String, Object?>{
      'currentSize': decodedCacheStats.currentSize,
      'currentSizeBytes': decodedCacheStats.currentSizeBytes,
      'maximumSize': decodedCacheStats.maximumSize,
      'maximumSizeBytes': decodedCacheStats.maximumSizeBytes,
      'liveImageCount': decodedCacheStats.liveImageCount,
      'byteUtilization': decodedCacheStats.byteUtilization,
    },
    'decodedRegistryEntries': decodedRegistryEntries,
    'schedulerStats': schedulerStats?.toJson(),
  };
}