#ifndef GrResourceCache_DEFINED
#define GrResourceCache_DEFINED
#include "include/core/SkRefCnt.h"
#include "include/core/SkTypes.h"
#include "include/gpu/ganesh/GrDirectContext.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkTArray.h"
#include "include/private/base/SkTDArray.h"
#include "include/private/base/SkTo.h"
#include "include/private/gpu/ganesh/GrTypesPriv.h"
#include "src/base/SkTDPQueue.h"
#include "src/core/SkMessageBus.h"
#include "src/core/SkTDynamicHash.h"
#include "src/core/SkTMultiMap.h"
#include "src/gpu/GpuTypesPriv.h"
#include "src/gpu/ResourceKey.h"
#include "src/gpu/ganesh/GrGpuResource.h"
#include "src/gpu/ganesh/GrGpuResourceCacheAccess.h"
#include "src/gpu/ganesh/GrGpuResourcePriv.h"
#include <cstddef>
#include <cstdint>
#include <functional>
#include <type_traits>
#include <utility>
class GrProxyProvider;
class GrSurface;
class GrThreadSafeCache;
class SkString;
class SkTraceMemoryDump;
enum class GrPurgeResourceOptions;
namespace skgpu {
class SingleOwner;
}
class GrResourceCache { … };
class GrResourceCache::ResourceAccess { … };
static inline bool SkShouldPostMessageToBus(const GrResourceCache::UnrefResourceMessage& msg,
GrDirectContext::DirectContextID potentialRecipient) { … }
inline GrResourceCache::ResourceAccess GrResourceCache::resourceAccess() { … }
#endif